| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | 
							- /*=========================================================================
 
-   Program:   CMake - Cross-Platform Makefile Generator
 
-   Module:    $RCSfile$
 
-   Language:  C++
 
-   Date:      $Date$
 
-   Version:   $Revision$
 
-   Copyright (c) 2002 Kitware, Inc., Insight Consortium.  All rights reserved.
 
-   See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
 
-      This software is distributed WITHOUT ANY WARRANTY; without even
 
-      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 
-      PURPOSE.  See the above copyright notices for more information.
 
- =========================================================================*/
 
- #include "cmCTestGenericHandler.h"
 
- #include "cmSystemTools.h"
 
- #include "cmCTest.h"
 
- //----------------------------------------------------------------------
 
- cmCTestGenericHandler::cmCTestGenericHandler()
 
- {
 
-   this->HandlerVerbose = false;
 
-   this->CTest = 0;
 
-   this->SubmitIndex = 0;
 
-   this->AppendXML = false;
 
- }
 
- //----------------------------------------------------------------------
 
- cmCTestGenericHandler::~cmCTestGenericHandler()
 
- {
 
- }
 
- //----------------------------------------------------------------------
 
- void cmCTestGenericHandler::SetOption(const char* op, const char* value)
 
- {
 
-   if ( !op )
 
-     {
 
-     return;
 
-     }
 
-   if ( !value )
 
-     {
 
-     cmCTestGenericHandler::t_StringToString::iterator remit
 
-       = this->Options.find(op);
 
-     if ( remit != this->Options.end() )
 
-       {
 
-       this->Options.erase(remit);
 
-       }
 
-     return;
 
-     }
 
-   this->Options[op] = value;
 
- }
 
- //----------------------------------------------------------------------
 
- void cmCTestGenericHandler::SetPersistentOption(const char* op, 
 
-                                                 const char* value)
 
- {
 
-   this->SetOption(op, value);
 
-   if ( !op )
 
-     {
 
-     return;
 
-     }
 
-   if ( !value )
 
-     {
 
-     cmCTestGenericHandler::t_StringToString::iterator remit
 
-       = this->PersistentOptions.find(op);
 
-     if ( remit != this->PersistentOptions.end() )
 
-       {
 
-       this->PersistentOptions.erase(remit);
 
-       }
 
-     return;
 
-     }
 
-   this->PersistentOptions[op] = value;
 
- }
 
- //----------------------------------------------------------------------
 
- void cmCTestGenericHandler::Initialize()
 
- {
 
-   this->Options.clear();
 
-   t_StringToString::iterator it;
 
-   for ( it = this->PersistentOptions.begin(); 
 
-     it != this->PersistentOptions.end();
 
-     ++ it )
 
-     {
 
-     this->Options[it->first.c_str()] = it->second.c_str();
 
-     }
 
- }
 
- //----------------------------------------------------------------------
 
- const char* cmCTestGenericHandler::GetOption(const char* op)
 
- {
 
-   cmCTestGenericHandler::t_StringToString::iterator remit
 
-     = this->Options.find(op);
 
-   if ( remit == this->Options.end() )
 
-     {
 
-     return 0;
 
-     }
 
-   return remit->second.c_str();
 
- }
 
- //----------------------------------------------------------------------
 
- bool cmCTestGenericHandler::StartResultingXML(cmCTest::Part part,
 
-                                               const char* name,
 
-                                               cmGeneratedFileStream& xofs)
 
- {
 
-   if ( !name )
 
-     {
 
-     cmCTestLog(this->CTest, ERROR_MESSAGE,
 
-       "Cannot create resulting XML file without providing the name"
 
-       << std::endl;);
 
-     return false;
 
-     }
 
-   cmOStringStream ostr;
 
-   ostr << name;
 
-   if ( this->SubmitIndex > 0 )
 
-     {
 
-     ostr << "_" << this->SubmitIndex;
 
-     }
 
-   ostr << ".xml"; 
 
-   if(this->CTest->GetCurrentTag().empty())
 
-     {
 
-     cmCTestLog(this->CTest, ERROR_MESSAGE,
 
-                "Current Tag empty, this may mean NightlyStartTime / "
 
-                "CTEST_NIGHTLY_START_TIME was not set correctly. Or "
 
-                "maybe you forgot to call ctest_start() before calling "
 
-                "ctest_configure()." << std::endl);
 
-     cmSystemTools::SetFatalErrorOccured();
 
-     return false;
 
-     }
 
-   if( !this->CTest->OpenOutputFile(this->CTest->GetCurrentTag(),
 
-       ostr.str().c_str(), xofs, true) )
 
-     {
 
-     cmCTestLog(this->CTest, ERROR_MESSAGE,
 
-       "Cannot create resulting XML file: " << ostr.str().c_str()
 
-       << std::endl);
 
-     return false;
 
-     }
 
-   this->CTest->AddSubmitFile(part, ostr.str().c_str());
 
-   return true;
 
- }
 
- //----------------------------------------------------------------------
 
- bool cmCTestGenericHandler::StartLogFile(const char* name,
 
-   cmGeneratedFileStream& xofs)
 
- {
 
-   if ( !name )
 
-     {
 
-     cmCTestLog(this->CTest, ERROR_MESSAGE,
 
-       "Cannot create log file without providing the name" << std::endl;);
 
-     return false;
 
-     }
 
-   cmOStringStream ostr;
 
-   ostr << "Last" << name;
 
-   if ( this->SubmitIndex > 0 )
 
-     {
 
-     ostr << "_" << this->SubmitIndex;
 
-     }
 
-   if ( !this->CTest->GetCurrentTag().empty() )
 
-     {
 
-     ostr << "_" << this->CTest->GetCurrentTag();
 
-     }
 
-   ostr << ".log";
 
-   // if this is a parallel subprocess then add the id to the
 
-   // file so they don't clobber each other
 
-   if(this->CTest->GetParallelSubprocess())
 
-     {
 
-     ostr << "." << this->CTest->GetParallelSubprocessId();
 
-     }
 
-   if( !this->CTest->OpenOutputFile("Temporary", ostr.str().c_str(), xofs) )
 
-     {
 
-     cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot create log file: "
 
-       << ostr.str().c_str() << std::endl);
 
-     return false;
 
-     }
 
-   return true;
 
- }
 
 
  |