mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-20 21:40:15 +08:00
cmCTestMultiProcessHandler: Modernize member initialization
This commit is contained in:
@@ -66,18 +66,13 @@ private:
|
|||||||
cmCTestMultiProcessHandler* Handler;
|
cmCTestMultiProcessHandler* Handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
cmCTestMultiProcessHandler::cmCTestMultiProcessHandler()
|
cmCTestMultiProcessHandler::cmCTestMultiProcessHandler(
|
||||||
|
cmCTest* ctest, cmCTestTestHandler* handler)
|
||||||
|
: CTest(ctest)
|
||||||
|
, TestHandler(handler)
|
||||||
|
, ProcessorsAvailable(cmAffinity::GetProcessorsAvailable())
|
||||||
|
, HaveAffinity(this->ProcessorsAvailable.size())
|
||||||
{
|
{
|
||||||
this->ParallelLevel = 1;
|
|
||||||
this->TestLoad = 0;
|
|
||||||
this->FakeLoadForTesting = 0;
|
|
||||||
this->Completed = 0;
|
|
||||||
this->RunningCount = 0;
|
|
||||||
this->ProcessorsAvailable = cmAffinity::GetProcessorsAvailable();
|
|
||||||
this->HaveAffinity = this->ProcessorsAvailable.size();
|
|
||||||
this->HasCycles = false;
|
|
||||||
this->HasInvalidGeneratedResourceSpec = false;
|
|
||||||
this->SerialTestRunning = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cmCTestMultiProcessHandler::~cmCTestMultiProcessHandler() = default;
|
cmCTestMultiProcessHandler::~cmCTestMultiProcessHandler() = default;
|
||||||
|
@@ -58,7 +58,7 @@ public:
|
|||||||
unsigned int Slots;
|
unsigned int Slots;
|
||||||
};
|
};
|
||||||
|
|
||||||
cmCTestMultiProcessHandler();
|
cmCTestMultiProcessHandler(cmCTest* ctest, cmCTestTestHandler* handler);
|
||||||
virtual ~cmCTestMultiProcessHandler();
|
virtual ~cmCTestMultiProcessHandler();
|
||||||
// Set the tests
|
// Set the tests
|
||||||
void SetTests(TestMap tests, PropertiesMap properties);
|
void SetTests(TestMap tests, PropertiesMap properties);
|
||||||
@@ -81,13 +81,6 @@ public:
|
|||||||
this->TestResults = r;
|
this->TestResults = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetCTest(cmCTest* ctest) { this->CTest = ctest; }
|
|
||||||
|
|
||||||
void SetTestHandler(cmCTestTestHandler* handler)
|
|
||||||
{
|
|
||||||
this->TestHandler = handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmCTestTestHandler* GetTestHandler() { return this->TestHandler; }
|
cmCTestTestHandler* GetTestHandler() { return this->TestHandler; }
|
||||||
|
|
||||||
void SetRepeatMode(cmCTest::Repeat mode, int count)
|
void SetRepeatMode(cmCTest::Repeat mode, int count)
|
||||||
@@ -171,22 +164,26 @@ protected:
|
|||||||
bool InitResourceAllocator(std::string& error);
|
bool InitResourceAllocator(std::string& error);
|
||||||
bool CheckGeneratedResourceSpec();
|
bool CheckGeneratedResourceSpec();
|
||||||
|
|
||||||
|
private:
|
||||||
|
cmCTest* CTest;
|
||||||
|
cmCTestTestHandler* TestHandler;
|
||||||
|
|
||||||
bool UseResourceSpec = false;
|
bool UseResourceSpec = false;
|
||||||
cmCTestResourceSpec ResourceSpec;
|
cmCTestResourceSpec ResourceSpec;
|
||||||
std::string ResourceSpecFile;
|
std::string ResourceSpecFile;
|
||||||
std::string ResourceSpecSetupFixture;
|
std::string ResourceSpecSetupFixture;
|
||||||
cm::optional<std::size_t> ResourceSpecSetupTest;
|
cm::optional<std::size_t> ResourceSpecSetupTest;
|
||||||
bool HasInvalidGeneratedResourceSpec;
|
bool HasInvalidGeneratedResourceSpec = false;
|
||||||
|
|
||||||
// Tests pending selection to start. They may have dependencies.
|
// Tests pending selection to start. They may have dependencies.
|
||||||
TestMap PendingTests;
|
TestMap PendingTests;
|
||||||
// List of pending test indexes, ordered by cost.
|
// List of pending test indexes, ordered by cost.
|
||||||
std::list<int> OrderedTests;
|
std::list<int> OrderedTests;
|
||||||
// Total number of tests we'll be running
|
// Total number of tests we'll be running
|
||||||
size_t Total;
|
size_t Total = 0;
|
||||||
// Number of tests that are complete
|
// Number of tests that are complete
|
||||||
size_t Completed;
|
size_t Completed = 0;
|
||||||
size_t RunningCount;
|
size_t RunningCount = 0;
|
||||||
std::set<size_t> ProcessorsAvailable;
|
std::set<size_t> ProcessorsAvailable;
|
||||||
size_t HaveAffinity;
|
size_t HaveAffinity;
|
||||||
bool StopTimePassed = false;
|
bool StopTimePassed = false;
|
||||||
@@ -204,7 +201,7 @@ protected:
|
|||||||
ResourceAvailabilityErrors;
|
ResourceAvailabilityErrors;
|
||||||
cmCTestResourceAllocator ResourceAllocator;
|
cmCTestResourceAllocator ResourceAllocator;
|
||||||
std::vector<cmCTestTestHandler::cmCTestTestResult>* TestResults;
|
std::vector<cmCTestTestHandler::cmCTestTestResult>* TestResults;
|
||||||
size_t ParallelLevel; // max number of process that can be run at once
|
size_t ParallelLevel = 1; // max number of process that can be run at once
|
||||||
|
|
||||||
// 'make' jobserver client. If connected, we acquire a token
|
// 'make' jobserver client. If connected, we acquire a token
|
||||||
// for each test before running its process.
|
// for each test before running its process.
|
||||||
@@ -214,16 +211,14 @@ protected:
|
|||||||
// Callback invoked when a token is received.
|
// Callback invoked when a token is received.
|
||||||
void JobServerReceivedToken();
|
void JobServerReceivedToken();
|
||||||
|
|
||||||
unsigned long TestLoad;
|
unsigned long TestLoad = 0;
|
||||||
unsigned long FakeLoadForTesting;
|
unsigned long FakeLoadForTesting = 0;
|
||||||
cm::uv_loop_ptr Loop;
|
cm::uv_loop_ptr Loop;
|
||||||
cm::uv_idle_ptr StartNextTestsOnIdle_;
|
cm::uv_idle_ptr StartNextTestsOnIdle_;
|
||||||
cm::uv_timer_ptr StartNextTestsOnTimer_;
|
cm::uv_timer_ptr StartNextTestsOnTimer_;
|
||||||
cmCTestTestHandler* TestHandler;
|
bool HasCycles = false;
|
||||||
cmCTest* CTest;
|
|
||||||
bool HasCycles;
|
|
||||||
cmCTest::Repeat RepeatMode = cmCTest::Repeat::Never;
|
cmCTest::Repeat RepeatMode = cmCTest::Repeat::Never;
|
||||||
int RepeatCount = 1;
|
int RepeatCount = 1;
|
||||||
bool Quiet;
|
bool Quiet = false;
|
||||||
bool SerialTestRunning;
|
bool SerialTestRunning = false;
|
||||||
};
|
};
|
||||||
|
@@ -1359,10 +1359,9 @@ bool cmCTestTestHandler::ProcessDirectory(std::vector<std::string>& passed,
|
|||||||
this->StartTestTime = std::chrono::system_clock::now();
|
this->StartTestTime = std::chrono::system_clock::now();
|
||||||
auto elapsed_time_start = std::chrono::steady_clock::now();
|
auto elapsed_time_start = std::chrono::steady_clock::now();
|
||||||
|
|
||||||
auto parallel = cm::make_unique<cmCTestMultiProcessHandler>();
|
auto parallel =
|
||||||
parallel->SetCTest(this->CTest);
|
cm::make_unique<cmCTestMultiProcessHandler>(this->CTest, this);
|
||||||
parallel->SetParallelLevel(this->CTest->GetParallelLevel());
|
parallel->SetParallelLevel(this->CTest->GetParallelLevel());
|
||||||
parallel->SetTestHandler(this);
|
|
||||||
if (this->RepeatMode != cmCTest::Repeat::Never) {
|
if (this->RepeatMode != cmCTest::Repeat::Never) {
|
||||||
parallel->SetRepeatMode(this->RepeatMode, this->RepeatCount);
|
parallel->SetRepeatMode(this->RepeatMode, this->RepeatCount);
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user