From e7c1a32a7806977beb74f5d20c965949162b12b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 16 Jul 2020 17:22:58 +0200 Subject: 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. --- tests/gtests/runner/BlenderAddTests.cmake | 3 +++ tests/gtests/runner/CMakeLists.txt | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 tests/gtests/runner/BlenderAddTests.cmake (limited to 'tests') diff --git a/tests/gtests/runner/BlenderAddTests.cmake b/tests/gtests/runner/BlenderAddTests.cmake new file mode 100644 index 00000000000..c4f5c8aba8a --- /dev/null +++ b/tests/gtests/runner/BlenderAddTests.cmake @@ -0,0 +1,3 @@ +# Disable ASAN leak detection when trying to discover tests. +set(ENV{ASAN_OPTIONS} "detect_leaks=0") +include(GoogleTestAddTests) diff --git a/tests/gtests/runner/CMakeLists.txt b/tests/gtests/runner/CMakeLists.txt index 7f28ede9ae9..4da0bce09a4 100644 --- a/tests/gtests/runner/CMakeLists.txt +++ b/tests/gtests/runner/CMakeLists.txt @@ -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 -- cgit v1.2.3