cmCTestGenericHandler: Add cmCTest* argument to Initialize function

This commit is contained in:
Daniel Pfeifer 2024-10-22 12:33:44 +02:00
parent 20b35ef622
commit f5a314cc35
29 changed files with 55 additions and 53 deletions

View File

@ -42,7 +42,7 @@ cmCTestBuildCommand::~cmCTestBuildCommand() = default;
cmCTestGenericHandler* cmCTestBuildCommand::InitializeHandler()
{
cmCTestBuildHandler* handler = this->CTest->GetBuildHandler();
handler->Initialize();
handler->Initialize(this->CTest);
cmValue ctestBuildCommand =
this->Makefile->GetDefinition("CTEST_BUILD_COMMAND");

View File

@ -189,9 +189,9 @@ cmCTestBuildHandler::cmCTestBuildHandler()
this->UseCTestLaunch = false;
}
void cmCTestBuildHandler::Initialize()
void cmCTestBuildHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
this->StartBuild.clear();
this->EndBuild.clear();
this->CustomErrorMatches.clear();

View File

@ -20,6 +20,7 @@
class cmMakefile;
class cmStringReplaceHelper;
class cmXMLWriter;
class cmCTest;
/** \class cmCTestBuildHandler
* \brief A class that handles ctest -S invocations
@ -43,7 +44,7 @@ public:
/**
* Initialize handler
*/
void Initialize() override;
void Initialize(cmCTest* ctest) override;
int GetTotalErrors() const { return this->TotalErrors; }
int GetTotalWarnings() const { return this->TotalWarnings; }

View File

@ -150,7 +150,7 @@ cmCTestGenericHandler* cmCTestConfigureCommand::InitializeHandler()
}
cmCTestConfigureHandler* handler = this->CTest->GetConfigureHandler();
handler->Initialize();
handler->Initialize(this->CTest);
handler->SetQuiet(this->Quiet);
return handler;
}

View File

@ -13,9 +13,9 @@
cmCTestConfigureHandler::cmCTestConfigureHandler() = default;
void cmCTestConfigureHandler::Initialize()
void cmCTestConfigureHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
}
// clearly it would be nice if this were broken up into a few smaller

View File

@ -6,6 +6,8 @@
#include "cmCTestGenericHandler.h"
class cmCTest;
/** \class cmCTestConfigureHandler
* \brief A class that handles ctest -S invocations
*
@ -22,5 +24,5 @@ public:
cmCTestConfigureHandler();
void Initialize() override;
void Initialize(cmCTest* ctest) override;
};

View File

@ -25,7 +25,7 @@ cmCTestGenericHandler* cmCTestCoverageCommand::InitializeHandler()
this->Makefile, "CoverageExtraFlags", "CTEST_COVERAGE_EXTRA_FLAGS",
this->Quiet);
cmCTestCoverageHandler* handler = this->CTest->GetCoverageHandler();
handler->Initialize();
handler->Initialize(this->CTest);
// If a LABELS option was given, select only files with the labels.
if (this->Labels) {

View File

@ -42,9 +42,9 @@ class cmMakefile;
cmCTestCoverageHandler::cmCTestCoverageHandler() = default;
void cmCTestCoverageHandler::Initialize()
void cmCTestCoverageHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
this->CustomCoverageExclude.clear();
this->SourceLabels.clear();
this->TargetDirs.clear();

View File

@ -17,6 +17,7 @@
class cmGeneratedFileStream;
class cmMakefile;
class cmXMLWriter;
class cmCTest;
class cmCTestCoverageHandlerContainer
{
@ -46,7 +47,7 @@ public:
cmCTestCoverageHandler();
void Initialize() override;
void Initialize(cmCTest* ctest) override;
/**
* This method is called when reading CTest custom file

View File

@ -82,8 +82,9 @@ void cmCTestGenericHandler::AddPersistentMultiOption(const std::string& op,
}
}
void cmCTestGenericHandler::Initialize()
void cmCTestGenericHandler::Initialize(cmCTest* ctest)
{
this->CTest = ctest;
this->AppendXML = false;
this->TestLoad = 0;
this->Options = this->PersistentOptions;

View File

@ -45,12 +45,11 @@ public:
/**
* Initialize handler
*/
virtual void Initialize();
virtual void Initialize(cmCTest* ctest);
/**
* Set the CTest instance
* Get the CTest instance
*/
void SetCTestInstance(cmCTest* ctest) { this->CTest = ctest; }
cmCTest* GetCTestInstance() { return this->CTest; }
/**

View File

@ -17,7 +17,7 @@ void cmCTestMemCheckCommand::BindArguments()
cmCTestTestHandler* cmCTestMemCheckCommand::InitializeActualHandler()
{
cmCTestMemCheckHandler* handler = this->CTest->GetMemCheckHandler();
handler->Initialize();
handler->Initialize(this->CTest);
this->CTest->SetCTestConfigurationFromCMakeVariable(
this->Makefile, "MemoryCheckType", "CTEST_MEMORYCHECK_TYPE", this->Quiet);

View File

@ -126,9 +126,9 @@ cmCTestMemCheckHandler::cmCTestMemCheckHandler()
this->LogWithPID = false;
}
void cmCTestMemCheckHandler::Initialize()
void cmCTestMemCheckHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
this->LogWithPID = false;
this->CustomMaximumPassedTestOutputSize = 0;
this->CustomMaximumFailedTestOutputSize = 0;

View File

@ -11,6 +11,7 @@
class cmMakefile;
class cmXMLWriter;
class cmCTest;
/** \class cmCTestMemCheckHandler
* \brief A class that handles ctest -S invocations
@ -27,7 +28,7 @@ public:
cmCTestMemCheckHandler();
void Initialize() override;
void Initialize(cmCTest* ctest) override;
int GetDefectCount() const;

View File

@ -42,9 +42,9 @@
cmCTestScriptHandler::cmCTestScriptHandler() = default;
void cmCTestScriptHandler::Initialize()
void cmCTestScriptHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
// what time in seconds did this script start running
this->ScriptStartTime = std::chrono::steady_clock::time_point();
@ -362,7 +362,7 @@ bool cmCTestScriptHandler::RunScript(cmCTest* ctest, cmMakefile* mf,
int* returnValue)
{
auto sh = cm::make_unique<cmCTestScriptHandler>();
sh->SetCTestInstance(ctest);
sh->Initialize(ctest);
sh->ParentMakefile = mf;
sh->AddConfigurationScript(sname, InProcess);
int res = sh->ProcessHandler();

View File

@ -60,7 +60,7 @@ public:
const cmCTestScriptHandler& operator=(const cmCTestScriptHandler&) = delete;
~cmCTestScriptHandler() override;
void Initialize() override;
void Initialize(cmCTest* ctest) override;
void CreateCMake();
cmake* GetCMake() { return this->CMake.get(); }

View File

@ -122,7 +122,7 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
}
cmCTestSubmitHandler* handler = this->CTest->GetSubmitHandler();
handler->Initialize();
handler->Initialize(this->CTest);
// If no FILES or PARTS given, *all* PARTS are submitted by default.
//

View File

@ -117,13 +117,11 @@ static size_t cmCTestSubmitHandlerCurlDebugCallback(CURL* /*unused*/,
return 0;
}
cmCTestSubmitHandler::cmCTestSubmitHandler()
{
this->Initialize();
}
cmCTestSubmitHandler::cmCTestSubmitHandler() = default;
void cmCTestSubmitHandler::Initialize()
void cmCTestSubmitHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize(ctest);
// We submit all available parts by default.
for (cmCTest::Part p = cmCTest::PartStart; p != cmCTest::PartCount;
p = static_cast<cmCTest::Part>(p + 1)) {
@ -131,7 +129,6 @@ void cmCTestSubmitHandler::Initialize()
}
this->HasWarnings = false;
this->HasErrors = false;
this->Superclass::Initialize();
this->HTTPProxy.clear();
this->HTTPProxyType = 0;
this->HTTPProxyAuth.clear();

View File

@ -31,7 +31,7 @@ public:
*/
int ProcessHandler() override;
void Initialize() override;
void Initialize(cmCTest* ctest) override;
/** Specify a set of parts (by name) to submit. */
void SelectParts(std::set<cmCTest::Part> const& parts);

View File

@ -162,6 +162,6 @@ cmCTestGenericHandler* cmCTestTestCommand::InitializeHandler()
cmCTestTestHandler* cmCTestTestCommand::InitializeActualHandler()
{
cmCTestTestHandler* handler = this->CTest->GetTestHandler();
handler->Initialize();
handler->Initialize(this->CTest);
return handler;
}

View File

@ -313,9 +313,9 @@ cmCTestTestHandler::cmCTestTestHandler()
this->CustomLabelRegex.compile("<CTestLabel>(.*)</CTestLabel>");
}
void cmCTestTestHandler::Initialize()
void cmCTestTestHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
this->ElapsedTestingTime = cmDuration();

View File

@ -107,7 +107,7 @@ public:
*/
bool SetDirectoryProperties(const std::vector<std::string>& args);
void Initialize() override;
void Initialize(cmCTest* ctest) override;
struct cmCTestTestResourceRequirement
{

View File

@ -74,7 +74,7 @@ cmCTestGenericHandler* cmCTestUpdateCommand::InitializeHandler()
this->Makefile, "P4Options", "CTEST_P4_OPTIONS", this->Quiet);
cmCTestUpdateHandler* handler = this->CTest->GetUpdateHandler();
handler->Initialize();
handler->Initialize(this->CTest);
if (source_dir.empty()) {
this->SetError("source directory not specified. Please use SOURCE tag");
return nullptr;

View File

@ -38,9 +38,9 @@ static const char* cmCTestUpdateHandlerUpdateToString(int type)
cmCTestUpdateHandler::cmCTestUpdateHandler() = default;
void cmCTestUpdateHandler::Initialize()
void cmCTestUpdateHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
this->UpdateCommand.clear();
this->UpdateType = e_CVS;
}

View File

@ -10,6 +10,8 @@
#include "cmCTestGenericHandler.h"
class cmCTest;
/** \class cmCTestUpdateHandler
* \brief A class that handles ctest -S invocations
*
@ -41,7 +43,7 @@ public:
/**
* Initialize handler
*/
void Initialize() override;
void Initialize(cmCTest* ctest) override;
private:
// Some structures needed for update

View File

@ -38,7 +38,7 @@ void cmCTestUploadCommand::CheckArguments()
cmCTestGenericHandler* cmCTestUploadCommand::InitializeHandler()
{
cmCTestUploadHandler* handler = this->CTest->GetUploadHandler();
handler->Initialize();
handler->Initialize(this->CTest);
handler->SetFiles(
std::set<std::string>(this->Files.begin(), this->Files.end()));
handler->SetQuiet(this->Quiet);

View File

@ -11,14 +11,11 @@
#include "cmVersion.h"
#include "cmXMLWriter.h"
cmCTestUploadHandler::cmCTestUploadHandler()
{
this->Initialize();
}
cmCTestUploadHandler::cmCTestUploadHandler() = default;
void cmCTestUploadHandler::Initialize()
void cmCTestUploadHandler::Initialize(cmCTest* ctest)
{
this->Superclass::Initialize();
this->Superclass::Initialize(ctest);
this->Files.clear();
}

View File

@ -9,6 +9,8 @@
#include "cmCTestGenericHandler.h"
class cmCTest;
/** \class cmCTestUploadHandler
* \brief Helper class for CTest
*
@ -27,7 +29,7 @@ public:
*/
int ProcessHandler() override;
void Initialize() override;
void Initialize(cmCTest* ctest) override;
/** Specify a set of files to submit. */
void SetFiles(std::set<std::string> const& files);

View File

@ -355,10 +355,6 @@ cmCTest::cmCTest()
->PartMap[cmSystemTools::LowerCase(this->Impl->Parts[p].GetName())] = p;
}
for (auto& handler : this->Impl->GetTestingHandlers()) {
handler->SetCTestInstance(this);
}
// Make sure we can capture the build tool output.
cmSystemTools::EnableVSConsoleOutput();
}
@ -796,7 +792,7 @@ int cmCTest::ProcessSteps()
int res = 0;
cmCTestScriptHandler script;
script.SetCTestInstance(this);
script.Initialize(this);
script.CreateCMake();
cmMakefile& mf = *script.GetMakefile();
this->ReadCustomConfigurationFileTree(this->Impl->BinaryDir, &mf);
@ -2790,6 +2786,7 @@ int cmCTest::RunScripts(
}
cmCTestScriptHandler* ch = this->GetScriptHandler();
ch->Initialize(this);
ch->SetVerbose(this->Impl->Verbose);
for (auto const& script : scripts) {
ch->AddConfigurationScript(script.first, script.second);
@ -2835,6 +2832,8 @@ int cmCTest::ExecuteTests()
cmCTestLog(this, DEBUG, "Here: " << __LINE__ << std::endl);
this->GetTestHandler()->Initialize(this);
{
cmake cm(cmake::RoleScript, cmState::CTest);
cm.SetHomeDirectory("");