Disable tests requiring a WM under Xvfb

Both iconization and activation of TLWs is dependent on the presence of
a WM, but there is no WM running under Xvfb, so skip these tests in this
case.
This commit is contained in:
Vadim Zeitlin
2019-07-17 16:07:06 +02:00
parent 8634808a6c
commit c92b39a13d
2 changed files with 22 additions and 9 deletions

View File

@@ -112,6 +112,14 @@ TEST_CASE_METHOD(PersistenceTests, "wxPersistTLW", "[persist][tlw]")
frame->Show(); frame->Show();
#ifdef __WXGTK__ #ifdef __WXGTK__
// When using Xvfb, the frame will never get iconized, presumably
// because there is no WM, so don't even bother waiting or warning.
if ( IsRunningUnderXVFB() )
{
checkIconized = false;
}
else
{
wxStopWatch sw; wxStopWatch sw;
while ( !frame->IsIconized() ) while ( !frame->IsIconized() )
{ {
@@ -124,6 +132,7 @@ TEST_CASE_METHOD(PersistenceTests, "wxPersistTLW", "[persist][tlw]")
break; break;
} }
} }
}
#endif // __WXGTK__ #endif // __WXGTK__
delete frame; delete frame;

View File

@@ -72,7 +72,11 @@ static void TopLevelWindowShowTest(wxTopLevelWindow* tlw)
tlw->Show(true); tlw->Show(true);
countActivate.WaitEvent(); countActivate.WaitEvent();
// TLWs never become active when running under Xvfb, presumably because
// there is no WM there.
if ( !IsRunningUnderXVFB() )
CHECK(tlw->IsActive()); CHECK(tlw->IsActive());
CHECK(tlw->IsShown()); CHECK(tlw->IsShown());
tlw->Hide(); tlw->Hide();