Tests: disable ASAN when discovering tests

CMake, when it's configuring the project, runs the `blender_test` test
runner (if it exists from a previous build) to discover which tests it
contains. At this time none of the tests themselves are run, so it's not
that useful to run ASAN and have it break things when there are memory
leaks.

This commit disables ASAN by injecting `ASAN_OPTIONS="detect_leaks=0"` in
the environment variables.

It is not enough to use `set(ENV{ASAN_OPTIONS} "detect_leaks=0")` in
`tests/gtests/runner/CMakeLists.txt`, as it wouldn't be passed to the child
process.
This commit is contained in:
Sybren A. Stüvel 2020-07-16 17:22:58 +02:00
parent a138bf57c9
commit e7c1a32a78
2 changed files with 8 additions and 0 deletions

@ -0,0 +1,3 @@
# Disable ASAN leak detection when trying to discover tests.
set(ENV{ASAN_OPTIONS} "detect_leaks=0")
include(GoogleTestAddTests)

@ -60,6 +60,11 @@ setup_liblinks(blender_test)
# exposes those tests individually to the ctest runner.
# See https://cmake.org/cmake/help/v3.18/module/GoogleTest.html
include(GoogleTest)
set(_GOOGLETEST_DISCOVER_TESTS_SCRIPT
${CMAKE_CURRENT_LIST_DIR}/BlenderAddTests.cmake
)
gtest_discover_tests(blender_test
# So that unit tests know where to find files:
EXTRA_ARGS