[ROSAUTOTEST]

- Disable error dialogs unless running in interactive mode
ONLINE-441

svn path=/trunk/; revision=66506
This commit is contained in:
Thomas Faber 2015-02-28 21:29:44 +00:00
parent 1d174e03c2
commit 99126ff14b
3 changed files with 22 additions and 1 deletions

View file

@ -17,17 +17,22 @@ typedef void (WINAPI *GETSYSINFO)(LPSYSTEM_INFO);
*/
CConfiguration::CConfiguration()
: m_CrashRecovery(false),
m_IsInteractive(false),
m_PrintToConsole(true),
m_Shutdown(false),
m_Submit(false)
{
WCHAR WindowsDirectory[MAX_PATH];
WCHAR Interactive[32];
/* Check if we are running under ReactOS from the SystemRoot directory */
if(!GetWindowsDirectoryW(WindowsDirectory, MAX_PATH))
FATAL("GetWindowsDirectoryW failed");
m_IsReactOS = !_wcsnicmp(&WindowsDirectory[3], L"reactos", 7);
if(GetEnvironmentVariableW(L"WINETEST_INTERACTIVE", Interactive, _countof(Interactive)))
m_IsInteractive = _wtoi(Interactive);
}
/**

View file

@ -9,6 +9,7 @@ class CConfiguration
{
private:
bool m_CrashRecovery;
bool m_IsInteractive;
bool m_IsReactOS;
bool m_PrintToConsole;
bool m_Shutdown;
@ -30,6 +31,7 @@ public:
bool DoPrint() const { return m_PrintToConsole; }
bool DoShutdown() const { return m_Shutdown; }
bool DoSubmit() const { return m_Submit; }
bool IsInteractive() const { return m_IsInteractive; }
bool IsReactOS() const { return m_IsReactOS; }
const string& GetComment() const { return m_Comment; }
const wstring& GetModule() const { return m_Module; }

View file

@ -248,9 +248,14 @@ CWineTest::GetNextTestInfo()
}
catch(CTestException& e)
{
delete[] m_ListBuffer;
stringstream ss;
ss << "An exception occurred trying to list tests for: " << UnicodeToAscii(m_CurrentFile) << endl;
StringOut(ss.str());
StringOut(e.GetMessage());
StringOut("\n");
m_CurrentFile.clear();
delete[] m_ListBuffer;
}
}
@ -327,6 +332,7 @@ CWineTest::Run()
auto_ptr<CTestList> TestList;
auto_ptr<CWebService> WebService;
CTestInfo* TestInfo;
DWORD ErrorMode;
/* The virtual test list is of course faster, so it should be preferred over
the journaled one.
@ -349,6 +355,10 @@ CWineTest::Run()
if(Configuration.DoSubmit())
WebService.reset(new CWebService());
/* Disable error dialogs if we're running in non-interactive mode */
if(!Configuration.IsInteractive())
ErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
/* Get information for each test to run */
while((TestInfo = TestList->GetNextTestInfo()) != 0)
{
@ -361,4 +371,8 @@ CWineTest::Run()
StringOut("\n\n");
}
/* Restore the original error mode */
if(!Configuration.IsInteractive())
SetErrorMode(ErrorMode);
}