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
|
||||
".*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
|
||||
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