|  | @@ -348,6 +348,7 @@ bool TryExecutable(const char *dir, const char *file,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  cmCTest::cmCTest() 
 | 
	
		
			
				|  |  |  { 
 | 
	
		
			
				|  |  | +  m_ForceNewCTestProcess   = false;
 | 
	
		
			
				|  |  |    m_TomorrowTag            = false;
 | 
	
		
			
				|  |  |    m_BuildNoCMake           = false;
 | 
	
		
			
				|  |  |    m_BuildNoClean           = false;
 | 
	
	
		
			
				|  | @@ -3330,7 +3331,7 @@ int cmCTest::RunMakeCommand(const char* command, std::string* output,
 | 
	
		
			
				|  |  |  int cmCTest::RunTest(std::vector<const char*> argv, std::string* output, int *retVal,
 | 
	
		
			
				|  |  |    std::ostream* log)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  if(cmSystemTools::SameFile(argv[0], m_CTestSelf.c_str()))
 | 
	
		
			
				|  |  | +  if(cmSystemTools::SameFile(argv[0], m_CTestSelf.c_str()) && !m_ForceNewCTestProcess)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |      cmCTest inst;
 | 
	
		
			
				|  |  |      inst.m_ConfigType = m_ConfigType;
 | 
	
	
		
			
				|  | @@ -4171,6 +4172,10 @@ int cmCTest::Run(std::vector<std::string>const& args, std::string* output)
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  |        m_TomorrowTag = true;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +    if( arg.find("--force-new-ctest-process",0) == 0 )
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      m_ForceNewCTestProcess = true;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      if( arg.find("--interactive-debug-mode",0) == 0 && i < args.size() - 1 )
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  |        i++;
 |