summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestGenericHandler.cxx
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2005-06-23 17:04:18 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2005-06-23 17:04:18 (GMT)
commit1b578d3180ce60976e4cbe928fce988acfd0da39 (patch)
treecdefbf878667d466318aeabfa77cc7625cb4777e /Source/CTest/cmCTestGenericHandler.cxx
parent5c68b61a9caab3f89031155d129b9498d840e502 (diff)
downloadCMake-1b578d3180ce60976e4cbe928fce988acfd0da39.zip
CMake-1b578d3180ce60976e4cbe928fce988acfd0da39.tar.gz
CMake-1b578d3180ce60976e4cbe928fce988acfd0da39.tar.bz2
ENH: Several improvements with the way things are handled. Also, support multiple submited files
Diffstat (limited to 'Source/CTest/cmCTestGenericHandler.cxx')
-rw-r--r--Source/CTest/cmCTestGenericHandler.cxx57
1 files changed, 57 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestGenericHandler.cxx b/Source/CTest/cmCTestGenericHandler.cxx
index 12ee361..1499d24 100644
--- a/Source/CTest/cmCTestGenericHandler.cxx
+++ b/Source/CTest/cmCTestGenericHandler.cxx
@@ -17,11 +17,14 @@
#include "cmCTestGenericHandler.h"
+#include "cmCTest.h"
+
//----------------------------------------------------------------------
cmCTestGenericHandler::cmCTestGenericHandler()
{
m_HandlerVerbose = false;
m_CTest = 0;
+ m_SubmitIndex = 0;
}
//----------------------------------------------------------------------
@@ -51,6 +54,12 @@ void cmCTestGenericHandler::SetOption(const char* op, const char* value)
}
//----------------------------------------------------------------------
+void cmCTestGenericHandler::Initialize()
+{
+ m_Options.clear();
+}
+
+//----------------------------------------------------------------------
const char* cmCTestGenericHandler::GetOption(const char* op)
{
cmCTestGenericHandler::t_StringToString::iterator remit
@@ -62,3 +71,51 @@ const char* cmCTestGenericHandler::GetOption(const char* op)
return remit->second.c_str();
}
+//----------------------------------------------------------------------
+bool cmCTestGenericHandler::StartResultingXML(const char* name, cmGeneratedFileStream& xofs)
+{
+ if ( !name )
+ {
+ cmCTestLog(m_CTest, ERROR_MESSAGE, "Cannot create resulting XML file without providing the name" << std::endl;);
+ return false;
+ }
+ cmOStringStream ostr;
+ ostr << name;
+ if ( m_SubmitIndex > 0 )
+ {
+ ostr << "_" << m_SubmitIndex;
+ }
+ ostr << ".xml";
+ if( !m_CTest->OpenOutputFile(m_CTest->GetCurrentTag(), ostr.str().c_str(), xofs, true) )
+ {
+ cmCTestLog(m_CTest, ERROR_MESSAGE, "Cannot create resulting XML file: " << ostr.str().c_str() << std::endl);
+ return false;
+ }
+ m_CTest->AddSubmitFile(ostr.str().c_str());
+ return true;
+}
+
+//----------------------------------------------------------------------
+bool cmCTestGenericHandler::StartLogFile(const char* name, cmGeneratedFileStream& xofs)
+{
+ if ( !name )
+ {
+ cmCTestLog(m_CTest, ERROR_MESSAGE, "Cannot create log file without providing the name" << std::endl;);
+ return false;
+ }
+ cmOStringStream ostr;
+ ostr << "Last" << name;
+ if ( m_SubmitIndex > 0 )
+ {
+ ostr << "_" << m_SubmitIndex;
+ }
+ ostr << "_" << m_CTest->GetCurrentTag();
+ ostr << ".log";
+ if( !m_CTest->OpenOutputFile("Temporary", ostr.str().c_str(), xofs) )
+ {
+ cmCTestLog(m_CTest, ERROR_MESSAGE, "Cannot create log file: " << ostr.str().c_str() << std::endl);
+ return false;
+ }
+ return true;
+}
+