CTest: prevent tests from being inserted in the cost list twice
This commit is contained in:
parent
7a616e75b8
commit
2eccdbdc2a
|
@ -441,6 +441,8 @@ int cmCTestMultiProcessHandler::SearchByName(std::string name)
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
void cmCTestMultiProcessHandler::CreateTestCostList()
|
void cmCTestMultiProcessHandler::CreateTestCostList()
|
||||||
{
|
{
|
||||||
|
TestSet alreadySortedTests;
|
||||||
|
|
||||||
std::list<TestSet> priorityStack;
|
std::list<TestSet> priorityStack;
|
||||||
priorityStack.push_back(TestSet());
|
priorityStack.push_back(TestSet());
|
||||||
TestSet &topLevel = priorityStack.back();
|
TestSet &topLevel = priorityStack.back();
|
||||||
|
@ -456,6 +458,7 @@ void cmCTestMultiProcessHandler::CreateTestCostList()
|
||||||
{
|
{
|
||||||
//If the test failed last time, it should be run first.
|
//If the test failed last time, it should be run first.
|
||||||
this->SortedTests.push_back(i->first);
|
this->SortedTests.push_back(i->first);
|
||||||
|
alreadySortedTests.insert(i->first);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -512,8 +515,12 @@ void cmCTestMultiProcessHandler::CreateTestCostList()
|
||||||
|
|
||||||
for(TestList::const_iterator j = sortedCopy.begin();
|
for(TestList::const_iterator j = sortedCopy.begin();
|
||||||
j != sortedCopy.end(); ++j)
|
j != sortedCopy.end(); ++j)
|
||||||
|
{
|
||||||
|
if(alreadySortedTests.find(*j) == alreadySortedTests.end())
|
||||||
{
|
{
|
||||||
this->SortedTests.push_back(*j);
|
this->SortedTests.push_back(*j);
|
||||||
|
alreadySortedTests.insert(*j);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue