mirror of
https://github.com/reactos/CMake.git
synced 2024-11-24 03:59:58 +00:00
ctest_memcheck: Fix sanitizers when MemoryCheckSanitizerOptions is empty
This commit is contained in:
parent
522e1588ec
commit
e116f2a5de
@ -607,9 +607,13 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
|
||||
this->MemoryTesterDynamicOptions.push_back("-E");
|
||||
this->MemoryTesterDynamicOptions.push_back("env");
|
||||
std::string envVar;
|
||||
std::string extraOptions = ":" +
|
||||
this->CTest->GetCTestConfiguration("MemoryCheckSanitizerOptions");
|
||||
std::string extraOptions;
|
||||
std::string suppressionsOption;
|
||||
if (!this->CTest->GetCTestConfiguration("MemoryCheckSanitizerOptions")
|
||||
.empty()) {
|
||||
extraOptions = ":" +
|
||||
this->CTest->GetCTestConfiguration("MemoryCheckSanitizerOptions");
|
||||
}
|
||||
if (!this->CTest->GetCTestConfiguration("MemoryCheckSuppressionFile")
|
||||
.empty()) {
|
||||
suppressionsOption = ":suppressions=" +
|
||||
@ -631,8 +635,10 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
|
||||
cmCTestMemCheckHandler::UB_SANITIZER) {
|
||||
envVar = "UBSAN_OPTIONS";
|
||||
}
|
||||
// Quote log_path with single quotes; see
|
||||
// https://bugs.chromium.org/p/chromium/issues/detail?id=467936
|
||||
std::string outputFile =
|
||||
envVar + "=log_path=\"" + this->MemoryTesterOutputFile + "\"";
|
||||
envVar + "=log_path='" + this->MemoryTesterOutputFile + "'";
|
||||
this->MemoryTesterEnvironmentVariable =
|
||||
outputFile + suppressionsOption + extraOptions;
|
||||
break;
|
||||
|
@ -2,7 +2,7 @@
|
||||
# options
|
||||
|
||||
message("ASAN_OPTIONS = [$ENV{ASAN_OPTIONS}]")
|
||||
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{ASAN_OPTIONS}")
|
||||
string(REGEX REPLACE ".*log_path=\'([^\']*)\'.*" "\\1" LOG_FILE "$ENV{ASAN_OPTIONS}")
|
||||
message("LOG_FILE=[${LOG_FILE}]")
|
||||
|
||||
# if we are not asked to simulate AddressSanitizer don't do it
|
||||
|
@ -2,7 +2,7 @@
|
||||
# options
|
||||
|
||||
message("ASAN_OPTIONS = [$ENV{ASAN_OPTIONS}]")
|
||||
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{ASAN_OPTIONS}")
|
||||
string(REGEX REPLACE ".*log_path=\'([^\']*)\'.*" "\\1" LOG_FILE "$ENV{ASAN_OPTIONS}")
|
||||
message("LOG_FILE=[${LOG_FILE}]")
|
||||
|
||||
# if we are not asked to simulate address sanitizer don't do it
|
||||
|
@ -2,7 +2,7 @@
|
||||
# options
|
||||
|
||||
message("LSAN_OPTIONS = [$ENV{LSAN_OPTIONS}]")
|
||||
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{LSAN_OPTIONS}")
|
||||
string(REGEX REPLACE ".*log_path=\'([^\']*)\'.*" "\\1" LOG_FILE "$ENV{LSAN_OPTIONS}")
|
||||
message("LOG_FILE=[${LOG_FILE}]")
|
||||
|
||||
# if we are not asked to simulate LeakSanitizer don't do it
|
||||
|
@ -1,8 +1,8 @@
|
||||
# this file simulates a program that has been built with thread sanitizer
|
||||
# this file simulates a program that has been built with MemorySanitizer
|
||||
# options
|
||||
|
||||
message("MSAN_OPTIONS = [$ENV{MSAN_OPTIONS}]")
|
||||
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$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
|
||||
|
@ -1,8 +1,8 @@
|
||||
# this file simulates a program that has been built with thread sanitizer
|
||||
# this file simulates a program that has been built with ThreadSanitizer
|
||||
# options
|
||||
|
||||
message("TSAN_OPTIONS = [$ENV{TSAN_OPTIONS}]")
|
||||
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$ENV{TSAN_OPTIONS}")
|
||||
string(REGEX REPLACE ".*log_path=\'([^\']*)\'.*" "\\1" LOG_FILE "$ENV{TSAN_OPTIONS}")
|
||||
message("LOG_FILE=[${LOG_FILE}]")
|
||||
|
||||
set(error_types
|
||||
|
@ -1,8 +1,8 @@
|
||||
# this file simulates a program that has been built with undefined behavior
|
||||
# sanitizer options
|
||||
# this file simulates a program that has been built with
|
||||
# UndefinedBehaviorSanitizer options
|
||||
|
||||
message("UBSAN_OPTIONS = [$ENV{UBSAN_OPTIONS}]")
|
||||
string(REGEX REPLACE ".*log_path=\"([^\"]*)\".*" "\\1" LOG_FILE "$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
|
||||
|
Loading…
Reference in New Issue
Block a user