summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CTestMemcheck/testMemorySanitizer.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-12-16 18:50:30 (GMT)
committerBrad King <brad.king@kitware.com>2014-12-18 15:12:15 (GMT)
commit1651dc96683282c0af8ef47973db9afa950d6bde (patch)
treec90f83059671a3d627ff2a1220ee3a1acf9487ef /Tests/RunCMake/CTestMemcheck/testMemorySanitizer.cmake
parent1c8129795ac482b36a67d0b7131f2bbd6ad04a54 (diff)
downloadCMake-1651dc96683282c0af8ef47973db9afa950d6bde.zip
CMake-1651dc96683282c0af8ef47973db9afa950d6bde.tar.gz
CMake-1651dc96683282c0af8ef47973db9afa950d6bde.tar.bz2
Tests: Move CTestTestMemcheck cases into a RunCMake.CTestMemcheck test
The CTestTestMemcheck test cases all try to check the ctest output with a regular expression. They fail intermittently due to ordering of the portions of the output that come from stdout and stderr being mixed. Convert all the test cases to use the RunCMake infrastructure to match stdout and stderr separately.
Diffstat (limited to 'Tests/RunCMake/CTestMemcheck/testMemorySanitizer.cmake')
-rw-r--r--Tests/RunCMake/CTestMemcheck/testMemorySanitizer.cmake27
1 files changed, 27 insertions, 0 deletions
diff --git a/Tests/RunCMake/CTestMemcheck/testMemorySanitizer.cmake b/Tests/RunCMake/CTestMemcheck/testMemorySanitizer.cmake
new file mode 100644
index 0000000..c87af9a
--- /dev/null
+++ b/Tests/RunCMake/CTestMemcheck/testMemorySanitizer.cmake
@@ -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
+")