123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmCTestGenericHandler_h
- #define cmCTestGenericHandler_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <map>
- #include <stddef.h>
- #include <string>
- #include <vector>
- #include "cmCTest.h"
- #include "cmSystemTools.h"
- class cmCTestCommand;
- class cmGeneratedFileStream;
- class cmMakefile;
- /** \class cmCTestGenericHandler
- * \brief A superclass of all CTest Handlers
- *
- */
- class cmCTestGenericHandler
- {
- public:
- /**
- * If verbose then more informaiton is printed out
- */
- void SetVerbose(bool val)
- {
- this->HandlerVerbose =
- val ? cmSystemTools::OUTPUT_MERGE : cmSystemTools::OUTPUT_NONE;
- }
- /**
- * Populate internals from CTest custom scripts
- */
- virtual void PopulateCustomVectors(cmMakefile*) {}
- /**
- * Do the actual processing. Subclass has to override it.
- * Return < 0 if error.
- */
- virtual int ProcessHandler() = 0;
- /**
- * Process command line arguments that are applicable for the handler
- */
- virtual int ProcessCommandLineArguments(
- const std::string& /*currentArg*/, size_t& /*idx*/,
- const std::vector<std::string>& /*allArgs*/)
- {
- return 1;
- }
- /**
- * Initialize handler
- */
- virtual void Initialize();
- /**
- * Set the CTest instance
- */
- void SetCTestInstance(cmCTest* ctest) { this->CTest = ctest; }
- cmCTest* GetCTestInstance() { return this->CTest; }
- /**
- * Construct handler
- */
- cmCTestGenericHandler();
- virtual ~cmCTestGenericHandler();
- typedef std::map<std::string, std::string> t_StringToString;
- void SetPersistentOption(const std::string& op, const char* value);
- void SetOption(const std::string& op, const char* value);
- const char* GetOption(const std::string& op);
- void SetCommand(cmCTestCommand* command) { this->Command = command; }
- void SetSubmitIndex(int idx) { this->SubmitIndex = idx; }
- int GetSubmitIndex() { return this->SubmitIndex; }
- void SetAppendXML(bool b) { this->AppendXML = b; }
- void SetQuiet(bool b) { this->Quiet = b; }
- bool GetQuiet() { return this->Quiet; }
- void SetTestLoad(unsigned long load) { this->TestLoad = load; }
- unsigned long GetTestLoad() const { return this->TestLoad; }
- protected:
- bool StartResultingXML(cmCTest::Part part, const char* name,
- cmGeneratedFileStream& xofs);
- bool StartLogFile(const char* name, cmGeneratedFileStream& xofs);
- bool AppendXML;
- bool Quiet;
- unsigned long TestLoad;
- cmSystemTools::OutputOption HandlerVerbose;
- cmCTest* CTest;
- t_StringToString Options;
- t_StringToString PersistentOptions;
- cmCTestCommand* Command;
- int SubmitIndex;
- };
- #endif
|