浏览代码

CTest: fix pre and post test commands with spaces

If the pre or post memcheck or test commands have spaces in the path these
were never escaped, leading to broken commands. This was not covered in the
test suite so it went unnoticed.
Rolf Eike Beer 13 年之前
父节点
当前提交
6187876dea
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      Source/CTest/cmCTestTestHandler.cxx

+ 3 - 2
Source/CTest/cmCTestTestHandler.cxx

@@ -1304,9 +1304,10 @@ int cmCTestTestHandler::ExecuteCommands(std::vector<cmStdString>& vec)
   for ( it = vec.begin(); it != vec.end(); ++it )
   for ( it = vec.begin(); it != vec.end(); ++it )
     {
     {
     int retVal = 0;
     int retVal = 0;
-    cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Run command: " << *it
+    std::string cmd = cmSystemTools::ConvertToOutputPath(it->c_str());
+    cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Run command: " << cmd
       << std::endl);
       << std::endl);
-    if ( !cmSystemTools::RunSingleCommand(it->c_str(), 0, &retVal, 0,
+    if ( !cmSystemTools::RunSingleCommand(cmd.c_str(), 0, &retVal, 0,
                                           cmSystemTools::OUTPUT_MERGE
                                           cmSystemTools::OUTPUT_MERGE
         /*this->Verbose*/) || retVal != 0 )
         /*this->Verbose*/) || retVal != 0 )
       {
       {