cmCTest: Improve readability adding "RunCMakeAndTest()" and "ExecuteTests()"
This commit is contained in:
parent
898cb987b4
commit
280d0a6947
|
@ -2134,72 +2134,82 @@ int cmCTest::Run(std::vector<std::string>& args, std::string* output)
|
||||||
// now what should cmake do? if --build-and-test was specified then
|
// now what should cmake do? if --build-and-test was specified then
|
||||||
// we run the build and test handler and return
|
// we run the build and test handler and return
|
||||||
if (cmakeAndTest) {
|
if (cmakeAndTest) {
|
||||||
this->Verbose = true;
|
return this->RunCMakeAndTest(output);
|
||||||
cmCTestBuildAndTestHandler* handler =
|
|
||||||
static_cast<cmCTestBuildAndTestHandler*>(this->GetHandler("buildtest"));
|
|
||||||
int retv = handler->ProcessHandler();
|
|
||||||
*output = handler->GetOutput();
|
|
||||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
|
||||||
cmDynamicLoader::FlushCache();
|
|
||||||
#endif
|
|
||||||
if (retv != 0) {
|
|
||||||
cmCTestLog(this, DEBUG,
|
|
||||||
"build and test failing returning: " << retv << std::endl);
|
|
||||||
}
|
|
||||||
return retv;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (executeTests) {
|
if (executeTests) {
|
||||||
int res;
|
return this->ExecuteTests();
|
||||||
// call process directory
|
|
||||||
if (this->RunConfigurationScript) {
|
|
||||||
if (this->ExtraVerbose) {
|
|
||||||
cmCTestLog(this, OUTPUT, "* Extra verbosity turned on" << std::endl);
|
|
||||||
}
|
|
||||||
cmCTest::t_TestingHandlers::iterator it;
|
|
||||||
for (it = this->TestingHandlers.begin();
|
|
||||||
it != this->TestingHandlers.end(); ++it) {
|
|
||||||
it->second->SetVerbose(this->ExtraVerbose);
|
|
||||||
it->second->SetSubmitIndex(this->SubmitIndex);
|
|
||||||
}
|
|
||||||
this->GetHandler("script")->SetVerbose(this->Verbose);
|
|
||||||
res = this->GetHandler("script")->ProcessHandler();
|
|
||||||
if (res != 0) {
|
|
||||||
cmCTestLog(this, DEBUG,
|
|
||||||
"running script failing returning: " << res << std::endl);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// What is this? -V seems to be the same as -VV,
|
|
||||||
// and Verbose is always on in this case
|
|
||||||
this->ExtraVerbose = this->Verbose;
|
|
||||||
this->Verbose = true;
|
|
||||||
cmCTest::t_TestingHandlers::iterator it;
|
|
||||||
for (it = this->TestingHandlers.begin();
|
|
||||||
it != this->TestingHandlers.end(); ++it) {
|
|
||||||
it->second->SetVerbose(this->Verbose);
|
|
||||||
it->second->SetSubmitIndex(this->SubmitIndex);
|
|
||||||
}
|
|
||||||
std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
|
|
||||||
if (!this->Initialize(cwd.c_str(), CM_NULLPTR)) {
|
|
||||||
res = 12;
|
|
||||||
cmCTestLog(this, ERROR_MESSAGE, "Problem initializing the dashboard."
|
|
||||||
<< std::endl);
|
|
||||||
} else {
|
|
||||||
res = this->ProcessTests();
|
|
||||||
}
|
|
||||||
this->Finalize();
|
|
||||||
}
|
|
||||||
if (res != 0) {
|
|
||||||
cmCTestLog(this, DEBUG,
|
|
||||||
"Running a test(s) failed returning : " << res << std::endl);
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cmCTest::ExecuteTests()
|
||||||
|
{
|
||||||
|
int res;
|
||||||
|
// call process directory
|
||||||
|
if (this->RunConfigurationScript) {
|
||||||
|
if (this->ExtraVerbose) {
|
||||||
|
cmCTestLog(this, OUTPUT, "* Extra verbosity turned on" << std::endl);
|
||||||
|
}
|
||||||
|
cmCTest::t_TestingHandlers::iterator it;
|
||||||
|
for (it = this->TestingHandlers.begin(); it != this->TestingHandlers.end();
|
||||||
|
++it) {
|
||||||
|
it->second->SetVerbose(this->ExtraVerbose);
|
||||||
|
it->second->SetSubmitIndex(this->SubmitIndex);
|
||||||
|
}
|
||||||
|
this->GetHandler("script")->SetVerbose(this->Verbose);
|
||||||
|
res = this->GetHandler("script")->ProcessHandler();
|
||||||
|
if (res != 0) {
|
||||||
|
cmCTestLog(this, DEBUG,
|
||||||
|
"running script failing returning: " << res << std::endl);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// What is this? -V seems to be the same as -VV,
|
||||||
|
// and Verbose is always on in this case
|
||||||
|
this->ExtraVerbose = this->Verbose;
|
||||||
|
this->Verbose = true;
|
||||||
|
cmCTest::t_TestingHandlers::iterator it;
|
||||||
|
for (it = this->TestingHandlers.begin(); it != this->TestingHandlers.end();
|
||||||
|
++it) {
|
||||||
|
it->second->SetVerbose(this->Verbose);
|
||||||
|
it->second->SetSubmitIndex(this->SubmitIndex);
|
||||||
|
}
|
||||||
|
std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
|
||||||
|
if (!this->Initialize(cwd.c_str(), CM_NULLPTR)) {
|
||||||
|
res = 12;
|
||||||
|
cmCTestLog(this, ERROR_MESSAGE, "Problem initializing the dashboard."
|
||||||
|
<< std::endl);
|
||||||
|
} else {
|
||||||
|
res = this->ProcessTests();
|
||||||
|
}
|
||||||
|
this->Finalize();
|
||||||
|
}
|
||||||
|
if (res != 0) {
|
||||||
|
cmCTestLog(this, DEBUG,
|
||||||
|
"Running a test(s) failed returning : " << res << std::endl);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cmCTest::RunCMakeAndTest(std::string* output)
|
||||||
|
{
|
||||||
|
this->Verbose = true;
|
||||||
|
cmCTestBuildAndTestHandler* handler =
|
||||||
|
static_cast<cmCTestBuildAndTestHandler*>(this->GetHandler("buildtest"));
|
||||||
|
int retv = handler->ProcessHandler();
|
||||||
|
*output = handler->GetOutput();
|
||||||
|
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||||
|
cmDynamicLoader::FlushCache();
|
||||||
|
#endif
|
||||||
|
if (retv != 0) {
|
||||||
|
cmCTestLog(this, DEBUG, "build and test failing returning: " << retv
|
||||||
|
<< std::endl);
|
||||||
|
}
|
||||||
|
return retv;
|
||||||
|
}
|
||||||
|
|
||||||
void cmCTest::SetNotesFiles(const char* notes)
|
void cmCTest::SetNotesFiles(const char* notes)
|
||||||
{
|
{
|
||||||
if (!notes) {
|
if (!notes) {
|
||||||
|
|
|
@ -579,6 +579,9 @@ private:
|
||||||
//! Output errors from a test
|
//! Output errors from a test
|
||||||
void OutputTestErrors(std::vector<char> const& process_output);
|
void OutputTestErrors(std::vector<char> const& process_output);
|
||||||
|
|
||||||
|
int RunCMakeAndTest(std::string* output);
|
||||||
|
int ExecuteTests();
|
||||||
|
|
||||||
bool SuppressUpdatingCTestConfiguration;
|
bool SuppressUpdatingCTestConfiguration;
|
||||||
|
|
||||||
bool Debug;
|
bool Debug;
|
||||||
|
|
Loading…
Reference in New Issue