Android: activate tst_QWidget
Fix some obvious issues, QSKIP or blacklist other problems. This does not fix all the test failures, but allows to enable most of the test cases, so that we could catch future regressions. Task-number: QTBUG-87668 Pick-to: 6.3 6.2 Change-Id: I1ed0b476d4ac55c658c572cfa1379fcdc6137ee8 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
parent
3c5b3a36af
commit
3033d89674
@ -16,10 +16,7 @@ add_subdirectory(qsizepolicy)
|
||||
if(NOT APPLE)
|
||||
add_subdirectory(qgesturerecognizer)
|
||||
endif()
|
||||
# QTBUG-87668 # special case
|
||||
if(NOT ANDROID)
|
||||
add_subdirectory(qwidget)
|
||||
endif()
|
||||
add_subdirectory(qwidget)
|
||||
if(QT_FEATURE_shortcut)
|
||||
add_subdirectory(qshortcut)
|
||||
endif()
|
||||
|
@ -35,10 +35,6 @@ ubuntu
|
||||
sles-15
|
||||
|
||||
# QTBUG-87668
|
||||
[reparent]
|
||||
android
|
||||
[windowState]
|
||||
android
|
||||
[showMinimizedKeepsFocus]
|
||||
android
|
||||
[normalGeometry]
|
||||
@ -47,19 +43,23 @@ android
|
||||
android
|
||||
[optimizedResizeMove]
|
||||
android
|
||||
[resizeEvent]
|
||||
android
|
||||
[update]
|
||||
android
|
||||
[scroll]
|
||||
android
|
||||
[setWindowGeometry]
|
||||
android
|
||||
[windowMoveResize]
|
||||
android
|
||||
[moveChild]
|
||||
android
|
||||
[showAndMoveChild]
|
||||
android
|
||||
[multipleToplevelFocusCheck]
|
||||
android
|
||||
[renderInvisible]
|
||||
android
|
||||
[updateWhileMinimized]
|
||||
android
|
||||
[doubleRepaint]
|
||||
android
|
||||
[setMaskInResizeEvent]
|
||||
android
|
||||
[activateWindow]
|
||||
android
|
||||
[optimizedResize_topLevel]
|
||||
android
|
||||
|
@ -2573,12 +2573,14 @@ void tst_QWidget::windowState()
|
||||
|
||||
QPoint pos;
|
||||
QSize size = m_testWidgetSize;
|
||||
if (QGuiApplicationPrivate::platformIntegration()->defaultWindowState(Qt::Widget)
|
||||
== Qt::WindowFullScreen) {
|
||||
const Qt::WindowState defaultWidgetState =
|
||||
QGuiApplicationPrivate::platformIntegration()->defaultWindowState(Qt::Widget);
|
||||
if (defaultWidgetState == Qt::WindowFullScreen)
|
||||
size = QGuiApplication::primaryScreen()->size();
|
||||
} else {
|
||||
else if (defaultWidgetState == Qt::WindowMaximized)
|
||||
size = QGuiApplication::primaryScreen()->availableSize();
|
||||
else
|
||||
pos = QPoint(10, 10);
|
||||
}
|
||||
|
||||
QWidget widget1;
|
||||
widget1.move(pos);
|
||||
@ -2882,7 +2884,7 @@ void tst_QWidget::resizeEvent()
|
||||
wParent.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
|
||||
wParent.resize(m_testWidgetSize);
|
||||
ResizeWidget wChild(&wParent);
|
||||
wParent.show();
|
||||
QTestPrivate::androidCompatibleShow(&wParent);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&wParent));
|
||||
QCOMPARE (wChild.m_resizeEventCount, 1); // initial resize event before paint
|
||||
wParent.hide();
|
||||
@ -2891,7 +2893,7 @@ void tst_QWidget::resizeEvent()
|
||||
safeSize.setWidth(639);
|
||||
wChild.resize(safeSize);
|
||||
QCOMPARE (wChild.m_resizeEventCount, 1);
|
||||
wParent.show();
|
||||
QTestPrivate::androidCompatibleShow(&wParent);
|
||||
QCOMPARE (wChild.m_resizeEventCount, 2);
|
||||
}
|
||||
|
||||
@ -2899,7 +2901,7 @@ void tst_QWidget::resizeEvent()
|
||||
ResizeWidget wTopLevel;
|
||||
wTopLevel.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
|
||||
wTopLevel.resize(m_testWidgetSize);
|
||||
wTopLevel.show();
|
||||
QTestPrivate::androidCompatibleShow(&wTopLevel);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&wTopLevel));
|
||||
QCOMPARE (wTopLevel.m_resizeEventCount, 1); // initial resize event before paint for toplevels
|
||||
wTopLevel.hide();
|
||||
@ -2908,7 +2910,7 @@ void tst_QWidget::resizeEvent()
|
||||
safeSize.setWidth(639);
|
||||
wTopLevel.resize(safeSize);
|
||||
QCOMPARE (wTopLevel.m_resizeEventCount, 1);
|
||||
wTopLevel.show();
|
||||
QTestPrivate::androidCompatibleShow(&wTopLevel);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&wTopLevel));
|
||||
QCOMPARE (wTopLevel.m_resizeEventCount, 2);
|
||||
}
|
||||
@ -3123,8 +3125,8 @@ void tst_QWidget::reparent()
|
||||
pal2.setColor(childTLW.backgroundRole(), Qt::yellow);
|
||||
childTLW.setPalette(pal2);
|
||||
|
||||
parent.show();
|
||||
childTLW.show();
|
||||
QTestPrivate::androidCompatibleShow(&parent);
|
||||
QTestPrivate::androidCompatibleShow(&childTLW);
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&parent));
|
||||
|
||||
parent.move(parentPosition);
|
||||
@ -3134,7 +3136,7 @@ void tst_QWidget::reparent()
|
||||
|
||||
child.setParent(nullptr, child.windowFlags() & ~Qt::WindowType_Mask);
|
||||
child.setGeometry(childPos.x(), childPos.y(), child.width(), child.height());
|
||||
child.show();
|
||||
QTestPrivate::androidCompatibleShow(&child);
|
||||
|
||||
#if 0 // QTBUG-26424
|
||||
if (m_platform == QStringLiteral("xcb"))
|
||||
@ -5595,7 +5597,7 @@ void tst_QWidget::setWindowGeometry()
|
||||
QTRY_COMPARE(widget.geometry(), rect);
|
||||
|
||||
// show() again, geometry() should still be the same
|
||||
widget.show();
|
||||
QTestPrivate::androidCompatibleShow(&widget);
|
||||
if (rect.isValid())
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||
QTRY_COMPARE(widget.geometry(), rect);
|
||||
@ -5646,7 +5648,7 @@ void tst_QWidget::setWindowGeometry()
|
||||
QTRY_COMPARE(widget.geometry(), rect);
|
||||
|
||||
// show() again, geometry() should still be the same
|
||||
widget.show();
|
||||
QTestPrivate::androidCompatibleShow(&widget);
|
||||
if (rect.isValid())
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||
QTest::qWait(10);
|
||||
@ -5794,7 +5796,7 @@ void tst_QWidget::windowMoveResize()
|
||||
QTRY_COMPARE(widget.size(), rect.size());
|
||||
|
||||
// show() again, pos() should be the same
|
||||
widget.show();
|
||||
QTestPrivate::androidCompatibleShow(&widget);
|
||||
if (rect.isValid())
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||
QApplication::processEvents();
|
||||
@ -5865,7 +5867,7 @@ void tst_QWidget::windowMoveResize()
|
||||
QTRY_COMPARE(widget.size(), rect.size());
|
||||
|
||||
// show() again, pos() should be the same
|
||||
widget.show();
|
||||
QTestPrivate::androidCompatibleShow(&widget);
|
||||
if (rect.isValid())
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&widget));
|
||||
QTest::qWait(10);
|
||||
@ -7087,7 +7089,9 @@ void tst_QWidget::childEvents()
|
||||
<< qMakePair(&widget, QEvent::Move)
|
||||
<< qMakePair(&widget, QEvent::Resize)
|
||||
<< qMakePair(&widget, QEvent::Show)
|
||||
#ifndef Q_OS_ANDROID
|
||||
<< qMakePair(&widget, QEvent::CursorChange)
|
||||
#endif
|
||||
<< qMakePair(&widget, QEvent::ShowToParent);
|
||||
|
||||
QVERIFY2(spy.eventList() == expected,
|
||||
@ -7176,7 +7180,9 @@ void tst_QWidget::childEvents()
|
||||
<< qMakePair(&widget, QEvent::Move)
|
||||
<< qMakePair(&widget, QEvent::Resize)
|
||||
<< qMakePair(&widget, QEvent::Show)
|
||||
#ifndef Q_OS_ANDROID
|
||||
<< qMakePair(&widget, QEvent::CursorChange)
|
||||
#endif
|
||||
<< qMakePair(&widget, QEvent::ShowToParent);
|
||||
|
||||
QVERIFY2(spy.eventList() == expected,
|
||||
@ -7268,7 +7274,9 @@ void tst_QWidget::childEvents()
|
||||
<< qMakePair(&widget, QEvent::Move)
|
||||
<< qMakePair(&widget, QEvent::Resize)
|
||||
<< qMakePair(&widget, QEvent::Show)
|
||||
#ifndef Q_OS_ANDROID
|
||||
<< qMakePair(&widget, QEvent::CursorChange)
|
||||
#endif
|
||||
<< qMakePair(&widget, QEvent::ShowToParent);
|
||||
|
||||
QVERIFY2(spy.eventList() == expected,
|
||||
@ -7376,7 +7384,11 @@ void tst_QWidget::renderChildFillsBackground()
|
||||
QCoreApplication::processEvents();
|
||||
const QPixmap childPixmap = child.grab(QRect(QPoint(0, 0), QSize(-1, -1)));
|
||||
const QPixmap windowPixmap = window.grab(QRect(QPoint(0, 0), QSize(-1, -1)));
|
||||
#ifndef Q_OS_ANDROID
|
||||
// On Android all widgets are shown maximized, so the pixmaps
|
||||
// will be similar
|
||||
QEXPECT_FAIL("", "This test fails on all platforms", Continue);
|
||||
#endif
|
||||
QCOMPARE(childPixmap, windowPixmap);
|
||||
}
|
||||
|
||||
@ -9068,11 +9080,11 @@ void tst_QWidget::dumpObjectTree()
|
||||
w.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
|
||||
Q_SET_OBJECT_NAME(w);
|
||||
w.move(100, 100);
|
||||
w.resize(500, 500);
|
||||
w.resize(200, 200);
|
||||
|
||||
QLineEdit le(&w);
|
||||
Q_SET_OBJECT_NAME(le);
|
||||
le.resize(500, 500);
|
||||
le.resize(200, 200);
|
||||
|
||||
{
|
||||
const char * const expected[] = {
|
||||
@ -9085,14 +9097,14 @@ void tst_QWidget::dumpObjectTree()
|
||||
w.dumpObjectTree();
|
||||
}
|
||||
|
||||
w.show();
|
||||
QTestPrivate::androidCompatibleShow(&w);
|
||||
QApplication::setActiveWindow(&w);
|
||||
QVERIFY(QTest::qWaitForWindowActive(&w));
|
||||
|
||||
{
|
||||
const char * const expected[] = {
|
||||
"QWidget::w <500x500+100+100>",
|
||||
" QLineEdit::le F<500x500+0+0>",
|
||||
"QWidget::w <200x200+100+100>",
|
||||
" QLineEdit::le F<200x200+0+0>",
|
||||
" QWidgetLineControl:: ",
|
||||
};
|
||||
for (const char *line : expected)
|
||||
@ -9606,6 +9618,10 @@ void tst_QWidget::translucentWidget()
|
||||
const QImage actual = widgetSnapshot.toImage().convertToFormat(QImage::Format_RGB32);
|
||||
QImage expected = pm.toImage().scaled(label.devicePixelRatio() * pm.size());
|
||||
expected.setDevicePixelRatio(label.devicePixelRatio());
|
||||
#ifdef Q_OS_ANDROID
|
||||
// Android uses Format_ARGB32_Premultiplied by default
|
||||
expected = expected.convertToFormat(QImage::Format_RGB32);
|
||||
#endif
|
||||
QCOMPARE(actual.size(),expected.size());
|
||||
QCOMPARE(actual,expected);
|
||||
|
||||
@ -10711,6 +10727,9 @@ void tst_QWidget::activateWindow()
|
||||
|
||||
void tst_QWidget::openModal_taskQTBUG_5804()
|
||||
{
|
||||
#ifdef Q_OS_ANDROID
|
||||
QSKIP("This test hangs on Android");
|
||||
#endif
|
||||
class Widget : public QWidget
|
||||
{
|
||||
public:
|
||||
@ -12539,6 +12558,9 @@ protected:
|
||||
|
||||
void tst_QWidget::deleteWindowInCloseEvent()
|
||||
{
|
||||
#ifdef Q_OS_ANDROID
|
||||
QSKIP("This test crashes on Android");
|
||||
#endif
|
||||
QSignalSpy quitSpy(qApp, &QGuiApplication::lastWindowClosed);
|
||||
|
||||
// Closing this widget should not cause a crash
|
||||
|
Loading…
Reference in New Issue
Block a user