From f7d62cac79f856c9c7b634ed7f5d2f6030b7ba76 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 22 Jul 2014 10:51:53 -0400 Subject: Fix leak and address sanitizer tests to be able to run with real tools. When running CMake under Leak or Address Sanitizer tools, the fake reporting would get picked up by the outer CMake and reported as leaks and address failures on the CMake dashboard. This commit makes sure the test only reports simulated errors when asked to. --- Tests/CTestTestMemcheck/CMakeLists.txt | 4 ++-- Tests/CTestTestMemcheck/testAddressSanitizer.cmake | 4 ++++ Tests/CTestTestMemcheck/testLeakSanitizer.cmake | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Tests/CTestTestMemcheck/CMakeLists.txt b/Tests/CTestTestMemcheck/CMakeLists.txt index d16d432..0f38431 100644 --- a/Tests/CTestTestMemcheck/CMakeLists.txt +++ b/Tests/CTestTestMemcheck/CMakeLists.txt @@ -121,7 +121,7 @@ set(CTEST_EXTRA_CODE) # add LeakSanitizer test set(CTEST_EXTRA_CODE -"set(CTEST_MEMORYCHECK_COMMAND_OPTIONS \"report_bugs=1 history_size=5 exitcode=55\") +"set(CTEST_MEMORYCHECK_COMMAND_OPTIONS \"simulate_sanitizer=1 report_bugs=1 history_size=5 exitcode=55\") ") set(CMAKELISTS_EXTRA_CODE @@ -136,7 +136,7 @@ set_tests_properties(CTestTestMemcheckDummyLeakSanitizer PROPERTIES ".*Memory checking results:.*Direct leak - 2.*Indirect leak - 1.*") # add AddressSanitizer test set(CTEST_EXTRA_CODE -"set(CTEST_MEMORYCHECK_COMMAND_OPTIONS \"report_bugs=1 history_size=5 exitcode=55\") +"set(CTEST_MEMORYCHECK_COMMAND_OPTIONS \"simulate_sanitizer=1 report_bugs=1 history_size=5 exitcode=55\") ") set(CMAKELISTS_EXTRA_CODE diff --git a/Tests/CTestTestMemcheck/testAddressSanitizer.cmake b/Tests/CTestTestMemcheck/testAddressSanitizer.cmake index a359e28..a073151 100644 --- a/Tests/CTestTestMemcheck/testAddressSanitizer.cmake +++ b/Tests/CTestTestMemcheck/testAddressSanitizer.cmake @@ -5,6 +5,10 @@ message("ASAN_OPTIONS = [$ENV{ASAN_OPTIONS}]") string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{ASAN_OPTIONS}") message("LOG_FILE=[${LOG_FILE}]") +# if we are not asked to simulate address sanitizer don't do it +if(NOT "$ENV{ASAN_OPTIONS}]" MATCHES "simulate_sanitizer.1") + return() +endif() # clear the log file file(REMOVE "${LOG_FILE}.2343") diff --git a/Tests/CTestTestMemcheck/testLeakSanitizer.cmake b/Tests/CTestTestMemcheck/testLeakSanitizer.cmake index ca0a264..d0e38ce 100644 --- a/Tests/CTestTestMemcheck/testLeakSanitizer.cmake +++ b/Tests/CTestTestMemcheck/testLeakSanitizer.cmake @@ -4,6 +4,10 @@ message("ASAN_OPTIONS = [$ENV{ASAN_OPTIONS}]") string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{ASAN_OPTIONS}") message("LOG_FILE=[${LOG_FILE}]") +# if we are not asked to simulate leak sanitizer don't do it +if(NOT "$ENV{ASAN_OPTIONS}]" MATCHES "simulate_sanitizer.1") + return() +endif() # clear the log file file(REMOVE "${LOG_FILE}.2343") -- cgit v0.12