CTest: print failed tests in index order (#11746)
This deterministic ordering makes it easier for a developer comparing the ctest output of two test runs to see what changed from run to run. Thanks to Fraser Hutchison for the patch.
This commit is contained in:
parent
14e54c4c44
commit
ba4886b717
|
@ -33,6 +33,7 @@
|
|||
#include <float.h>
|
||||
|
||||
#include <memory> // auto_ptr
|
||||
#include <set>
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
class cmCTestSubdirCommand : public cmCommand
|
||||
|
@ -617,9 +618,12 @@ int cmCTestTestHandler::ProcessHandler()
|
|||
<< "The following tests FAILED:" << std::endl);
|
||||
this->StartLogFile("TestsFailed", ofs);
|
||||
|
||||
std::vector<cmCTestTestHandler::cmCTestTestResult>::iterator ftit;
|
||||
for(ftit = this->TestResults.begin();
|
||||
ftit != this->TestResults.end(); ++ftit)
|
||||
typedef std::set<cmCTestTestHandler::cmCTestTestResult,
|
||||
cmCTestTestResultLess> SetOfTests;
|
||||
SetOfTests resultsSet(this->TestResults.begin(), this->TestResults.end());
|
||||
|
||||
for(SetOfTests::iterator ftit = resultsSet.begin();
|
||||
ftit != resultsSet.end(); ++ftit)
|
||||
{
|
||||
if ( ftit->Status != cmCTestTestHandler::COMPLETED )
|
||||
{
|
||||
|
|
|
@ -125,7 +125,16 @@ public:
|
|||
cmCTestTestProperties* Properties;
|
||||
};
|
||||
|
||||
// add configuraitons to a search path for an executable
|
||||
struct cmCTestTestResultLess
|
||||
{
|
||||
bool operator() (const cmCTestTestResult &lhs,
|
||||
const cmCTestTestResult &rhs) const
|
||||
{
|
||||
return lhs.TestCount < rhs.TestCount;
|
||||
}
|
||||
};
|
||||
|
||||
// add configurations to a search path for an executable
|
||||
static void AddConfigurations(cmCTest *ctest,
|
||||
std::vector<std::string> &attempted,
|
||||
std::vector<std::string> &attemptedConfigs,
|
||||
|
@ -141,7 +150,7 @@ public:
|
|||
|
||||
typedef std::vector<cmCTestTestProperties> ListOfTests;
|
||||
protected:
|
||||
// comput a final test list
|
||||
// compute a final test list
|
||||
virtual int PreProcessHandler();
|
||||
virtual int PostProcessHandler();
|
||||
virtual void GenerateTestCommand(std::vector<std::string>& args);
|
||||
|
|
Loading…
Reference in New Issue