summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestMultiProcessHandler.cxx
diff options
context:
space:
mode:
authorZach Mullen <zach.mullen@kitware.com>2009-09-02 14:08:40 (GMT)
committerZach Mullen <zach.mullen@kitware.com>2009-09-02 14:08:40 (GMT)
commit69fd641adb32c878ded4cadee60d90596b358d1b (patch)
treecd9885d9d8a0825b4a3bc227f78780ebf1a1e95b /Source/CTest/cmCTestMultiProcessHandler.cxx
parent99144383cf17e188f67a5d9e3469bcf1b3a836b8 (diff)
downloadCMake-69fd641adb32c878ded4cadee60d90596b358d1b.zip
CMake-69fd641adb32c878ded4cadee60d90596b358d1b.tar.gz
CMake-69fd641adb32c878ded4cadee60d90596b358d1b.tar.bz2
Fixed ctest output where max test index is not the same width as the total number of tests. Also some preliminary changes for batching ctest jobs
Diffstat (limited to 'Source/CTest/cmCTestMultiProcessHandler.cxx')
-rw-r--r--Source/CTest/cmCTestMultiProcessHandler.cxx28
1 files changed, 28 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
index 157e187..b086edb 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
@@ -51,7 +51,13 @@ void cmCTestMultiProcessHandler::SetParallelLevel(size_t level)
void cmCTestMultiProcessHandler::RunTests()
{
+ if(this->CTest->GetBatchJobs())
+ {
+ this->SubmitBatchTests();
+ return;
+ }
this->CheckResume();
+ this->TestHandler->SetMaxIndex(this->FindMaxIndex());
this->StartNextTests();
while(this->Tests.size() != 0)
{
@@ -65,6 +71,14 @@ void cmCTestMultiProcessHandler::RunTests()
this->MarkFinished();
}
+void cmCTestMultiProcessHandler::SubmitBatchTests()
+{
+ for(cmCTest::CTestConfigurationMap::iterator i = this->CTest->CTestConfiguration.begin(); i != this->CTest->CTestConfiguration.end(); ++i)
+ {
+ cmCTestLog(this->CTest, HANDLER_OUTPUT, i->first << " = " << i->second << std::endl);
+ }
+}
+
void cmCTestMultiProcessHandler::StartTestProcess(int test)
{
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, test << ": "
@@ -306,3 +320,17 @@ void cmCTestMultiProcessHandler::RemoveTest(int index)
this->TestFinishMap[index] = true;
this->Completed++;
}
+
+int cmCTestMultiProcessHandler::FindMaxIndex()
+{
+ int max = 0;
+ cmCTestMultiProcessHandler::TestMap::iterator i = this->Tests.begin();
+ for(; i != this->Tests.end(); ++i)
+ {
+ if(i->first > max)
+ {
+ max = i->first;
+ }
+ }
+ return max;
+}