BUG: Fixed extraneous newlines from ctest process output
This commit is contained in:
parent
39e5f9d963
commit
6727834a8c
@ -90,7 +90,7 @@ void cmCTestMultiProcessHandler::SubmitBatchTests()
|
|||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
void cmCTestMultiProcessHandler::StartTestProcess(int test)
|
void cmCTestMultiProcessHandler::StartTestProcess(int test)
|
||||||
{
|
{
|
||||||
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " test " << test << "\n");
|
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "test " << test << "\n");
|
||||||
this->TestRunningMap[test] = true; // mark the test as running
|
this->TestRunningMap[test] = true; // mark the test as running
|
||||||
// now remove the test itself
|
// now remove the test itself
|
||||||
this->EraseTest(test);
|
this->EraseTest(test);
|
||||||
|
@ -93,26 +93,6 @@ int cmProcess::GetNextOutputLine(std::string& stdOutLine,
|
|||||||
std::vector<char>::iterator erriter =
|
std::vector<char>::iterator erriter =
|
||||||
this->StdErrorBuffer.begin();
|
this->StdErrorBuffer.begin();
|
||||||
|
|
||||||
//If process terminated, flush the buffer
|
|
||||||
if(!running)
|
|
||||||
{
|
|
||||||
if(!this->StdErrorBuffer.empty())
|
|
||||||
{
|
|
||||||
gotStdErr = true;
|
|
||||||
stdErrLine.append(&this->StdErrorBuffer[0], this->StdErrorBuffer.size());
|
|
||||||
this->StdErrorBuffer.erase(this->StdErrorBuffer.begin(),
|
|
||||||
this->StdErrorBuffer.end());
|
|
||||||
}
|
|
||||||
if(!this->StdOutBuffer.empty())
|
|
||||||
{
|
|
||||||
gotStdOut = true;
|
|
||||||
stdOutLine.append(&this->StdOutBuffer[0], this->StdOutBuffer.size());
|
|
||||||
this->StdOutBuffer.erase(this->StdOutBuffer.begin(),
|
|
||||||
this->StdOutBuffer.end());
|
|
||||||
}
|
|
||||||
return cmsysProcess_Pipe_None;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for a newline in stdout.
|
// Check for a newline in stdout.
|
||||||
for(;outiter != this->StdOutBuffer.end(); ++outiter)
|
for(;outiter != this->StdOutBuffer.end(); ++outiter)
|
||||||
{
|
{
|
||||||
@ -162,6 +142,31 @@ int cmProcess::GetNextOutputLine(std::string& stdOutLine,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!running && !gotStdErr && !gotStdOut)
|
||||||
|
{
|
||||||
|
//If process terminated with no newline, flush the buffer
|
||||||
|
if(!running)
|
||||||
|
{
|
||||||
|
if(!this->StdErrorBuffer.empty())
|
||||||
|
{
|
||||||
|
gotStdErr = true;
|
||||||
|
stdErrLine.append(&this->StdErrorBuffer[0],
|
||||||
|
this->StdErrorBuffer.size());
|
||||||
|
this->StdErrorBuffer.erase(this->StdErrorBuffer.begin(),
|
||||||
|
this->StdErrorBuffer.end());
|
||||||
|
}
|
||||||
|
if(!this->StdOutBuffer.empty())
|
||||||
|
{
|
||||||
|
gotStdOut = true;
|
||||||
|
stdOutLine.append(&this->StdOutBuffer[0],
|
||||||
|
this->StdOutBuffer.size());
|
||||||
|
this->StdOutBuffer.erase(this->StdOutBuffer.begin(),
|
||||||
|
this->StdOutBuffer.end());
|
||||||
|
}
|
||||||
|
return cmsysProcess_Pipe_None;
|
||||||
|
}
|
||||||
|
}
|
||||||
//If we get here, we have stuff waiting in the buffers, but no newline
|
//If we get here, we have stuff waiting in the buffers, but no newline
|
||||||
return this->LastOutputPipe;
|
return this->LastOutputPipe;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user