cmCTest: Move all data members to private implementation struct

This commit is contained in:
Regina Pfeifer
2019-03-18 22:25:50 +01:00
parent 670d27da64
commit da5ee509b2
2 changed files with 443 additions and 426 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,7 @@
#include <chrono>
#include <map>
#include <memory> // IWYU pragma: keep
#include <set>
#include <sstream>
#include <string>
@@ -51,21 +52,6 @@ public:
PartCount // Update names in constructor when adding a part
};
/** Representation of one part. */
struct PartInfo
{
void SetName(const std::string& name) { this->Name = name; }
const std::string& GetName() const { return this->Name; }
void Enable() { this->Enabled = true; }
explicit operator bool() const { return this->Enabled; }
std::vector<std::string> SubmitFiles;
private:
bool Enabled = false;
std::string Name;
};
#ifdef CMAKE_BUILD_WITH_CMAKE
enum HTTPMethod
{
@@ -468,84 +454,9 @@ public:
void SetRunCurrentScript(bool value);
private:
int RepeatTests;
bool RepeatUntilFail;
std::string ConfigType;
std::string ScheduleType;
std::chrono::system_clock::time_point StopTime;
bool TestProgressOutput;
bool Verbose;
bool ExtraVerbose;
bool ProduceXML;
bool LabelSummary;
bool SubprojectSummary;
bool UseHTTP10;
bool PrintLabels;
bool Failover;
bool FlushTestProgressLine;
bool ForceNewCTestProcess;
bool RunConfigurationScript;
int GenerateNotesFile(const char* files);
// these are helper classes
typedef std::map<std::string, cmCTestGenericHandler*> t_TestingHandlers;
t_TestingHandlers TestingHandlers;
bool ShowOnly;
bool OutputAsJson;
int OutputAsJsonVersion;
/** Map of configuration properties */
typedef std::map<std::string, std::string> CTestConfigurationMap;
// TODO: The ctest configuration should be a hierarchy of
// configuration option sources: command-line, script, ini file.
// Then the ini file can get re-loaded whenever it changes without
// affecting any higher-precedence settings.
CTestConfigurationMap CTestConfiguration;
CTestConfigurationMap CTestConfigurationOverwrites;
PartInfo Parts[PartCount];
typedef std::map<std::string, Part> PartMapType;
PartMapType PartMap;
std::string CurrentTag;
bool TomorrowTag;
int TestModel;
std::string SpecificTrack;
cmDuration TimeOut;
cmDuration GlobalTimeout;
int MaxTestNameWidth;
int ParallelLevel;
bool ParallelLevelSetInCli;
unsigned long TestLoad;
int CompatibilityMode;
// information for the --build-and-test options
std::string BinaryDir;
std::string NotesFiles;
bool InteractiveDebugMode;
bool ShortDateFormat;
bool CompressXMLFiles;
bool CompressTestOutput;
void InitStreams();
std::ostream* StreamOut;
std::ostream* StreamErr;
void BlockTestErrorDiagnostics();
@@ -611,25 +522,8 @@ private:
int RunCMakeAndTest(std::string* output);
int ExecuteTests();
bool SuppressUpdatingCTestConfiguration;
bool Debug;
bool ShowLineNumbers;
bool Quiet;
std::string BuildID;
std::vector<std::string> InitialCommandLineArguments;
int SubmitIndex;
cmGeneratedFileStream* OutputLogFile;
int OutputLogFileLastTag;
bool OutputTestOutputOnTestFailure;
bool OutputColorCode;
std::map<std::string, std::string> Definitions;
struct Private;
std::unique_ptr<Private> Impl;
};
class cmCTestLogWrite