Fix ctest to allow valgrind to show up in the path name of a memcheck tool.

For testing purposes CMake creates dummy memory checkers.  The dummy checkers
are in the CMake build tree. Before this change when the path contained the
string valgrind, such as CMake-valgrind, all the checkers were thought to
be valgrind, and this caused tests to fail.
This commit is contained in:
Bill Hoffman 2014-06-13 14:42:43 -04:00
parent ba36363121
commit 58cc3c22ef
1 changed files with 5 additions and 4 deletions

View File

@ -423,17 +423,18 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
{
this->MemoryTester
= this->CTest->GetCTestConfiguration("MemoryCheckCommand").c_str();
std::string testerName =
cmSystemTools::GetFilenameName(this->MemoryTester);
// determine the checker type
if ( this->MemoryTester.find("valgrind") != std::string::npos )
if ( testerName.find("valgrind") != std::string::npos )
{
this->MemoryTesterStyle = cmCTestMemCheckHandler::VALGRIND;
}
else if ( this->MemoryTester.find("purify") != std::string::npos )
else if ( testerName.find("purify") != std::string::npos )
{
this->MemoryTesterStyle = cmCTestMemCheckHandler::PURIFY;
}
else if ( this->MemoryTester.find("BC") != std::string::npos )
else if ( testerName.find("BC") != std::string::npos )
{
this->MemoryTesterStyle = cmCTestMemCheckHandler::BOUNDS_CHECKER;
}