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,16 +112,25 @@ TEST_CASE_METHOD(PersistenceTests, "wxPersistTLW", "[persist][tlw]")
frame->Show();
#ifdef __WXGTK__
wxStopWatch sw;
while ( !frame->IsIconized() )
// 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() )
{
wxYield();
if ( sw.Time() > 500 )
checkIconized = false;
}
else
{
wxStopWatch sw;
while ( !frame->IsIconized() )
{
// 500ms should be enough for the window to end up iconized.
WARN("Frame wasn't iconized as expected");
checkIconized = false;
break;
wxYield();
if ( sw.Time() > 500 )
{
// 500ms should be enough for the window to end up iconized.
WARN("Frame wasn't iconized as expected");
checkIconized = false;
break;
}
}
}
#endif // __WXGTK__

View File

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