tests: Add a test for ctest_memcheck MemorySanitizer
This commit is contained in:
parent
0c6330da38
commit
7345a1f71d
|
@ -151,6 +151,23 @@ set_tests_properties(CTestTestMemcheckDummyAddressSanitizer PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION
|
PASS_REGULAR_EXPRESSION
|
||||||
".*Memory checking results:.*heap-buffer-overflow - 1.*")
|
".*Memory checking results:.*heap-buffer-overflow - 1.*")
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# add MemorySanitizer test
|
||||||
|
set(CTEST_EXTRA_CODE
|
||||||
|
"set(CTEST_MEMORYCHECK_COMMAND_OPTIONS \"simulate_sanitizer=1 report_bugs=1 history_size=5 exitcode=55\")
|
||||||
|
")
|
||||||
|
|
||||||
|
set(CMAKELISTS_EXTRA_CODE
|
||||||
|
"add_test(NAME TestSan COMMAND \"${CMAKE_COMMAND}\"
|
||||||
|
-P \"${CMAKE_CURRENT_SOURCE_DIR}/testMemorySanitizer.cmake\")
|
||||||
|
")
|
||||||
|
gen_mc_test_internal(DummyMemorySanitizer "" -DMEMCHECK_TYPE=MemorySanitizer)
|
||||||
|
set(CMAKELISTS_EXTRA_CODE )
|
||||||
|
set(CTEST_EXTRA_CODE)
|
||||||
|
set_tests_properties(CTestTestMemcheckDummyMemorySanitizer PROPERTIES
|
||||||
|
PASS_REGULAR_EXPRESSION
|
||||||
|
".*Memory checking results:.*use-of-uninitialized-value - 1.*")
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# add UndefinedBehaviorSanitizer test
|
# add UndefinedBehaviorSanitizer test
|
||||||
set(CTEST_EXTRA_CODE
|
set(CTEST_EXTRA_CODE
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
# this file simulates a program that has been built with thread sanitizer
|
||||||
|
# options
|
||||||
|
|
||||||
|
message("MSAN_OPTIONS = [$ENV{MSAN_OPTIONS}]")
|
||||||
|
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{MSAN_OPTIONS}")
|
||||||
|
message("LOG_FILE=[${LOG_FILE}]")
|
||||||
|
|
||||||
|
# if we are not asked to simulate address sanitizer don't do it
|
||||||
|
if(NOT "$ENV{MSAN_OPTIONS}]" MATCHES "simulate_sanitizer.1")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
# clear the log file
|
||||||
|
file(REMOVE "${LOG_FILE}.2343")
|
||||||
|
|
||||||
|
# create an error of each type of thread santizer
|
||||||
|
# these names come from tsan_report.cc in llvm
|
||||||
|
|
||||||
|
file(APPEND "${LOG_FILE}.2343"
|
||||||
|
"=================================================================
|
||||||
|
==28423== WARNING: MemorySanitizer: use-of-uninitialized-value
|
||||||
|
#0 0x7f4364210dd9 in main (/home/kitware/msan/msan-bin/umr+0x7bdd9)
|
||||||
|
#1 0x7f4362d9376c in __libc_start_main /build/buildd/eglibc-2.15/csu/libc-start.c:226
|
||||||
|
#2 0x7f4364210b0c in _start (/home/kitware/msan/msan-bin/umr+0x7bb0c)
|
||||||
|
|
||||||
|
SUMMARY: MemorySanitizer: use-of-uninitialized-value ??:0 main
|
||||||
|
Exiting
|
||||||
|
")
|
Loading…
Reference in New Issue