diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-24 16:10:15 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-24 16:10:15 +0100 |
commit | 3b5c0bc0780f1749fed7c07bd8b691400a0282b7 (patch) | |
tree | 1022f5553ad5a0aca9b5f3b49ca38a01c2329d20 /tests/auto/widgets/graphicsview | |
parent | c79918733a194ebbe5a2fe1617c884659f3e4b9f (diff) | |
parent | 21f1738a94fc8544ece04b3b1ee03a11986fe59b (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
src/gui/image/qjpeghandler.cpp
Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
Diffstat (limited to 'tests/auto/widgets/graphicsview')
-rw-r--r-- | tests/auto/widgets/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp | 31 | ||||
-rw-r--r-- | tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp | 2 |
2 files changed, 20 insertions, 13 deletions
diff --git a/tests/auto/widgets/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/widgets/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp index 1768106100..49e3cfe4ab 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp @@ -1365,14 +1365,22 @@ void tst_QGraphicsAnchorLayout::hardComplexS60() delete p; } +static inline QByteArray msgStability(const QRectF &actual, const QRectF &expected, int pass, int item) +{ + QString result; + QDebug(&result) + << "The layout has several solutions, but which solution it picks is not stable (" + << actual << "!=" << expected << ", iteration" << pass << ", item" << item << ')'; + return result.toLocal8Bit(); +} + void tst_QGraphicsAnchorLayout::stability() { QVector<QRectF> geometries; geometries.resize(7); - QGraphicsWidget *p = new QGraphicsWidget(0, Qt::Window); - bool sameAsPreviousArrangement = true; + QGraphicsWidget p(0, Qt::Window); // it usually fails after 3-4 iterations - for (int pass = 0; pass < 20 && sameAsPreviousArrangement; ++pass) { + for (int pass = 0; pass < 20; ++pass) { // In case we need to "scramble" the heap allocator to provoke this bug. //static const int primes[] = {2, 3, 5, 13, 89, 233, 1597, 28657, 514229}; // fibo primes //const int primeCount = sizeof(primes)/sizeof(int); @@ -1380,23 +1388,22 @@ void tst_QGraphicsAnchorLayout::stability() //void *mem = malloc(alloc); //free(mem); QGraphicsAnchorLayout *l = createAmbiguousS60Layout(); - p->setLayout(l); + p.setLayout(l); QSizeF layoutMinimumSize = l->effectiveSizeHint(Qt::MinimumSize); l->setGeometry(QRectF(QPointF(0,0), layoutMinimumSize)); QApplication::processEvents(); - for (int i = l->count() - 1; i >=0 && sameAsPreviousArrangement; --i) { - QRectF geom = l->itemAt(i)->geometry(); + for (int i = l->count() - 1; i >=0; --i) { + const QRectF actualGeom = l->itemAt(i)->geometry(); if (pass != 0) { - sameAsPreviousArrangement = (geometries[i] == geom); + if (actualGeom != geometries[i]) + QEXPECT_FAIL("", msgStability(actualGeom, geometries[i], pass, i).constData(), Abort); + QCOMPARE(actualGeom, geometries[i]); } - geometries[i] = geom; + geometries[i] = actualGeom; } - p->setLayout(0); // uninstalls and deletes the layout + p.setLayout(0); // uninstalls and deletes the layout QApplication::processEvents(); } - delete p; - QEXPECT_FAIL("", "The layout have several solutions, but which solution it picks is not stable", Continue); - QCOMPARE(sameAsPreviousArrangement, true); } void tst_QGraphicsAnchorLayout::delete_anchor() diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp index de7c528825..84466b92d1 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp @@ -3660,7 +3660,7 @@ void tst_QGraphicsItem::setGroup2() oldSceneTransform = rect->sceneTransform(); rect->setGroup(0); - QCOMPARE(rect->sceneTransform(), oldSceneTransform); + qFuzzyCompare(rect->sceneTransform(), oldSceneTransform); } void tst_QGraphicsItem::nestedGroups() |