1651dc9668
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.
22 lines
693 B
CMake
22 lines
693 B
CMake
# this file simulates a program that has been built with undefined behavior
|
|
# sanitizer options
|
|
|
|
message("UBSAN_OPTIONS = [$ENV{UBSAN_OPTIONS}]")
|
|
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{UBSAN_OPTIONS}")
|
|
message("LOG_FILE=[${LOG_FILE}]")
|
|
|
|
# if we are not asked to simulate address sanitizer don't do it
|
|
if(NOT "$ENV{UBSAN_OPTIONS}]" MATCHES "simulate_sanitizer.1")
|
|
return()
|
|
endif()
|
|
# clear the log file
|
|
file(REMOVE "${LOG_FILE}.2343")
|
|
|
|
# create an error like undefined behavior santizer creates;
|
|
# these names come from ubsan_diag.cc and ubsan_handlers.cc
|
|
# in llvm
|
|
|
|
file(APPEND "${LOG_FILE}.2343"
|
|
"<unknown>: runtime error: left shift of negative value -256
|
|
")
|