diff options
author | Morten Johan Sørvig <morten.sorvig@qt.io> | 2018-06-04 10:45:14 +0200 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@qt.io> | 2018-06-04 10:45:14 +0200 |
commit | 3ca5f33c8b9c273f0169ec4c11417328f8071e97 (patch) | |
tree | 155da80482fb4593ca074f7a1bf9b22d031dba4a /tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp | |
parent | 5f4698c4e7952d64e78e3a06de5ac28d68415b19 (diff) | |
parent | b7a1bcd83a8f68185b617b860cef6f2d2d7c8d9b (diff) |
Merge remote-tracking branch 'gerrit/5.11' into wip/webassembly
Change-Id: I7556ac62fd8e1aeb99186c929f1225f02f9d2430
Diffstat (limited to 'tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp')
-rw-r--r-- | tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp b/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp index 3e5a054cc7..8026bafb9e 100644 --- a/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp +++ b/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp @@ -67,6 +67,7 @@ private slots: void progressAndStatusChanges(); void playingAndPausedChanges(); void noCaching(); + void sourceChangesOnFrameChanged(); }; void tst_qquickanimatedimage::cleanup() @@ -590,6 +591,33 @@ void tst_qquickanimatedimage::noCaching() } } +void tst_qquickanimatedimage::sourceChangesOnFrameChanged() +{ + QQmlEngine engine; + QQmlComponent component(&engine, testFileUrl("colors.qml")); + QVector<QQuickAnimatedImage*> images; + + // Run multiple animations in parallel, this should be fast + for (int loops = 0; loops < 25; ++loops) { + QQuickAnimatedImage *anim = qobject_cast<QQuickAnimatedImage *>(component.create()); + + // QTBUG-67427: this should not produce a segfault + QObject::connect(anim, + &QQuickAnimatedImage::frameChanged, + [this, anim]() { anim->setSource(testFileUrl("hearts.gif")); }); + + QVERIFY(anim); + QVERIFY(anim->isPlaying()); + + images.append(anim); + } + + for (auto *anim : images) + QTRY_COMPARE(anim->source(), testFileUrl("hearts.gif")); + + qDeleteAll(images); +} + QTEST_MAIN(tst_qquickanimatedimage) #include "tst_qquickanimatedimage.moc" |