MEMORYCHECK_SUPPRESSIONS_FILE: add support for sanitizers

This commit is contained in:
Jamie Snape 2017-01-09 13:39:06 -05:00
parent cf590c1236
commit cdacfbd255
2 changed files with 12 additions and 1 deletions

View File

@ -3,3 +3,7 @@ ctest_memcheck-leak_sanitizer
* The :command:`ctest_memcheck` command learned to support ``LeakSanitizer``
independently from ``AddressSanitizer``.
* The :command:`ctest_memcheck` command learned to read the location of
suppressions files for sanitizers from the
:variable:`CTEST_MEMORYCHECK_SUPPRESSIONS_FILE` variable.

View File

@ -609,6 +609,12 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
std::string envVar;
std::string extraOptions =
this->CTest->GetCTestConfiguration("MemoryCheckSanitizerOptions");
std::string suppressionsOption;
if (!this->CTest->GetCTestConfiguration("MemoryCheckSuppressionFile")
.empty()) {
suppressionsOption = " suppressions=" +
this->CTest->GetCTestConfiguration("MemoryCheckSuppressionFile");
}
if (this->MemoryTesterStyle ==
cmCTestMemCheckHandler::ADDRESS_SANITIZER) {
envVar = "ASAN_OPTIONS";
@ -628,7 +634,8 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
}
std::string outputFile =
envVar + "=log_path=\"" + this->MemoryTesterOutputFile + "\" ";
this->MemoryTesterEnvironmentVariable = outputFile + extraOptions;
this->MemoryTesterEnvironmentVariable =
outputFile + extraOptions + suppressionsOption;
break;
}
default: