summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestRunTest.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/CTest/cmCTestRunTest.cxx')
-rw-r--r--Source/CTest/cmCTestRunTest.cxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 0e8d404..2f20adf 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -38,18 +38,19 @@ bool cmCTestRunTest::IsRunning()
void cmCTestRunTest::CheckOutput()
{
std::string out, err;
- this->TestProcess->CheckOutput(.1);
+ bool running = this->TestProcess->CheckOutput(.1);
//start our timeout for reading the process output
double clock_start = cmSystemTools::GetTime();
int pipe;
bool gotStdOut = false;
bool gotStdErr = false;
while((pipe = this->TestProcess->
- GetNextOutputLine(out, err, gotStdOut, gotStdErr) )
+ GetNextOutputLine(out, err, gotStdOut, gotStdErr, running) )
!= cmsysProcess_Pipe_Timeout)
{
if(pipe == cmsysProcess_Pipe_STDOUT ||
- pipe == cmsysProcess_Pipe_STDERR)
+ pipe == cmsysProcess_Pipe_STDERR ||
+ pipe == cmsysProcess_Pipe_None)
{
if(gotStdErr)
{
@@ -65,6 +66,10 @@ void cmCTestRunTest::CheckOutput()
this->ProcessOutput += out;
this->ProcessOutput += "\n";
}
+ if(pipe == cmsysProcess_Pipe_None)
+ {
+ break;
+ }
}
gotStdOut = false;
gotStdErr = false;