diff options
author | Betsy McPhail <betsy.mcphail@kitware.com> | 2016-11-04 20:51:42 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-11-09 20:34:07 (GMT) |
commit | 3a523eec7814dfbed2361da298849a5b5964318a (patch) | |
tree | 2ed1c49fd6a61b4d11961a0c333a31390c06a57c /Tests/RunCMake/ctest_memcheck | |
parent | 60d80bca4afcfb3a38b588a5a2060cc275b4afbc (diff) | |
download | CMake-3a523eec7814dfbed2361da298849a5b5964318a.zip CMake-3a523eec7814dfbed2361da298849a5b5964318a.tar.gz CMake-3a523eec7814dfbed2361da298849a5b5964318a.tar.bz2 |
ctest_memcheck: Add DEFECT_COUNT option to capture defect count
Diffstat (limited to 'Tests/RunCMake/ctest_memcheck')
8 files changed, 46 insertions, 2 deletions
diff --git a/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-result.txt b/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-result.txt new file mode 100644 index 0000000..b57e2de --- /dev/null +++ b/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-result.txt @@ -0,0 +1 @@ +(-1|255) diff --git a/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-stderr.txt b/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-stderr.txt new file mode 100644 index 0000000..d4b71ae --- /dev/null +++ b/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-stderr.txt @@ -0,0 +1 @@ +Defect count: 3 diff --git a/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-stdout.txt b/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-stdout.txt new file mode 100644 index 0000000..97a8a9b --- /dev/null +++ b/Tests/RunCMake/ctest_memcheck/DummyLeakSanitizerPrintDefects-stdout.txt @@ -0,0 +1,3 @@ +Memory checking results: +Direct leak - 2 +Indirect leak - 1 diff --git a/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-result.txt b/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-result.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-result.txt @@ -0,0 +1 @@ +0 diff --git a/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-stderr.txt b/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-stderr.txt new file mode 100644 index 0000000..ad28645 --- /dev/null +++ b/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-stderr.txt @@ -0,0 +1 @@ +Defect count: 0 diff --git a/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-stdout.txt b/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-stdout.txt new file mode 100644 index 0000000..dabb004 --- /dev/null +++ b/Tests/RunCMake/ctest_memcheck/DummyValgrindNoDefects-stdout.txt @@ -0,0 +1,6 @@ +1/1 MemCheck #1: RunCMake \.+ Passed +[0-9]+.[0-9]+ sec + +100% tests passed, 0 tests failed out of 1 +.* +-- Processing memory checking output:( ) +Memory checking results: diff --git a/Tests/RunCMake/ctest_memcheck/RunCMakeTest.cmake b/Tests/RunCMake/ctest_memcheck/RunCMakeTest.cmake index 5ad6511..212bfdb 100644 --- a/Tests/RunCMake/ctest_memcheck/RunCMakeTest.cmake +++ b/Tests/RunCMake/ctest_memcheck/RunCMakeTest.cmake @@ -12,6 +12,8 @@ endfunction() unset(CTEST_EXTRA_CONFIG) unset(CTEST_EXTRA_CODE) +unset(CTEST_SUFFIX_CODE) +unset(CTEST_MEMCHECK_ARGS) unset(CMAKELISTS_EXTRA_CODE) #----------------------------------------------------------------------------- @@ -132,4 +134,31 @@ run_mc_test(DummyValgrindNoLogFile "${PSEUDO_VALGRIND_NOLOG}") run_mc_test(DummyBCNoLogFile "${PSEUDO_BC_NOLOG}") run_mc_test(NotExist "\${CTEST_BINARY_DIRECTORY}/no-memcheck-exe") run_mc_test(Unknown "\${CMAKE_COMMAND}") -run_mc_test(DummyQuiet "${PSEUDO_VALGRIND}" -DMEMCHECK_ARGS=QUIET) + +#---------------------------------------------------------------------------- +set(CTEST_MEMCHECK_ARGS QUIET) +run_mc_test(DummyQuiet "${PSEUDO_VALGRIND}") +unset(CTEST_MEMCHECK_ARGS) + +#----------------------------------------------------------------------------- +set(CTEST_SUFFIX_CODE "message(\"Defect count: \${defect_count}\")") +set(CTEST_MEMCHECK_ARGS "DEFECT_COUNT defect_count") +run_mc_test(DummyValgrindNoDefects "${PSEUDO_VALGRIND}") +unset(CTEST_MEMCHECK_ARGS) +unset(CTEST_SUFFIX_CODE) + +#----------------------------------------------------------------------------- +set(CTEST_SUFFIX_CODE "message(\"Defect count: \${defect_count}\")") +set(CTEST_MEMCHECK_ARGS "DEFECT_COUNT defect_count") +set(CTEST_EXTRA_CODE +"set(CTEST_MEMORYCHECK_SANITIZER_OPTIONS \"simulate_sanitizer=1 report_bugs=1 history_size=5 exitcode=55\") +") +set(CMAKELISTS_EXTRA_CODE +"add_test(NAME TestSan COMMAND \"${CMAKE_COMMAND}\" +-P \"${RunCMake_SOURCE_DIR}/testLeakSanitizer.cmake\") +") +run_mc_test(DummyLeakSanitizerPrintDefects "" -DMEMCHECK_TYPE=AddressSanitizer) +unset(CMAKELISTS_EXTRA_CODE) +unset(CTEST_EXTRA_CODE) +unset(CTEST_MEMCHECK_ARGS) +unset(CTEST_SUFFIX_CODE) diff --git a/Tests/RunCMake/ctest_memcheck/test.cmake.in b/Tests/RunCMake/ctest_memcheck/test.cmake.in index 8431fa6..50b4b6a 100644 --- a/Tests/RunCMake/ctest_memcheck/test.cmake.in +++ b/Tests/RunCMake/ctest_memcheck/test.cmake.in @@ -21,4 +21,6 @@ set(CTEST_MEMORYCHECK_TYPE "${MEMCHECK_TYPE}") CTEST_START(Experimental) CTEST_CONFIGURE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) -CTEST_MEMCHECK(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res ${MEMCHECK_ARGS}) +CTEST_MEMCHECK(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res @CTEST_MEMCHECK_ARGS@) + +@CTEST_SUFFIX_CODE@ |