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:
parent
8d409b0952
commit
41216bedd4
@ -42,7 +42,9 @@ private slots:
|
|||||||
void waitForFrameCallbackGl();
|
void waitForFrameCallbackGl();
|
||||||
void negotiateShmFormat();
|
void negotiateShmFormat();
|
||||||
|
|
||||||
|
// Subsurfaces
|
||||||
void createSubsurface();
|
void createSubsurface();
|
||||||
|
void createSubsurfaceForHiddenParent();
|
||||||
};
|
};
|
||||||
|
|
||||||
void tst_surface::createDestroySurface()
|
void tst_surface::createDestroySurface()
|
||||||
@ -172,5 +174,26 @@ void tst_surface::createSubsurface()
|
|||||||
QCOMPOSITOR_TRY_VERIFY(subSurface());
|
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)
|
QCOMPOSITOR_TEST_MAIN(tst_surface)
|
||||||
#include "tst_surface.moc"
|
#include "tst_surface.moc"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user