/*============================================================================ 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 cmCTestSubmitCommand_h #define cmCTestSubmitCommand_h #include "cmCTestHandlerCommand.h" #include "cmCTest.h" /** \class cmCTestSubmit * \brief Run a ctest script * * cmCTestSubmitCommand defineds the command to submit the test results for * the project. */ class cmCTestSubmitCommand : public cmCTestHandlerCommand { public: cmCTestSubmitCommand() { this->PartsMentioned = false; this->FilesMentioned = false; this->InternalTest = false; this->RetryCount = ""; this->RetryDelay = ""; } /** * This is a virtual constructor for the command. */ virtual cmCommand* Clone() { cmCTestSubmitCommand* ni = new cmCTestSubmitCommand; ni->CTest = this->CTest; ni->CTestScriptHandler = this->CTestScriptHandler; return ni; } /** * The name of the command as specified in CMakeList.txt. */ virtual const char* GetName() const { return "ctest_submit";} /** * Succinct documentation. */ virtual const char* GetTerseDocumentation() const { return "Submit results to a dashboard server."; } /** * More documentation. */ virtual const char* GetFullDocumentation() const { return " ctest_submit([PARTS ...] [FILES ...] [RETRY_COUNT count] " " [RETRY_DELAY delay][RETURN_VALUE res])\n" "By default all available parts are submitted if no PARTS or FILES " "are specified. " "The PARTS option lists a subset of parts to be submitted. " "Valid part names are:\n" " Start = nothing\n" " Update = ctest_update results, in Update.xml\n" " Configure = ctest_configure results, in Configure.xml\n" " Build = ctest_build results, in Build.xml\n" " Test = ctest_test results, in Test.xml\n" " Coverage = ctest_coverage results, in Coverage.xml\n" " MemCheck = ctest_memcheck results, in DynamicAnalysis.xml\n" " Notes = Files listed by CTEST_NOTES_FILES, in Notes.xml\n" " ExtraFiles = Files listed by CTEST_EXTRA_SUBMIT_FILES\n" " Submit = nothing\n" "The FILES option explicitly lists specific files to be submitted. " "Each individual file must exist at the time of the call.\n" "The RETRY_DELAY option specifies how long in seconds to wait after " "a timed-out submission before attempting to re-submit.\n" "The RETRY_COUNT option specifies how many times to retry a timed-out " "submission.\n"; } cmTypeMacro(cmCTestSubmitCommand, cmCTestHandlerCommand); protected: cmCTestGenericHandler* InitializeHandler(); virtual bool CheckArgumentKeyword(std::string const& arg); virtual bool CheckArgumentValue(std::string const& arg); enum { ArgumentDoingParts = Superclass::ArgumentDoingLast1, ArgumentDoingFiles, ArgumentDoingRetryDelay, ArgumentDoingRetryCount, ArgumentDoingLast2 }; bool PartsMentioned; std::set Parts; bool FilesMentioned; bool InternalTest; cmCTest::SetOfStrings Files; std::string RetryCount; std::string RetryDelay; }; #endif