|  | @@ -92,9 +92,9 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
 | 
	
		
			
				|  |  |    this->WriteLogOutputTop(completed, total);
 | 
	
		
			
				|  |  |    std::string reason;
 | 
	
		
			
				|  |  |    bool passed = true;
 | 
	
		
			
				|  |  | -  int res = this->TestProcess->GetProcessStatus();
 | 
	
		
			
				|  |  | +  int res = started ? this->TestProcess->GetProcessStatus()
 | 
	
		
			
				|  |  | +                    : cmsysProcess_State_Error;
 | 
	
		
			
				|  |  |    int retVal = this->TestProcess->GetExitValue();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    std::vector<std::pair<cmsys::RegularExpression,
 | 
	
		
			
				|  |  |      std::string> >::iterator passIt;
 | 
	
		
			
				|  |  |    bool forceFail = false;
 | 
	
	
		
			
				|  | @@ -197,7 +197,6 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    passed = this->TestResult.Status == cmCTestTestHandler::COMPLETED;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    char buf[1024];
 | 
	
		
			
				|  |  |    sprintf(buf, "%6.2f sec", this->TestProcess->GetTotalTime());
 | 
	
		
			
				|  |  |    cmCTestLog(this->CTest, HANDLER_OUTPUT, buf << "\n" );
 | 
	
	
		
			
				|  | @@ -208,9 +207,9 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
 | 
	
		
			
				|  |  |    this->DartProcessing();
 | 
	
		
			
				|  |  |    // if this is doing MemCheck then all the output needs to be put into
 | 
	
		
			
				|  |  |    // Output since that is what is parsed by cmCTestMemCheckHandler
 | 
	
		
			
				|  |  | -  if(!this->TestHandler->MemCheck)
 | 
	
		
			
				|  |  | +  if(!this->TestHandler->MemCheck && started)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -    if ( this->TestResult.Status == cmCTestTestHandler::COMPLETED )
 | 
	
		
			
				|  |  | +    if (this->TestResult.Status == cmCTestTestHandler::COMPLETED)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  |        this->TestHandler->CleanTestOutput(this->ProcessOutput, 
 | 
	
		
			
				|  |  |            static_cast<size_t>
 | 
	
	
		
			
				|  | @@ -224,7 +223,7 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    this->TestResult.Reason = reason;
 | 
	
		
			
				|  |  | -  if ( this->TestHandler->LogFile )
 | 
	
		
			
				|  |  | +  if (this->TestHandler->LogFile)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |      bool pass = true;
 | 
	
		
			
				|  |  |      const char* reasonType = "Test Pass Reason";
 | 
	
	
		
			
				|  | @@ -272,10 +271,10 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started)
 | 
	
		
			
				|  |  |      this->TestResult.ReturnValue = this->TestProcess->GetExitValue();
 | 
	
		
			
				|  |  |      this->TestResult.CompletionStatus = "Completed";
 | 
	
		
			
				|  |  |      this->TestResult.ExecutionTime = this->TestProcess->GetTotalTime();
 | 
	
		
			
				|  |  | -    this->TestHandler->TestResults.push_back( this->TestResult );
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  this->MemCheckPostProcess();
 | 
	
		
			
				|  |  | +    this->TestHandler->TestResults.push_back(this->TestResult);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    this->MemCheckPostProcess();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    delete this->TestProcess;
 | 
	
		
			
				|  |  |    return passed;
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -324,20 +323,18 @@ bool cmCTestRunTest::StartTest()
 | 
	
		
			
				|  |  |    this->TestResult.Name = this->TestProperties->Name;
 | 
	
		
			
				|  |  |    this->TestResult.Path = this->TestProperties->Directory.c_str();
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  | -  // continue if we did not find the executable
 | 
	
		
			
				|  |  | -  if (this->TestCommand == "")
 | 
	
		
			
				|  |  | +  // log and return if we did not find the executable
 | 
	
		
			
				|  |  | +  if (this->ActualCommand == "")
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | +    this->TestProcess = new cmProcess;
 | 
	
		
			
				|  |  |      *this->TestHandler->LogFile << "Unable to find executable: " 
 | 
	
		
			
				|  |  |                     << args[1].c_str() << std::endl;
 | 
	
		
			
				|  |  |      cmCTestLog(this->CTest, ERROR_MESSAGE, "Unable to find executable: "
 | 
	
		
			
				|  |  |                 << args[1].c_str() << std::endl);
 | 
	
		
			
				|  |  |      this->TestResult.Output = "Unable to find executable: " + args[1];
 | 
	
		
			
				|  |  | -    if ( !this->CTest->GetShowOnly() )
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -      this->TestResult.FullCommandLine = this->ActualCommand;
 | 
	
		
			
				|  |  | -      this->TestHandler->TestResults.push_back( this->TestResult );
 | 
	
		
			
				|  |  | -      return false;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +    this->TestResult.FullCommandLine = "";
 | 
	
		
			
				|  |  | +    this->TestHandler->TestResults.push_back(this->TestResult);
 | 
	
		
			
				|  |  | +    return false;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    this->StartTime = this->CTest->CurrentTime();
 | 
	
		
			
				|  |  |  
 |