From 58cc3c22ef4a011196b0305bfee861dadd243414 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Fri, 13 Jun 2014 14:42:43 -0400 Subject: [PATCH] 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. --- Source/CTest/cmCTestMemCheckHandler.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/CTest/cmCTestMemCheckHandler.cxx b/Source/CTest/cmCTestMemCheckHandler.cxx index ecaa474db..09d0ad833 100644 --- a/Source/CTest/cmCTestMemCheckHandler.cxx +++ b/Source/CTest/cmCTestMemCheckHandler.cxx @@ -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; }