BUG#969: Partially fixed by at least using the timeout for the individual calls to RunSingleCommand from within the inner ctest instance. This should be modified to incrementally adjust remaining time.
This commit is contained in:
parent
40a5bad916
commit
0b7ab2a4aa
|
@ -3354,6 +3354,7 @@ int cmCTest::RunTest(std::vector<const char*> argv, std::string* output, int *re
|
||||||
{
|
{
|
||||||
cmCTest inst;
|
cmCTest inst;
|
||||||
inst.m_ConfigType = m_ConfigType;
|
inst.m_ConfigType = m_ConfigType;
|
||||||
|
inst.m_TimeOut = m_TimeOut;
|
||||||
std::vector<std::string> args;
|
std::vector<std::string> args;
|
||||||
for(unsigned int i =0; i < argv.size(); ++i)
|
for(unsigned int i =0; i < argv.size(); ++i)
|
||||||
{
|
{
|
||||||
|
@ -4671,6 +4672,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
|
||||||
cmSystemTools::SetStdoutCallback(CMakeStdoutCallback, &cmakeOutString);
|
cmSystemTools::SetStdoutCallback(CMakeStdoutCallback, &cmakeOutString);
|
||||||
cmOStringStream out;
|
cmOStringStream out;
|
||||||
cmake cm;
|
cmake cm;
|
||||||
|
double timeout = m_TimeOut;
|
||||||
// default to the build type of ctest itself
|
// default to the build type of ctest itself
|
||||||
if(m_ConfigType.size() == 0)
|
if(m_ConfigType.size() == 0)
|
||||||
{
|
{
|
||||||
|
@ -4822,7 +4824,8 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
|
||||||
out << "Running make clean command: " << cleanCommand.c_str() << " ...\n";
|
out << "Running make clean command: " << cleanCommand.c_str() << " ...\n";
|
||||||
retVal = 0;
|
retVal = 0;
|
||||||
std::string output;
|
std::string output;
|
||||||
if (!cmSystemTools::RunSingleCommand(cleanCommand.c_str(), &output, &retVal) ||
|
if (!cmSystemTools::RunSingleCommand(cleanCommand.c_str(), &output, &retVal, 0,
|
||||||
|
false, timeout) ||
|
||||||
retVal)
|
retVal)
|
||||||
{
|
{
|
||||||
out << "Error: " << cleanCommand.c_str() << " execution failed\n";
|
out << "Error: " << cleanCommand.c_str() << " execution failed\n";
|
||||||
|
@ -4855,7 +4858,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
|
||||||
out << "Running make command: " << makeCommand.c_str() << "\n";
|
out << "Running make command: " << makeCommand.c_str() << "\n";
|
||||||
retVal = 0;
|
retVal = 0;
|
||||||
std::string output;
|
std::string output;
|
||||||
if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), &output, &retVal, 0, false))
|
if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), &output, &retVal, 0, false, timeout))
|
||||||
{
|
{
|
||||||
out << "Error: " << makeCommand.c_str() << " execution failed\n";
|
out << "Error: " << makeCommand.c_str() << " execution failed\n";
|
||||||
out << output.c_str() << "\n";
|
out << output.c_str() << "\n";
|
||||||
|
@ -5035,6 +5038,7 @@ int cmCTest::RunCMakeAndTest(std::string* outstring)
|
||||||
out << m_TestCommandArgs[k] << " ";
|
out << m_TestCommandArgs[k] << " ";
|
||||||
}
|
}
|
||||||
out << "\n";
|
out << "\n";
|
||||||
|
m_TimeOut = timeout;
|
||||||
int runTestRes = this->RunTest(testCommand, &outs, &retval, 0);
|
int runTestRes = this->RunTest(testCommand, &outs, &retval, 0);
|
||||||
if(runTestRes != cmsysProcess_State_Exited || retval != 0)
|
if(runTestRes != cmsysProcess_State_Exited || retval != 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -310,7 +310,7 @@ private:
|
||||||
|
|
||||||
int m_TestModel;
|
int m_TestModel;
|
||||||
|
|
||||||
int m_TimeOut;
|
double m_TimeOut;
|
||||||
|
|
||||||
std::string m_MemoryTester;
|
std::string m_MemoryTester;
|
||||||
std::string m_MemoryTesterOptions;
|
std::string m_MemoryTesterOptions;
|
||||||
|
|
Loading…
Reference in New Issue