[Cmake-commits] [cmake-commits] hoffman committed cmCTestMultiProcessHandler.cxx 1.4 1.5 cmCTestTestHandler.cxx 1.92 1.93 cmCTestTestHandler.h 1.35 1.36
cmake-commits at cmake.org
cmake-commits at cmake.org
Tue Feb 24 17:23:55 EST 2009
Update of /cvsroot/CMake/CMake/Source/CTest
In directory public:/mounts/ram/cvs-serv17672
Modified Files:
cmCTestMultiProcessHandler.cxx cmCTestTestHandler.cxx
cmCTestTestHandler.h
Log Message:
ENH: add a CDash measured value showing the reason for passed and failed tests based on regular expressions
Index: cmCTestMultiProcessHandler.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestMultiProcessHandler.cxx,v
retrieving revision 1.4
retrieving revision 1.5
diff -C 2 -d -r1.4 -r1.5
*** cmCTestMultiProcessHandler.cxx 10 Feb 2009 19:19:50 -0000 1.4
--- cmCTestMultiProcessHandler.cxx 24 Feb 2009 22:23:51 -0000 1.5
***************
*** 241,244 ****
--- 241,248 ----
void cmCTestMultiProcessHandler::EndTest(cmProcess* p)
{
+ // Should have a way of getting this stuff from the
+ // launched ctest, maybe a temp file or some extra xml
+ // stuff in the stdout
+ // Need things like Reason and ExecutionTime, Path, etc.
int test = p->GetId();
int exitVal = p->GetExitValue();
Index: cmCTestTestHandler.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestTestHandler.cxx,v
retrieving revision 1.92
retrieving revision 1.93
diff -C 2 -d -r1.92 -r1.93
*** cmCTestTestHandler.cxx 10 Feb 2009 19:24:23 -0000 1.92
--- cmCTestTestHandler.cxx 24 Feb 2009 22:23:51 -0000 1.93
***************
*** 800,803 ****
--- 800,804 ----
{
found = true;
+ reason = "Required regular expression found.";
}
}
***************
*** 805,819 ****
{
reason = "Required regular expression not found.";
! reason += "Regex=[";
! for ( passIt = it->RequiredRegularExpressions.begin();
passIt != it->RequiredRegularExpressions.end();
++ passIt )
! {
! reason += passIt->second;
! reason += "\n";
! }
! reason += "]";
! forceFail = true;
}
}
if ( it->ErrorRegularExpressions.size() > 0 )
--- 806,820 ----
{
reason = "Required regular expression not found.";
! forceFail = true;
! }
! reason += "Regex=[";
! for ( passIt = it->RequiredRegularExpressions.begin();
passIt != it->RequiredRegularExpressions.end();
++ passIt )
! {
! reason += passIt->second;
! reason += "\n";
}
+ reason += "]";
}
if ( it->ErrorRegularExpressions.size() > 0 )
***************
*** 948,952 ****
}
}
!
cres.Output = output;
cres.ReturnValue = retVal;
--- 949,953 ----
}
}
! cres.Reason = reason;
cres.Output = output;
cres.ReturnValue = retVal;
***************
*** 1586,1589 ****
--- 1587,1603 ----
<< result->ExecutionTime
<< "</Value></NamedMeasurement>\n";
+ if(result->Reason.size())
+ {
+ const char* reasonType = "Pass Reason";
+ if(result->Status != cmCTestTestHandler::COMPLETED &&
+ result->Status != cmCTestTestHandler::NOT_RUN)
+ {
+ reasonType = "Fail Reason";
+ }
+ os << "\t\t\t<NamedMeasurement type=\"text/string\" "
+ << "name=\"" << reasonType << "\"><Value>"
+ << cmXMLSafe(result->Reason)
+ << "</Value></NamedMeasurement>\n";
+ }
os
<< "\t\t\t<NamedMeasurement type=\"text/string\" "
Index: cmCTestTestHandler.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CTest/cmCTestTestHandler.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -C 2 -d -r1.35 -r1.36
*** cmCTestTestHandler.h 10 Feb 2009 19:24:24 -0000 1.35
--- cmCTestTestHandler.h 24 Feb 2009 22:23:51 -0000 1.36
***************
*** 103,106 ****
--- 103,107 ----
std::string Name;
std::string Path;
+ std::string Reason;
std::string FullCommandLine;
double ExecutionTime;
More information about the Cmake-commits
mailing list