aad15c3abf
If APPEND is given to ctest_start, it will read the tag from the current existing Testing/TAG file rather than creating a new one based on the current time stamp. This allows a developer to run several dashboard scripts in a row, all of which will share the same tag/stamp/buildid when they finally get submitted to CDash. Now you can split the running of build phases and test phases for the same dashboard row into multiple scripts.
93 lines
2.6 KiB
C++
93 lines
2.6 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef cmCTestStartCommand_h
|
|
#define cmCTestStartCommand_h
|
|
|
|
#include "cmCTestCommand.h"
|
|
|
|
/** \class cmCTestStart
|
|
* \brief Run a ctest script
|
|
*
|
|
* cmCTestStartCommand defineds the command to start the nightly testing.
|
|
*/
|
|
class cmCTestStartCommand : public cmCTestCommand
|
|
{
|
|
public:
|
|
|
|
cmCTestStartCommand();
|
|
|
|
/**
|
|
* This is a virtual constructor for the command.
|
|
*/
|
|
virtual cmCommand* Clone()
|
|
{
|
|
cmCTestStartCommand* ni = new cmCTestStartCommand;
|
|
ni->CTest = this->CTest;
|
|
ni->CTestScriptHandler = this->CTestScriptHandler;
|
|
ni->CreateNewTag = this->CreateNewTag;
|
|
return ni;
|
|
}
|
|
|
|
/**
|
|
* This is called when the command is first encountered in
|
|
* the CMakeLists.txt file.
|
|
*/
|
|
virtual bool InitialPass(std::vector<std::string> const& args,
|
|
cmExecutionStatus &status);
|
|
|
|
/**
|
|
* Will this invocation of ctest_start create a new TAG file?
|
|
*/
|
|
bool ShouldCreateNewTag()
|
|
{
|
|
return this->CreateNewTag;
|
|
}
|
|
|
|
/**
|
|
* The name of the command as specified in CMakeList.txt.
|
|
*/
|
|
virtual const char* GetName() { return "ctest_start";}
|
|
|
|
/**
|
|
* Succinct documentation.
|
|
*/
|
|
virtual const char* GetTerseDocumentation()
|
|
{
|
|
return "Starts the testing for a given model";
|
|
}
|
|
|
|
/**
|
|
* More documentation.
|
|
*/
|
|
virtual const char* GetFullDocumentation()
|
|
{
|
|
return
|
|
" ctest_start(Model [TRACK <track>] [APPEND] [source [binary]])\n"
|
|
"Starts the testing for a given model. The command should be called "
|
|
"after the binary directory is initialized. If the 'source' and "
|
|
"'binary' directory are not specified, it reads the "
|
|
"CTEST_SOURCE_DIRECTORY and CTEST_BINARY_DIRECTORY. If the track is "
|
|
"specified, the submissions will go to the specified track. "
|
|
"If APPEND is used, the existing TAG is used rather than "
|
|
"creating a new one based on the current time stamp.";
|
|
}
|
|
|
|
cmTypeMacro(cmCTestStartCommand, cmCTestCommand);
|
|
|
|
private:
|
|
bool InitialCheckout(std::ostream& ofs, std::string const& sourceDir);
|
|
bool CreateNewTag;
|
|
};
|
|
|
|
|
|
#endif
|