Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Source/CTest/cmCTestGenericHandler.h
4998 views
1
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2
file LICENSE.rst or https://cmake.org/licensing for details. */
3
#pragma once
4
5
#include "cmConfigure.h" // IWYU pragma: keep
6
7
#include "cmCTest.h"
8
#include "cmSystemTools.h"
9
10
class cmGeneratedFileStream;
11
class cmMakefile;
12
class cmake;
13
14
/** \class cmCTestGenericHandler
15
* \brief A superclass of all CTest Handlers
16
*
17
*/
18
class cmCTestGenericHandler
19
{
20
public:
21
/**
22
* If verbose then more information is printed out
23
*/
24
void SetVerbose(bool val)
25
{
26
this->HandlerVerbose =
27
val ? cmSystemTools::OUTPUT_MERGE : cmSystemTools::OUTPUT_NONE;
28
}
29
30
/**
31
* Populate internals from CTest custom scripts
32
*/
33
virtual void PopulateCustomVectors(cmMakefile*) {}
34
35
/**
36
* Do the actual processing. Subclass has to override it.
37
* Return < 0 if error.
38
*/
39
virtual int ProcessHandler() = 0;
40
41
/**
42
* Get the CTest instance
43
*/
44
cmCTest* GetCTestInstance() { return this->CTest; }
45
46
/**
47
* Construct handler
48
*/
49
cmCTestGenericHandler(cmCTest* ctest);
50
virtual ~cmCTestGenericHandler();
51
52
void SetSubmitIndex(int idx) { this->SubmitIndex = idx; }
53
int GetSubmitIndex() { return this->SubmitIndex; }
54
55
void SetAppendXML(bool b) { this->AppendXML = b; }
56
void SetQuiet(bool b) { this->Quiet = b; }
57
bool GetQuiet() { return this->Quiet; }
58
void SetTestLoad(unsigned long load) { this->TestLoad = load; }
59
unsigned long GetTestLoad() const { return this->TestLoad; }
60
61
void SetCMakeInstance(cmake* cm) { this->CMake = cm; }
62
63
protected:
64
bool StartResultingXML(cmCTest::Part part, char const* name,
65
cmGeneratedFileStream& xofs);
66
bool StartLogFile(char const* name, cmGeneratedFileStream& xofs);
67
68
bool AppendXML = false;
69
bool Quiet = false;
70
unsigned long TestLoad = 0;
71
cmSystemTools::OutputOption HandlerVerbose = cmSystemTools::OUTPUT_NONE;
72
cmCTest* CTest;
73
cmake* CMake = nullptr;
74
75
int SubmitIndex = 0;
76
};
77
78