summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/graphicsview
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-24 16:10:15 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-24 16:10:15 +0100
commit3b5c0bc0780f1749fed7c07bd8b691400a0282b7 (patch)
tree1022f5553ad5a0aca9b5f3b49ca38a01c2329d20 /tests/auto/widgets/graphicsview
parentc79918733a194ebbe5a2fe1617c884659f3e4b9f (diff)
parent21f1738a94fc8544ece04b3b1ee03a11986fe59b (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.cpp31
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp2
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()