Fix testlib/tst_selftests::keyboard on Wayland
Wayland does not support WindowActivation capability, which will trigger a warning in qWaitForWindowActive(). Since the selftests depend on matching the exact output of the tests, it gets confused by this, even though the tests are passing. So we suppress the warning when the capability is not supported. Change-Id: I1e1f530a7b237183ee4ef123618e868b746ba863 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
bc1f61d010
commit
a6cdf41310
@ -28,6 +28,8 @@
|
||||
|
||||
#include <QtTest/qtest.h>
|
||||
#include <QtGui/qwindow.h>
|
||||
#include <QtGui/private/qguiapplication_p.h>
|
||||
#include <QtGui/qpa/qplatformintegration.h>
|
||||
|
||||
class tst_Keyboard : public QObject
|
||||
{
|
||||
@ -63,6 +65,15 @@ void tst_Keyboard::keyPressAndRelease()
|
||||
window.show();
|
||||
window.setGeometry(100, 100, 200, 200);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&window));
|
||||
|
||||
if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation)) {
|
||||
QTest::ignoreMessage(QtWarningMsg,
|
||||
"qWaitForWindowActive was called on a platform that doesn't support window "
|
||||
"activation. This means there is an error in the test and it should either "
|
||||
"check for the WindowActivation platform capability before calling "
|
||||
"qWaitForWindowActivate, use qWaitForWindowExposed instead, or skip the test. "
|
||||
"Falling back to qWaitForWindowExposed.");
|
||||
}
|
||||
QVERIFY(QTest::qWaitForWindowActive(&window));
|
||||
|
||||
QTest::keyPress(&window, Qt::Key_A);
|
||||
|
Loading…
Reference in New Issue
Block a user