diff options
Diffstat (limited to 'tests/auto/gui')
28 files changed, 330 insertions, 86 deletions
diff --git a/tests/auto/gui/image/qicon/fallback_icons/red.png b/tests/auto/gui/image/qicon/fallback_icons/red.png Binary files differnew file mode 100644 index 0000000000..4a843e744f --- /dev/null +++ b/tests/auto/gui/image/qicon/fallback_icons/red.png diff --git a/tests/auto/gui/image/qicon/qicon.pro b/tests/auto/gui/image/qicon/qicon.pro index b3c60bf32b..c96f0555ad 100644 --- a/tests/auto/gui/image/qicon/qicon.pro +++ b/tests/auto/gui/image/qicon/qicon.pro @@ -6,4 +6,4 @@ qtHaveModule(widgets): QT += widgets SOURCES += tst_qicon.cpp RESOURCES = tst_qicon.qrc tst_qicon.cpp -TESTDATA += icons/* second_icons/* *.png *.svg *.svgz +TESTDATA += icons/* second_icons/* fallback_icons/* *.png *.svg *.svgz diff --git a/tests/auto/gui/image/qicon/tst_qicon.cpp b/tests/auto/gui/image/qicon/tst_qicon.cpp index bf8f7ade9e..b1a4e4312f 100644 --- a/tests/auto/gui/image/qicon/tst_qicon.cpp +++ b/tests/auto/gui/image/qicon/tst_qicon.cpp @@ -554,6 +554,11 @@ void tst_QIcon::fromTheme() QCOMPARE(firstSearchPath, QIcon::themeSearchPaths()[0]); QCOMPARE(secondSearchPath, QIcon::themeSearchPaths()[1]); + QString fallbackSearchPath = QStringLiteral(":/fallback_icons"); + QIcon::setFallbackSearchPaths(QStringList() << fallbackSearchPath); + QCOMPARE(QIcon::fallbackSearchPaths().size(), 1); + QCOMPARE(fallbackSearchPath, QIcon::fallbackSearchPaths().at(0)); + QString themeName("testtheme"); QIcon::setThemeName(themeName); QCOMPARE(QIcon::themeName(), themeName); @@ -580,6 +585,12 @@ void tst_QIcon::fromTheme() QVERIFY(QIcon::hasThemeIcon("address-book-new")); QVERIFY(!abIcon.availableSizes().isEmpty()); + // Test icon from fallback path + QIcon fallbackIcon = QIcon::fromTheme("red"); + QVERIFY(!fallbackIcon.isNull()); + QVERIFY(QIcon::hasThemeIcon("red")); + QCOMPARE(fallbackIcon.availableSizes().size(), 1); + // Test non existing icon QIcon noIcon = QIcon::fromTheme("broken-icon"); QVERIFY(noIcon.isNull()); diff --git a/tests/auto/gui/image/qicon/tst_qicon.qrc b/tests/auto/gui/image/qicon/tst_qicon.qrc index 3c8fbba7c2..4b347ec88c 100644 --- a/tests/auto/gui/image/qicon/tst_qicon.qrc +++ b/tests/auto/gui/image/qicon/tst_qicon.qrc @@ -6,6 +6,7 @@ <file>./icons/testtheme/16x16/actions/appointment-new.png</file> <file>./icons/testtheme/22x22/actions/appointment-new.png</file> <file>./second_icons/testtheme/32x32/actions/appointment-new.png</file> +<file>./fallback_icons/red.png</file> <file>./icons/testtheme/index.theme</file> <file>./icons/testtheme/scalable/actions/svg-only.svg</file> <file>./icons/themeparent/16x16/actions/address-book-new.png</file> diff --git a/tests/auto/gui/itemmodels/qstandarditemmodel/qstandarditemmodel.pro b/tests/auto/gui/itemmodels/qstandarditemmodel/qstandarditemmodel.pro index 3c12a83f5a..147ca62528 100644 --- a/tests/auto/gui/itemmodels/qstandarditemmodel/qstandarditemmodel.pro +++ b/tests/auto/gui/itemmodels/qstandarditemmodel/qstandarditemmodel.pro @@ -4,10 +4,4 @@ TARGET = tst_qstandarditemmodel QT += widgets widgets-private testlib QT += core-private gui-private -mtdir = ../../../other/modeltest - -INCLUDEPATH += $${mtdir} - -SOURCES += $${mtdir}/modeltest.cpp tst_qstandarditemmodel.cpp -HEADERS += $${mtdir}/modeltest.h - +SOURCES += tst_qstandarditemmodel.cpp diff --git a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp index 2f5537adfe..d393ac70da 100644 --- a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp +++ b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp @@ -32,7 +32,6 @@ #include <qstandarditemmodel.h> #include <QTreeView> #include <private/qtreeview_p.h> -#include "modeltest.h" class tst_QStandardItemModel : public QObject { @@ -130,12 +129,15 @@ private slots: void getMimeDataWithInvalidModelIndex(); void supportedDragDropActions(); + void taskQTBUG_45114_setItemData(); + private: QAbstractItemModel *m_model; QPersistentModelIndex persistent; QVector<QModelIndex> rcParent; QVector<int> rcFirst; QVector<int> rcLast; + QVector<int> currentRoles; //return true if models have the same structure, and all child have the same text bool compareModels(QStandardItemModel *model1, QStandardItemModel *model2); @@ -185,6 +187,12 @@ void tst_QStandardItemModel::init() connect(m_model, SIGNAL(columnsRemoved(QModelIndex,int,int)), this, SLOT(columnsRemoved(QModelIndex,int,int))); + connect(m_model, &QAbstractItemModel::dataChanged, + this, [this](const QModelIndex &, const QModelIndex &, const QVector<int> &roles) + { + currentRoles = roles; + }); + rcFirst.fill(-1); rcLast.fill(-1); } @@ -711,15 +719,20 @@ void tst_QStandardItemModel::checkChildren() void tst_QStandardItemModel::data() { + currentRoles.clear(); // bad args m_model->setData(QModelIndex(), "bla", Qt::DisplayRole); + QCOMPARE(currentRoles, {}); QIcon icon; for (int r=0; r < m_model->rowCount(); ++r) { for (int c=0; c < m_model->columnCount(); ++c) { m_model->setData(m_model->index(r,c), "initialitem", Qt::DisplayRole); + QCOMPARE(currentRoles, QVector<int>({Qt::DisplayRole, Qt::EditRole})); m_model->setData(m_model->index(r,c), "tooltip", Qt::ToolTipRole); + QCOMPARE(currentRoles, {Qt::ToolTipRole}); m_model->setData(m_model->index(r,c), icon, Qt::DecorationRole); + QCOMPARE(currentRoles, {Qt::DecorationRole}); } } @@ -740,7 +753,7 @@ void tst_QStandardItemModel::clear() QSignalSpy layoutChangedSpy(&model, SIGNAL(layoutChanged())); QSignalSpy rowsRemovedSpy(&model, SIGNAL(rowsRemoved(QModelIndex,int,int))); - ModelTest mt(&model); + QAbstractItemModelTester mt(&model); model.clear(); @@ -1701,5 +1714,65 @@ void tst_QStandardItemModel::supportedDragDropActions() QCOMPARE(model.supportedDropActions(), Qt::CopyAction | Qt::MoveAction); } +void tst_QStandardItemModel::taskQTBUG_45114_setItemData() +{ + QStandardItemModel model; + QSignalSpy spy(&model, &QStandardItemModel::itemChanged); + + QStandardItem *item = new QStandardItem("item"); + item->setData(1, Qt::UserRole + 1); + item->setData(2, Qt::UserRole + 2); + model.appendRow(item); + + QModelIndex index = item->index(); + QCOMPARE(model.itemData(index).size(), 3); + + QCOMPARE(spy.count(), 0); + + QMap<int, QVariant> roles; + + roles.insert(Qt::UserRole + 1, 1); + roles.insert(Qt::UserRole + 2, 2); + model.setItemData(index, roles); + + QCOMPARE(spy.count(), 0); + + roles.insert(Qt::UserRole + 1, 1); + roles.insert(Qt::UserRole + 2, 2); + roles.insert(Qt::UserRole + 3, QVariant()); + model.setItemData(index, roles); + + QCOMPARE(spy.count(), 0); + + roles.clear(); + roles.insert(Qt::UserRole + 1, 10); + roles.insert(Qt::UserRole + 3, 12); + model.setItemData(index, roles); + + QCOMPARE(spy.count(), 1); + QMap<int, QVariant> itemRoles = model.itemData(index); + + QCOMPARE(itemRoles.size(), 4); + QCOMPARE(itemRoles[Qt::UserRole + 1].toInt(), 10); + QCOMPARE(itemRoles[Qt::UserRole + 2].toInt(), 2); + QCOMPARE(itemRoles[Qt::UserRole + 3].toInt(), 12); + + roles.clear(); + roles.insert(Qt::UserRole + 3, 1); + model.setItemData(index, roles); + + QCOMPARE(spy.count(), 2); + + roles.clear(); + roles.insert(Qt::UserRole + 3, QVariant()); + model.setItemData(index, roles); + + QCOMPARE(spy.count(), 3); + + itemRoles = model.itemData(index); + QCOMPARE(itemRoles.size(), 3); + QVERIFY(!itemRoles.keys().contains(Qt::UserRole + 3)); +} + QTEST_MAIN(tst_QStandardItemModel) #include "tst_qstandarditemmodel.moc" diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp index 6ba488aaa7..4f27aeb899 100644 --- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp +++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp @@ -68,6 +68,7 @@ private slots: void changeFocusWindow(); void keyboardModifiers(); void palette(); + void font(); void modalWindow(); void quitOnLastWindowClosed(); void quitOnLastWindowClosedMulti(); @@ -524,6 +525,31 @@ void tst_QGuiApplication::palette() QCOMPARE(signalSpy.count(), 2); } +void tst_QGuiApplication::font() +{ + int argc = 1; + char *argv[] = { const_cast<char*>("tst_qguiapplication") }; + QGuiApplication app(argc, argv); + QSignalSpy signalSpy(&app, SIGNAL(fontChanged(QFont))); + + QFont oldFont = QGuiApplication::font(); + QFont newFont = QFont("BogusFont", 33); + + QGuiApplication::setFont(newFont); + QCOMPARE(QGuiApplication::font(), newFont); + QCOMPARE(signalSpy.count(), 1); + QCOMPARE(signalSpy.at(0).at(0), QVariant(newFont)); + + QGuiApplication::setFont(oldFont); + QCOMPARE(QGuiApplication::font(), oldFont); + QCOMPARE(signalSpy.count(), 2); + QCOMPARE(signalSpy.at(1).at(0), QVariant(oldFont)); + + QGuiApplication::setFont(oldFont); + QCOMPARE(QGuiApplication::font(), oldFont); + QCOMPARE(signalSpy.count(), 2); +} + class BlockableWindow : public QWindow { Q_OBJECT diff --git a/tests/auto/gui/kernel/qopenglwindow/tst_qopenglwindow.cpp b/tests/auto/gui/kernel/qopenglwindow/tst_qopenglwindow.cpp index d882dc3888..8ffd1bb9b4 100644 --- a/tests/auto/gui/kernel/qopenglwindow/tst_qopenglwindow.cpp +++ b/tests/auto/gui/kernel/qopenglwindow/tst_qopenglwindow.cpp @@ -74,17 +74,17 @@ public: initCount = resizeCount = paintCount = 0; } - void initializeGL() Q_DECL_OVERRIDE { + void initializeGL() override { ++initCount; } - void resizeGL(int w, int h) Q_DECL_OVERRIDE { + void resizeGL(int w, int h) override { ++resizeCount; QCOMPARE(w, size().width()); QCOMPARE(h, size().height()); } - void paintGL() Q_DECL_OVERRIDE { + void paintGL() override { ++paintCount; QOpenGLContext *ctx = QOpenGLContext::currentContext(); @@ -144,7 +144,7 @@ void tst_QOpenGLWindow::basic() class PainterWindow : public QOpenGLWindow { public: - void paintGL() Q_DECL_OVERRIDE { + void paintGL() override { QOpenGLContext *ctx = QOpenGLContext::currentContext(); QVERIFY(ctx); QCOMPARE(ctx, context()); @@ -183,7 +183,7 @@ public: PartialPainterWindow(QOpenGLWindow::UpdateBehavior u) : QOpenGLWindow(u), x(0) { } - void paintGL() Q_DECL_OVERRIDE { + void paintGL() override { ++paintCount; QPainter p(this); @@ -244,7 +244,7 @@ public: Error } m_state; - void paintUnderGL() Q_DECL_OVERRIDE { + void paintUnderGL() override { if (m_state == None || m_state == PaintOver) m_state = PaintUnder; else @@ -252,10 +252,10 @@ public: GLuint fbo = 0xFFFF; QOpenGLContext::currentContext()->functions()->glGetIntegerv(GL_FRAMEBUFFER_BINDING, (GLint *) &fbo); - QCOMPARE(fbo, GLuint(0)); + QCOMPARE(fbo, QOpenGLContext::currentContext()->defaultFramebufferObject()); } - void paintGL() Q_DECL_OVERRIDE { + void paintGL() override { if (m_state == PaintUnder) m_state = Paint; else @@ -264,11 +264,11 @@ public: // Using PartialUpdateBlend so paintGL() targets a user fbo, not the default. GLuint fbo = 0xFFFF; QOpenGLContext::currentContext()->functions()->glGetIntegerv(GL_FRAMEBUFFER_BINDING, (GLint *) &fbo); - QVERIFY(fbo != 0); + QVERIFY(fbo != QOpenGLContext::currentContext()->defaultFramebufferObject()); QCOMPARE(fbo, defaultFramebufferObject()); } - void paintOverGL() Q_DECL_OVERRIDE { + void paintOverGL() override { if (m_state == Paint) m_state = PaintOver; else @@ -276,7 +276,7 @@ public: GLuint fbo = 0xFFFF; QOpenGLContext::currentContext()->functions()->glGetIntegerv(GL_FRAMEBUFFER_BINDING, (GLint *) &fbo); - QCOMPARE(fbo, GLuint(0)); + QCOMPARE(fbo, QOpenGLContext::currentContext()->defaultFramebufferObject()); } }; diff --git a/tests/auto/gui/kernel/qrasterwindow/tst_qrasterwindow.cpp b/tests/auto/gui/kernel/qrasterwindow/tst_qrasterwindow.cpp index 3421622fe3..ffc440ac2d 100644 --- a/tests/auto/gui/kernel/qrasterwindow/tst_qrasterwindow.cpp +++ b/tests/auto/gui/kernel/qrasterwindow/tst_qrasterwindow.cpp @@ -54,7 +54,7 @@ class PainterWindow : public QRasterWindow public: void reset() { paintCount = 0; } - void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE { + void paintEvent(QPaintEvent*) override { ++paintCount; QPainter p(this); p.fillRect(QRect(0, 0, 100, 100), Qt::blue); diff --git a/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp b/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp index ec143896ab..706c66ef14 100644 --- a/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp +++ b/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp @@ -48,7 +48,7 @@ public: ulong timestamp; QTouchDevice *deviceFromEvent; - explicit tst_QTouchEventWidget(QWidget *parent = Q_NULLPTR) : QWidget(parent) + explicit tst_QTouchEventWidget(QWidget *parent = nullptr) : QWidget(parent) { reset(); } @@ -63,7 +63,7 @@ public: deleteInTouchBegin = deleteInTouchUpdate = deleteInTouchEnd = false; } - bool event(QEvent *event) Q_DECL_OVERRIDE + bool event(QEvent *event) override { switch (event->type()) { case QEvent::TouchBegin: @@ -117,7 +117,7 @@ public: bool deleteInTouchBegin, deleteInTouchUpdate, deleteInTouchEnd; tst_QTouchEventGraphicsItem **weakpointer; - explicit tst_QTouchEventGraphicsItem(QGraphicsItem *parent = Q_NULLPTR) + explicit tst_QTouchEventGraphicsItem(QGraphicsItem *parent = nullptr) : QGraphicsItem(parent), weakpointer(0) { reset(); @@ -140,13 +140,13 @@ public: deleteInTouchBegin = deleteInTouchUpdate = deleteInTouchEnd = false; } - QRectF boundingRect() const Q_DECL_OVERRIDE { return QRectF(0, 0, 10, 10); } - void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) Q_DECL_OVERRIDE + QRectF boundingRect() const override { return QRectF(0, 0, 10, 10); } + void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) override { painter->fillRect(QRectF(QPointF(0, 0), boundingRect().size()), Qt::yellow); } - bool sceneEvent(QEvent *event) Q_DECL_OVERRIDE + bool sceneEvent(QEvent *event) override { switch (event->type()) { case QEvent::TouchBegin: @@ -1628,7 +1628,7 @@ class WindowTouchEventFilter : public QObject { Q_OBJECT public: - bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *obj, QEvent *event) override; struct TouchInfo { QList<QTouchEvent::TouchPoint> points; QEvent::Type lastSeenType; diff --git a/tests/auto/gui/kernel/qwindow/BLACKLIST b/tests/auto/gui/kernel/qwindow/BLACKLIST index 9108cf2c1f..05cf1b5a30 100644 --- a/tests/auto/gui/kernel/qwindow/BLACKLIST +++ b/tests/auto/gui/kernel/qwindow/BLACKLIST @@ -1,19 +1,14 @@ [positioning:default] -ubuntu-14.04 -ubuntu-16.04 +linux osx-10.12 ci [positioning:fake] osx-10.12 ci [modalWindowPosition] -ubuntu-14.04 ubuntu-16.04 [modalWithChildWindow] -ubuntu-14.04 ubuntu-16.04 [setVisible] -ubuntu-14.04 [modalWindowEnterEventOnHide_QTBUG35109] -ubuntu-14.04 ubuntu-16.04 osx ci [modalDialogClosingOneOfTwoModal] diff --git a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp index f1c4f970cd..18723458f6 100644 --- a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp +++ b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp @@ -106,6 +106,7 @@ private slots: void flags(); void cleanup(); void testBlockingWindowShownAfterModalDialog(); + void generatedMouseMove(); private: QPoint m_availableTopLeft; @@ -352,7 +353,7 @@ private: class ColoredWindow : public QRasterWindow { public: explicit ColoredWindow(const QColor &color, QWindow *parent = 0) : QRasterWindow(parent), m_color(color) {} - void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE + void paintEvent(QPaintEvent *) override { QPainter p(this); p.fillRect(QRect(QPoint(0, 0), size()), m_color); @@ -702,7 +703,7 @@ class PlatformWindowFilter : public QObject public: PlatformWindowFilter(QObject *parent = 0) : QObject(parent) - , m_window(Q_NULLPTR) + , m_window(nullptr) , m_alwaysExisted(true) {} @@ -714,7 +715,7 @@ public: // If they are, the native platform surface should always exist when we // receive a QPlatformSurfaceEvent if (e->type() == QEvent::PlatformSurface && o == m_window) { - m_alwaysExisted &= (m_window->handle() != Q_NULLPTR); + m_alwaysExisted &= (m_window->handle() != nullptr); } return false; } @@ -741,7 +742,7 @@ void tst_QWindow::platformSurface() QTRY_COMPARE(window.received(QEvent::PlatformSurface), 1); QTRY_COMPARE(window.surfaceEventType(), QPlatformSurfaceEvent::SurfaceCreated); - QTRY_VERIFY(window.handle() != Q_NULLPTR); + QTRY_VERIFY(window.handle() != nullptr); window.destroy(); QTRY_COMPARE(window.received(QEvent::PlatformSurface), 2); @@ -918,6 +919,7 @@ public: } } void mouseMoveEvent(QMouseEvent *event) { + buttonStateInGeneratedMove = event->buttons(); if (ignoreMouse) { event->ignore(); } else { @@ -999,6 +1001,7 @@ public: bool ignoreMouse, ignoreTouch; bool spinLoopWhenPressed; + Qt::MouseButtons buttonStateInGeneratedMove; }; void tst_QWindow::testInputEvents() @@ -2313,6 +2316,56 @@ void tst_QWindow::testBlockingWindowShownAfterModalDialog() QVERIFY(normalWindowAfter.gotBlocked); } +void tst_QWindow::generatedMouseMove() +{ + InputTestWindow w; + w.setGeometry(QRect(m_availableTopLeft + QPoint(100, 100), m_testWindowSize)); + w.show(); + QVERIFY(QTest::qWaitForWindowActive(&w)); + QPoint point(10, 10); + QPoint step(2, 2); + + QVERIFY(w.mouseMovedCount == 0); + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::NoButton, Qt::NoButton, QEvent::MouseMove); + QCoreApplication::processEvents(); + QVERIFY(w.mouseMovedCount == 1); + // Press that does not change position should not generate mouse move + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::LeftButton, Qt::LeftButton, QEvent::MouseButtonPress); + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::LeftButton | Qt::RightButton, Qt::RightButton, QEvent::MouseButtonPress); + QCoreApplication::processEvents(); + QVERIFY(w.mouseMovedCount == 1); + + // Test moves generated for mouse release + point += step; + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::RightButton, Qt::LeftButton, QEvent::MouseButtonRelease); + QCoreApplication::processEvents(); + QVERIFY(w.mouseMovedCount == 2); + QVERIFY(w.buttonStateInGeneratedMove == (Qt::LeftButton | Qt::RightButton)); + point += step; + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::NoButton, Qt::RightButton, QEvent::MouseButtonRelease); + QCoreApplication::processEvents(); + QVERIFY(w.mouseMovedCount == 3); + QVERIFY(w.buttonStateInGeneratedMove == Qt::RightButton); + + // Test moves generated for mouse press + point += step; + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::LeftButton, Qt::LeftButton, QEvent::MouseButtonPress); + QCoreApplication::processEvents(); + QVERIFY(w.mouseMovedCount == 4); + QVERIFY(w.buttonStateInGeneratedMove == Qt::NoButton); + point += step; + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::LeftButton | Qt::RightButton, Qt::RightButton, QEvent::MouseButtonPress); + QCoreApplication::processEvents(); + QVERIFY(w.mouseMovedCount == 5); + QVERIFY(w.buttonStateInGeneratedMove == Qt::LeftButton); + + // Release that does not change position should not generate mouse move + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::LeftButton, Qt::RightButton, QEvent::MouseButtonRelease); + QWindowSystemInterface::handleMouseEvent(&w, point, point, Qt::NoButton, Qt::LeftButton, QEvent::MouseButtonRelease); + QCoreApplication::processEvents(); + QVERIFY(w.mouseMovedCount == 5); +} + #include <tst_qwindow.moc> QTEST_MAIN(tst_QWindow) diff --git a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp index 6809aea086..67d30d7c9a 100644 --- a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp +++ b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp @@ -1423,9 +1423,6 @@ void tst_QColor::achromaticHslHue() #if 0 // Used to be included in Qt4 for Q_WS_X11 void tst_QColor::setallowX11ColorNames() { -#if defined(Q_OS_IRIX) - QSKIP("This fails due to the gamma settings in the SGI X server"); -#endif RGBData x11RgbTbl[] = { // a few standard X11 color names { "DodgerBlue1", qRgb(30, 144, 255) }, diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp index b8243a2b54..8dfaa6f5cd 100644 --- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp +++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp @@ -2827,7 +2827,7 @@ void tst_QPainter::monoImages() } } -#if !defined(Q_OS_IRIX) && !defined(Q_OS_AIX) && !defined(Q_CC_MSVC) && !defined(Q_OS_SOLARIS) && !defined(__UCLIBC__) +#if !defined(Q_OS_AIX) && !defined(Q_CC_MSVC) && !defined(Q_OS_SOLARIS) && !defined(__UCLIBC__) #include <fenv.h> static const QString fpeExceptionString(int exception) @@ -4498,7 +4498,7 @@ void tst_QPainter::drawText_subPixelPositionsInRaster_qtbug5053() { QFontMetricsF fm(qApp->font()); - QImage baseLine(fm.width(QChar::fromLatin1('e')), fm.height(), QImage::Format_RGB32); + QImage baseLine(fm.horizontalAdvance(QChar::fromLatin1('e')), fm.height(), QImage::Format_RGB32); baseLine.fill(Qt::white); { QPainter p(&baseLine); diff --git a/tests/auto/gui/painting/qregion/tst_qregion.cpp b/tests/auto/gui/painting/qregion/tst_qregion.cpp index b20ad0f33c..5256fbd1dc 100644 --- a/tests/auto/gui/painting/qregion/tst_qregion.cpp +++ b/tests/auto/gui/painting/qregion/tst_qregion.cpp @@ -158,15 +158,19 @@ void tst_QRegion::rects() QRegion region(rect); QVERIFY(region.isEmpty()); QCOMPARE(region.begin(), region.end()); +#if QT_DEPRECATED_SINCE(5, 11) QVERIFY(region.rects().isEmpty()); +#endif } { QRect rect(10, -20, 30, 40); QRegion region(rect); QCOMPARE(region.end(), region.begin() + 1); QCOMPARE(*region.begin(), rect); +#if QT_DEPRECATED_SINCE(5, 11) QCOMPARE(region.rects().count(), 1); QCOMPARE(region.rects()[0], rect); +#endif } { QRect r(QPoint(10, 10), QPoint(40, 40)); @@ -193,8 +197,8 @@ void tst_QRegion::swap() QRegion r1(QRect(0, 0,10,10)); QRegion r2(QRect(10,10,10,10)); r1.swap(r2); - QCOMPARE(r1.rects().front(), QRect(10,10,10,10)); - QCOMPARE(r2.rects().front(), QRect(0, 0,10,10)); + QCOMPARE(*r1.begin(), QRect(10,10,10,10)); + QCOMPARE(*r2.begin(), QRect(0, 0,10,10)); } void tst_QRegion::setRects() @@ -202,7 +206,8 @@ void tst_QRegion::setRects() { QRegion region; region.setRects(0, 0); - QVERIFY(region.rects().isEmpty()); + QVERIFY(region.isEmpty()); + QCOMPARE(region.begin(), region.end()); } { QRegion region; @@ -212,7 +217,9 @@ void tst_QRegion::setRects() QCOMPARE(region, QRegion()); QCOMPARE(region.begin(), region.end()); QVERIFY(!region.boundingRect().isValid()); +#if QT_DEPRECATED_SINCE(5, 11) QVERIFY(region.rects().isEmpty()); +#endif } { QRegion region; @@ -220,15 +227,19 @@ void tst_QRegion::setRects() region.setRects(&rect, 1); QCOMPARE(region.begin(), region.end()); QVERIFY(!region.boundingRect().isValid()); +#if QT_DEPRECATED_SINCE(5, 11) QVERIFY(region.rects().isEmpty()); +#endif } { QRegion region; QRect rect(10, -20, 30, 40); region.setRects(&rect, 1); QCOMPARE(region.end(), region.begin() + 1); +#if QT_DEPRECATED_SINCE(5, 11) QCOMPARE(region.rects().count(), 1); QCOMPARE(region.rects()[0], rect); +#endif QCOMPARE(*region.begin(), rect); } } @@ -345,9 +356,11 @@ void tst_QRegion::emptyPolygonRegion() QTEST(int(std::distance(r.begin(), r.end())), "numRects"); QVector<QRect> rects; std::copy(r.begin(), r.end(), std::back_inserter(rects)); - QTEST(r.rects().count(), "numRects"); - QTEST(r.rects(), "rects"); + QTEST(rects.size(), "numRects"); + QTEST(rects, "rects"); +#if QT_DEPRECATED_SINCE(5, 11) QCOMPARE(r.rects(), rects); +#endif } @@ -890,7 +903,9 @@ void tst_QRegion::isEmpty() QCOMPARE(region, QRegion()); QCOMPARE(region.rectCount(), 0); QCOMPARE(region.boundingRect(), QRect()); +#if QT_DEPRECATED_SINCE(5, 11) QVERIFY(region.rects().isEmpty()); +#endif } #if 0 /* Used to be included in Qt4 for Q_WS_X11 */ && defined(QT_BUILD_INTERNAL) @@ -924,9 +939,11 @@ void tst_QRegion::regionFromPath() QCOMPARE(rgn.begin()[0], QRect(0, 0, 10, 10)); QCOMPARE(rgn.begin()[1], QRect(0, 100, 100, 1000)); +#if QT_DEPRECATED_SINCE(5, 11) QCOMPARE(rgn.rects().size(), 2); QCOMPARE(rgn.rects().at(0), QRect(0, 0, 10, 10)); QCOMPARE(rgn.rects().at(1), QRect(0, 100, 100, 1000)); +#endif QCOMPARE(rgn.boundingRect(), QRect(0, 0, 100, 1100)); } @@ -944,11 +961,13 @@ void tst_QRegion::regionFromPath() QCOMPARE(rgn.begin()[2], QRect(90, 10, 10, 80)); QCOMPARE(rgn.begin()[3], QRect(0, 90, 100, 10)); +#if QT_DEPRECATED_SINCE(5, 11) QCOMPARE(rgn.rects().size(), 4); QCOMPARE(rgn.rects().at(0), QRect(0, 0, 100, 10)); QCOMPARE(rgn.rects().at(1), QRect(0, 10, 10, 80)); QCOMPARE(rgn.rects().at(2), QRect(90, 10, 10, 80)); QCOMPARE(rgn.rects().at(3), QRect(0, 90, 100, 10)); +#endif QCOMPARE(rgn.boundingRect(), QRect(0, 0, 100, 100)); } diff --git a/tests/auto/gui/qopengl/tst_qopengl.cpp b/tests/auto/gui/qopengl/tst_qopengl.cpp index 82b3657b56..5b1af9b6c9 100644 --- a/tests/auto/gui/qopengl/tst_qopengl.cpp +++ b/tests/auto/gui/qopengl/tst_qopengl.cpp @@ -1593,7 +1593,7 @@ void tst_QOpenGL::defaultQGLCurrentBuffer() ctx->makeCurrent(surface.data()); // Bind default FBO on the current context, and record what's the current QGL FBO. It should - // be Q_NULLPTR because the default platform OpenGL FBO is not backed by a + // be nullptr because the default platform OpenGL FBO is not backed by a // QOpenGLFramebufferObject. QOpenGLFramebufferObject::bindDefault(); QOpenGLFramebufferObject *defaultQFBO = QOpenGLContextPrivate::get(ctx.data())->qgl_current_fbo; diff --git a/tests/auto/gui/qvulkan/tst_qvulkan.cpp b/tests/auto/gui/qvulkan/tst_qvulkan.cpp index cc4bc43f92..c80c3fed97 100644 --- a/tests/auto/gui/qvulkan/tst_qvulkan.cpp +++ b/tests/auto/gui/qvulkan/tst_qvulkan.cpp @@ -166,7 +166,7 @@ static void waitForUnexposed(QWindow *w) if (remaining <= 0) break; QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); - QCoreApplication::sendPostedEvents(Q_NULLPTR, QEvent::DeferredDelete); + QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); QTest::qSleep(10); } } diff --git a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp index dbe5bf7cc6..2a53f5d633 100644 --- a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp +++ b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp @@ -87,10 +87,8 @@ void tst_QCssParser::scanner_data() #if defined(Q_OS_ANDROID) || defined(Q_OS_WINRT) QDir d(":/"); -#elif !defined(Q_OS_IRIX) - QDir d(SRCDIR); #else - QDir d(QDir::current()); + QDir d(SRCDIR); #endif d.cd("testdata"); d.cd("scanner"); diff --git a/tests/auto/gui/text/qfont/BLACKLIST b/tests/auto/gui/text/qfont/BLACKLIST index 295c61ff12..42cb8408f4 100644 --- a/tests/auto/gui/text/qfont/BLACKLIST +++ b/tests/auto/gui/text/qfont/BLACKLIST @@ -1,6 +1,2 @@ -[exactMatch] -# QTBUG-46054 -opensuse-13.1 -opensuse-42.1 [defaultFamily] b2qt diff --git a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp index e52cb63384..ebe9d3b992 100644 --- a/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp +++ b/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp @@ -312,7 +312,7 @@ void tst_QFontDatabase::condensedFontWidth() QFont testFontCondensed("QtBidiTestFontCondensed"); QFontMetrics fmTF(testFont); QFontMetrics fmTFC(testFontCondensed); - QVERIFY(fmTF.width(testString()) > fmTFC.width(testString())); + QVERIFY(fmTF.horizontalAdvance(testString()) > fmTFC.horizontalAdvance(testString())); } @@ -335,15 +335,15 @@ void tst_QFontDatabase::condensedFontMatching() QEXPECT_FAIL("","No matching of sub-family by stretch on Windows", Continue); #endif - QCOMPARE(QFontMetrics(tfcByStretch).width(testString()), - QFontMetrics(tfcByStyleName).width(testString())); + QCOMPARE(QFontMetrics(tfcByStretch).horizontalAdvance(testString()), + QFontMetrics(tfcByStyleName).horizontalAdvance(testString())); if (!db.hasFamily("QtBidiTestFontCondensed")) QSKIP("This platform doesn't support font sub-family names (QTBUG-55625)"); QFont tfcBySubfamilyName("QtBidiTestFontCondensed"); - QCOMPARE(QFontMetrics(tfcByStyleName).width(testString()), - QFontMetrics(tfcBySubfamilyName).width(testString())); + QCOMPARE(QFontMetrics(tfcByStyleName).horizontalAdvance(testString()), + QFontMetrics(tfcBySubfamilyName).horizontalAdvance(testString())); } void tst_QFontDatabase::rasterFonts() diff --git a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp index 0a422fca17..9e705b4a00 100644 --- a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp +++ b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp @@ -48,7 +48,7 @@ private slots: void veryNarrowElidedText(); void averageCharWidth(); -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +#if QT_DEPRECATED_SINCE(5, 11) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void bypassShaping(); #endif @@ -167,7 +167,7 @@ void tst_QFontMetrics::elidedText() QFETCH(QFont, font); QFETCH(QString, text); QFontMetrics fm(font); - int w = fm.width(text); + int w = fm.horizontalAdvance(text); QString newtext = fm.elidedText(text,Qt::ElideRight,w+1, 0); QCOMPARE(text,newtext); // should not elide newtext = fm.elidedText(text,Qt::ElideRight,w-1, 0); @@ -191,7 +191,7 @@ void tst_QFontMetrics::averageCharWidth() QVERIFY(fmf.averageCharWidth() != 0); } -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) +#if QT_DEPRECATED_SINCE(5, 11) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void tst_QFontMetrics::bypassShaping() { QFont f; @@ -202,7 +202,7 @@ void tst_QFontMetrics::bypassShaping() QVERIFY(textWidth != 0); int charsWidth = 0; for (int i = 0; i < text.size(); ++i) - charsWidth += fm.width(text[i]); + charsWidth += fm.horizontalAdvance(text[i]); // This assertion is needed in Qt WebKit's WebCore::Font::offsetForPositionForSimpleText QCOMPARE(textWidth, charsWidth); } @@ -226,7 +226,7 @@ template<class FontMetrics, typename PrimitiveType> void elidedMultiLength_helpe // Not even wide enough for "small" - should use ellipsis QChar ellipsisChar(0x2026); QString text1_el = QString::fromLatin1("s") + ellipsisChar; - PrimitiveType width_small = fm.width(text1_el); + PrimitiveType width_small = fm.horizontalAdvance(text1_el); QCOMPARE(fm.elidedText(text1,Qt::ElideRight, width_small + 1), text1_el); } diff --git a/tests/auto/gui/text/qrawfont/BLACKLIST b/tests/auto/gui/text/qrawfont/BLACKLIST deleted file mode 100644 index a614595689..0000000000 --- a/tests/auto/gui/text/qrawfont/BLACKLIST +++ /dev/null @@ -1,4 +0,0 @@ -[correctFontData] -osx-10.8 -[unsupportedWritingSystem] -osx-10.8 diff --git a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp index 37f94d0278..373ad7fef9 100644 --- a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp +++ b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp @@ -93,6 +93,9 @@ private slots: void fallbackFontsOrder(); + void qtbug65923_partal_clone_data(); + void qtbug65923_partal_clone(); + private: QString testFont; QString testFontBoldItalic; @@ -1044,6 +1047,42 @@ void tst_QRawFont::fallbackFontsOrder() fontDatabase.removeApplicationFont(id); } +void tst_QRawFont::qtbug65923_partal_clone_data() +{ + QTest::addColumn<bool>("shouldClone"); + + QTest::newRow("Without cloning font engine") << false; + QTest::newRow("Cloning font engine") << true; +} + +void tst_QRawFont::qtbug65923_partal_clone() +{ + QFile file(testFont); + file.open(QIODevice::ReadOnly); + QByteArray fontData = file.readAll(); + + QRawFont outerFont; + + { + QRawFont innerFont(fontData, 16, QFont::PreferDefaultHinting); + + QFETCH(bool, shouldClone); + if (shouldClone) { + // This will trigger QFontEngine::cloneWithSize + innerFont.setPixelSize(innerFont.pixelSize() + 1); + } + + outerFont = innerFont; + } + + // This will detach if data is shared with the raw font. If the raw font has + // a naked reference to the data, without informing Qt of it via the ref count + // of the byte array, this will result in clearing 'live' data. + fontData.fill('\0'); + + QVERIFY(!outerFont.boundingRect(42).isEmpty()); +} + #endif // QT_NO_RAWFONT QTEST_MAIN(tst_QRawFont) diff --git a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp index f4e3356ad0..45cc94afad 100644 --- a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp +++ b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp @@ -98,6 +98,8 @@ private slots: void multiLine(); + void size_qtbug65836(); + private: bool supportsTransformations() const; @@ -639,7 +641,7 @@ void tst_QStaticText::setPenPlainText() font.setStyleStrategy(QFont::NoAntialias); QFontMetricsF fm(font); - QImage image(qCeil(fm.width("XXXXX")), qCeil(fm.height()), format); + QImage image(qCeil(fm.horizontalAdvance("XXXXX")), qCeil(fm.height()), format); image.fill(Qt::white); { QPainter p(&image); @@ -662,7 +664,7 @@ void tst_QStaticText::setPenRichText() font.setStyleStrategy(QFont::NoAntialias); QFontMetricsF fm(font); - QPixmap image(qCeil(fm.width("XXXXX")), qCeil(fm.height())); + QPixmap image(qCeil(fm.horizontalAdvance("XXXXX")), qCeil(fm.height())); image.fill(Qt::white); { QPainter p(&image); @@ -686,7 +688,7 @@ void tst_QStaticText::richTextOverridesPen() font.setStyleStrategy(QFont::NoAntialias); QFontMetricsF fm(font); - QPixmap image(qCeil(fm.width("XXXXX")), qCeil(fm.height())); + QPixmap image(qCeil(fm.horizontalAdvance("XXXXX")), qCeil(fm.height())); image.fill(Qt::white); { QPainter p(&image); @@ -862,19 +864,19 @@ void tst_QStaticText::textDocumentColor() class TestPaintEngine: public QPaintEngine { public: - void drawTextItem(const QPointF &p, const QTextItem &) Q_DECL_OVERRIDE + void drawTextItem(const QPointF &p, const QTextItem &) override { differentVerticalPositions.insert(qRound(p.y())); } - void updateState(const QPaintEngineState &) Q_DECL_OVERRIDE {} + void updateState(const QPaintEngineState &) override {} - void drawPolygon(const QPointF *, int , PolygonDrawMode ) Q_DECL_OVERRIDE {} + void drawPolygon(const QPointF *, int , PolygonDrawMode ) override {} - bool begin(QPaintDevice *) Q_DECL_OVERRIDE { return true; } - bool end() Q_DECL_OVERRIDE { return true; } - void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) Q_DECL_OVERRIDE {} - Type type() const Q_DECL_OVERRIDE + bool begin(QPaintDevice *) override { return true; } + bool end() override { return true; } + void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) override {} + Type type() const override { return User; } @@ -912,5 +914,42 @@ void tst_QStaticText::multiLine() QCOMPARE(paintEngine->differentVerticalPositions.size(), 2); } +void tst_QStaticText::size_qtbug65836() +{ + const QString text = QLatin1String("Lorem ipsum dolor sit amet, " + "consectetur adipiscing elit."); + QFont font("Courier"); + font.setPixelSize(15); + + { + QStaticText st1(text); + st1.setTextFormat(Qt::PlainText); + st1.prepare(QTransform(), font); + + QStaticText st2(text); + st2.setTextFormat(Qt::RichText); + QTextOption opt; + opt.setWrapMode(QTextOption::NoWrap); + st2.setTextOption(opt); + st2.prepare(QTransform(), font); + + QCOMPARE(st1.size(), st2.size()); + } + + { + QStaticText st1(text); + st1.setTextFormat(Qt::PlainText); + st1.setTextWidth(10.0); + st1.prepare(QTransform(), font); + + QStaticText st2(text); + st2.setTextFormat(Qt::RichText); + st2.setTextWidth(10.0); + st2.prepare(QTransform(), font); + + QCOMPARE(st1.size(), st2.size()); + } +} + QTEST_MAIN(tst_QStaticText) #include "tst_qstatictext.moc" diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index 2f3da2c196..ebdb5a56af 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -611,7 +611,7 @@ void tst_QTextDocument::task240325() QFontMetrics fm(p.font()); // Set page size to contain image and one "Foobar" - doc->setPageSize(QSize(100 + fm.width("Foobar")*2, 1000)); + doc->setPageSize(QSize(100 + fm.horizontalAdvance("Foobar")*2, 1000)); // Force layout doc->drawContents(&p); diff --git a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp index b8afd6a447..4ab80bdcfe 100644 --- a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp +++ b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp @@ -283,20 +283,29 @@ void tst_QTextFormat::testLetterSpacing() QCOMPARE(format.hasProperty(QTextFormat::FontLetterSpacingType), false); format.setFontLetterSpacingType(QFont::AbsoluteSpacing); + QCOMPARE(format.font().letterSpacingType(), QFont::AbsoluteSpacing); + format.setFontLetterSpacing(10.0); + QCOMPARE(format.font().letterSpacing(), 10.0); QCOMPARE(format.hasProperty(QTextFormat::FontLetterSpacing), true); QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 10.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::AbsoluteSpacing)); format.setFontLetterSpacingType(QFont::PercentageSpacing); + QCOMPARE(format.font().letterSpacingType(), QFont::PercentageSpacing); + format.setFontLetterSpacing(110.0); + QCOMPARE(format.font().letterSpacing(), 110.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 110.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::PercentageSpacing)); format.setFontLetterSpacingType(QFont::AbsoluteSpacing); + QCOMPARE(format.font().letterSpacingType(), QFont::AbsoluteSpacing); + format.setFontLetterSpacing(10.0); + QCOMPARE(format.font().letterSpacing(), 10.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::AbsoluteSpacing)); QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 10.0); diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp index b68a014bff..4e3d1da8fe 100644 --- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp +++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp @@ -203,7 +203,7 @@ void tst_QTextLayout::init() testFont.setPixelSize(TESTFONT_SIZE); testFont.setWeight(QFont::Normal); #ifdef QT_BUILD_INTERNAL - QCOMPARE(QFontMetrics(testFont).width('a'), testFont.pixelSize()); + QCOMPARE(QFontMetrics(testFont).horizontalAdvance('a'), testFont.pixelSize()); #endif } diff --git a/tests/auto/gui/text/qtextscriptengine/BLACKLIST b/tests/auto/gui/text/qtextscriptengine/BLACKLIST deleted file mode 100644 index 52eb9086a9..0000000000 --- a/tests/auto/gui/text/qtextscriptengine/BLACKLIST +++ /dev/null @@ -1,2 +0,0 @@ -[thaiWithZWJ] -rhel-7.2 |