Add client test for subsurface with hidden parent

Task-number: QTBUG-79674
Change-Id: I451ee4423dee511f41070498a61167912920c086
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
This commit is contained in:
Johan Klokkhammer Helsing 2019-11-01 10:16:43 +01:00 committed by Johan Helsing
parent 8d409b0952
commit 41216bedd4

View File

@ -42,7 +42,9 @@ private slots:
void waitForFrameCallbackGl();
void negotiateShmFormat();
// Subsurfaces
void createSubsurface();
void createSubsurfaceForHiddenParent();
};
void tst_surface::createDestroySurface()
@ -172,5 +174,26 @@ void tst_surface::createSubsurface()
QCOMPOSITOR_TRY_VERIFY(subSurface());
}
// Used to cause a crash in libwayland (QTBUG-79674)
void tst_surface::createSubsurfaceForHiddenParent()
{
QRasterWindow window;
window.resize(64, 64);
window.show();
QCOMPOSITOR_TRY_VERIFY(xdgToplevel());
exec([=] { xdgToplevel()->sendCompleteConfigure(); });
QCOMPOSITOR_TRY_VERIFY(xdgSurface()->m_committedConfigureSerial);
window.hide();
QRasterWindow subWindow;
subWindow.setParent(&window);
subWindow.resize(64, 64);
subWindow.show();
// Make sure the client doesn't quit before it has a chance to crash
xdgPingAndWaitForPong();
}
QCOMPOSITOR_TEST_MAIN(tst_surface)
#include "tst_surface.moc"