소스 검색

Handle multiple carriage return issue on windows VS9. Also make sure that running ctest in showonly mode does not kill our cost store, since many ctest tests do this and corrupt our cost data.

Zach Mullen 16 년 전
부모
커밋
2921fa96ed
2개의 변경된 파일9개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 2
      Source/CTest/cmCTestMultiProcessHandler.cxx
  2. 4 1
      Source/CTest/cmProcess.cxx

+ 5 - 2
Source/CTest/cmCTestMultiProcessHandler.cxx

@@ -43,8 +43,11 @@ cmCTestMultiProcessHandler::SetTests(TestMap& tests,
     this->TestRunningMap[i->first] = false;
     this->TestFinishMap[i->first] = false;
     }
-  this->ReadCostData();
-  this->CreateTestCostList();
+  if(!this->CTest->GetShowOnly())
+    {
+    this->ReadCostData();
+    this->CreateTestCostList();
+    }
 }
 
   // Set the max number of tests that can be run at the same time.

+ 4 - 1
Source/CTest/cmProcess.cxx

@@ -79,7 +79,10 @@ bool cmProcess::Buffer::GetLine(std::string& line)
       // Extract the range first..last as a line.
       const char* text = &*this->begin() + this->First;
       size_type length = this->Last - this->First;
-      length -= (length && text[length-1] == '\r')? 1:0;
+      while(length && text[length-1] == '\r')
+        {
+        length --;
+        }
       line.assign(text, length);
 
       // Start a new range for the next line.