summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmCTest.cxx7
-rw-r--r--Source/cmCTest.h2
2 files changed, 8 insertions, 1 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index a54a32f..6c64243 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -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++;
diff --git a/Source/cmCTest.h b/Source/cmCTest.h
index 78a8955..ae0e5b7 100644
--- a/Source/cmCTest.h
+++ b/Source/cmCTest.h
@@ -142,6 +142,8 @@ public:
bool m_DartMode;
bool m_ShowOnly;
+ bool m_ForceNewCTestProcess;
+
bool m_RunConfigurationScript;
tm_VectorOfStrings m_ConfigurationScripts;