Fixed overwriting of a previous change set

This commit is contained in:
Zach Mullen 2009-08-19 09:24:55 -04:00
parent b9daa192af
commit a2ef34d344
3 changed files with 53 additions and 2 deletions

View File

@ -657,6 +657,58 @@ int cmCTestTestHandler::ProcessHandler()
return 0; return 0;
} }
//----------------------------------------------------------------------
void cmCTestTestHandler::PrintLabelSummary()
{
cmCTestTestHandler::ListOfTests::iterator it = this->TestList.begin();
cmCTestTestHandler::TestResultsVector::iterator ri =
this->TestResults.begin();
std::map<cmStdString, double> labelTimes;
std::set<cmStdString> labels;
// initialize maps
for(; it != this->TestList.end(); ++it)
{
cmCTestTestProperties& p = *it;
if(p.Labels.size() != 0)
{
for(std::vector<std::string>::iterator l = p.Labels.begin();
l != p.Labels.end(); ++l)
{
labels.insert(*l);
labelTimes[*l] = 0;
}
}
}
it = this->TestList.begin();
ri = this->TestResults.begin();
// fill maps
for(; it != this->TestList.end(); ++it, ++ri)
{
cmCTestTestProperties& p = *it;
cmCTestTestResult &result = *ri;
if(p.Labels.size() != 0)
{
for(std::vector<std::string>::iterator l = p.Labels.begin();
l != p.Labels.end(); ++l)
{
labelTimes[*l] += result.ExecutionTime;
}
}
}
// now print times
for(std::set<cmStdString>::const_iterator i = labels.begin();
i != labels.end(); ++i)
{
cmCTestLog(this->CTest, HANDLER_OUTPUT, "\nTime in "
<< *i << " = " << labelTimes[*i] << " sec" );
if ( this->LogFile )
{
*this->LogFile << "\nTime in " << *i << " = "
<< labelTimes[*i] << " sec" << std::endl;
}
}
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
void cmCTestTestHandler::ProcessOneTest(cmCTestTestProperties *it, void cmCTestTestHandler::ProcessOneTest(cmCTestTestProperties *it,
std::vector<cmStdString> &passed, std::vector<cmStdString> &passed,

View File

@ -186,6 +186,7 @@ private:
*/ */
virtual void GenerateDartOutput(std::ostream& os); virtual void GenerateDartOutput(std::ostream& os);
void PrintLabelSummary();
/** /**
* Run the tests for a directory and any subdirectories * Run the tests for a directory and any subdirectories
*/ */

View File

@ -1192,7 +1192,6 @@ int cmCTest::RunTest(std::vector<const char*> argv,
{ {
if ( output ) if ( output )
{ {
//ZACH: need to grab the output here
tempOutput.insert(tempOutput.end(), data, data+length); tempOutput.insert(tempOutput.end(), data, data+length);
} }
cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, cmCTestLogWrite(data, length)); cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, cmCTestLogWrite(data, length));
@ -1205,7 +1204,6 @@ int cmCTest::RunTest(std::vector<const char*> argv,
cmsysProcess_WaitForExit(cp, 0); cmsysProcess_WaitForExit(cp, 0);
if(output && tempOutput.begin() != tempOutput.end()) if(output && tempOutput.begin() != tempOutput.end())
{ {
//We are waiting for exit before finally appending to the output
output->append(&*tempOutput.begin(), tempOutput.size()); output->append(&*tempOutput.begin(), tempOutput.size());
} }
cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "-- Process completed" cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "-- Process completed"