ENH: add the ability to block popup error dialogs in tests on windows
This commit is contained in:
parent
99a1ec6c6d
commit
9ff7fdc74f
@ -359,6 +359,7 @@ cmCTest::cmCTest()
|
|||||||
m_ShowOnly = false;
|
m_ShowOnly = false;
|
||||||
m_RunConfigurationScript = false;
|
m_RunConfigurationScript = false;
|
||||||
m_TestModel = cmCTest::EXPERIMENTAL;
|
m_TestModel = cmCTest::EXPERIMENTAL;
|
||||||
|
m_InteractiveDebugMode = true;
|
||||||
m_TimeOut = 0;
|
m_TimeOut = 0;
|
||||||
m_CompatibilityMode = 0;
|
m_CompatibilityMode = 0;
|
||||||
int cc;
|
int cc;
|
||||||
@ -370,6 +371,11 @@ cmCTest::cmCTest()
|
|||||||
|
|
||||||
int cmCTest::Initialize()
|
int cmCTest::Initialize()
|
||||||
{
|
{
|
||||||
|
if(!m_InteractiveDebugMode)
|
||||||
|
{
|
||||||
|
this->BlockTestErrorDiagnostics();
|
||||||
|
}
|
||||||
|
|
||||||
m_ToplevelPath = cmSystemTools::GetCurrentWorkingDirectory();
|
m_ToplevelPath = cmSystemTools::GetCurrentWorkingDirectory();
|
||||||
cmSystemTools::ConvertToUnixSlashes(m_ToplevelPath);
|
cmSystemTools::ConvertToUnixSlashes(m_ToplevelPath);
|
||||||
if ( !this->ReadCustomConfigurationFileTree(m_ToplevelPath.c_str()) )
|
if ( !this->ReadCustomConfigurationFileTree(m_ToplevelPath.c_str()) )
|
||||||
@ -512,6 +518,21 @@ void cmCTest::UpdateCTestConfiguration()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cmCTest::BlockTestErrorDiagnostics()
|
||||||
|
{
|
||||||
|
cmSystemTools::PutEnv("DART_TEST_FROM_DART=1");
|
||||||
|
cmSystemTools::PutEnv("DASHBOARD_TEST_FROM_CTEST=1");
|
||||||
|
#if defined(_WIN32)
|
||||||
|
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmCTest::SetTestModel(int mode)
|
||||||
|
{
|
||||||
|
m_InteractiveDebugMode = false;
|
||||||
|
m_TestModel = mode;
|
||||||
|
}
|
||||||
|
|
||||||
bool cmCTest::SetTest(const char* ttype)
|
bool cmCTest::SetTest(const char* ttype)
|
||||||
{
|
{
|
||||||
if ( cmSystemTools::LowerCase(ttype) == "all" )
|
if ( cmSystemTools::LowerCase(ttype) == "all" )
|
||||||
@ -4148,6 +4169,11 @@ int cmCTest::Run(std::vector<std::string>const& args, std::string* output)
|
|||||||
{
|
{
|
||||||
m_TomorrowTag = true;
|
m_TomorrowTag = true;
|
||||||
}
|
}
|
||||||
|
if( arg.find("--interactive-debug-mode",0) == 0 && i < args.size() - 1 )
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
m_InteractiveDebugMode = cmSystemTools::IsOn(args[i].c_str());
|
||||||
|
}
|
||||||
if( arg.find("--compatibility-mode",0) == 0 )
|
if( arg.find("--compatibility-mode",0) == 0 )
|
||||||
{
|
{
|
||||||
m_CompatibilityMode = true;
|
m_CompatibilityMode = true;
|
||||||
|
@ -117,10 +117,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Set the cmake test mode (experimental, nightly, continuous).
|
* Set the cmake test mode (experimental, nightly, continuous).
|
||||||
*/
|
*/
|
||||||
void SetTestModel(int mode)
|
void SetTestModel(int mode);
|
||||||
{
|
|
||||||
m_TestModel = mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string GetTestModelString();
|
std::string GetTestModelString();
|
||||||
static int GetTestModelFromString(const char* str);
|
static int GetTestModelFromString(const char* str);
|
||||||
@ -356,7 +353,10 @@ private:
|
|||||||
tm_VectorOfStrings m_CustomPostTest;
|
tm_VectorOfStrings m_CustomPostTest;
|
||||||
tm_VectorOfStrings m_CustomPreMemCheck;
|
tm_VectorOfStrings m_CustomPreMemCheck;
|
||||||
tm_VectorOfStrings m_CustomPostMemCheck;
|
tm_VectorOfStrings m_CustomPostMemCheck;
|
||||||
|
bool m_InteractiveDebugMode;
|
||||||
|
|
||||||
|
void BlockTestErrorDiagnostics();
|
||||||
|
|
||||||
int ExecuteCommands(tm_VectorOfStrings& vec);
|
int ExecuteCommands(tm_VectorOfStrings& vec);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user