CTest: fix dashboard issues associated with the ctest-fix-run-serial topic

This commit is contained in:
Nils Gladitz 2013-10-23 21:47:32 +02:00
parent 7a665ae7e3
commit ff59365f8b
3 changed files with 24 additions and 8 deletions

View File

@ -470,14 +470,18 @@ void cmCTestMultiProcessHandler::CreateTestCostList()
priorityStack.push_back(TestSet()); priorityStack.push_back(TestSet());
TestSet &currentSet = priorityStack.back(); TestSet &currentSet = priorityStack.back();
for(TestSet::iterator i = previousSet.begin(); for(TestSet::const_iterator i = previousSet.begin();
i != previousSet.end(); ++i) i != previousSet.end(); ++i)
{ {
TestSet const& dependencies = this->Tests[*i]; TestSet const& dependencies = this->Tests[*i];
currentSet.insert(dependencies.begin(), dependencies.end()); for(TestSet::const_iterator j = dependencies.begin();
j != dependencies.end(); ++j)
{
currentSet.insert(*j);
}
} }
for(TestSet::iterator i = currentSet.begin(); for(TestSet::const_iterator i = currentSet.begin();
i != currentSet.end(); ++i) i != currentSet.end(); ++i)
{ {
previousSet.erase(*i); previousSet.erase(*i);
@ -492,15 +496,24 @@ void cmCTestMultiProcessHandler::CreateTestCostList()
for(std::list<TestSet>::reverse_iterator i = priorityStack.rbegin(); for(std::list<TestSet>::reverse_iterator i = priorityStack.rbegin();
i != priorityStack.rend(); ++i) i != priorityStack.rend(); ++i)
{ {
TestSet &currentSet = *i; TestSet const& currentSet = *i;
TestComparator comp(this); TestComparator comp(this);
TestList sortedCopy; TestList sortedCopy;
sortedCopy.insert(sortedCopy.end(), currentSet.begin(), currentSet.end());
for(TestSet::const_iterator j = currentSet.begin();
j != currentSet.end(); ++j)
{
sortedCopy.push_back(*j);
}
std::stable_sort(sortedCopy.begin(), sortedCopy.end(), comp); std::stable_sort(sortedCopy.begin(), sortedCopy.end(), comp);
this->SortedTests.insert(this->SortedTests.end(), for(TestList::const_iterator j = sortedCopy.begin();
sortedCopy.begin(), sortedCopy.end()); j != sortedCopy.end(); ++j)
{
this->SortedTests.push_back(*j);
}
} }
} }

View File

@ -2074,7 +2074,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log" --output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
) )
ADD_TEST_MACRO(CTestTestSerialInDepends ${CMAKE_CTEST_COMMAND} -j 4) ADD_TEST_MACRO(CTestTestSerialInDepends ${CMAKE_CTEST_COMMAND} -j 4
--output-on-failure -C "\${CTestTest_CONFIG}")
if(NOT BORLAND) if(NOT BORLAND)
set(CTestLimitDashJ_EXTRA_OPTIONS --force-new-ctest-process) set(CTestLimitDashJ_EXTRA_OPTIONS --force-new-ctest-process)

View File

@ -1,5 +1,7 @@
cmake_minimum_required(VERSION 2.8.12) cmake_minimum_required(VERSION 2.8.12)
project(CTestTestSerialInDepends)
enable_testing() enable_testing()
function(my_add_test NAME COST) function(my_add_test NAME COST)