summaryrefslogtreecommitdiffstats
path: root/tests/auto/qmovie/tst_qmovie.cpp
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2010-12-17 11:46:44 (GMT)
committerSamuel Rødal <samuel.rodal@nokia.com>2010-12-22 13:47:40 (GMT)
commitce432e1799111cbed492e46bb62d8dfb40585a10 (patch)
tree0175c56ec0fcd84a07e892b8deb6b52948493f48 /tests/auto/qmovie/tst_qmovie.cpp
parenta562fd2d201e3b618ed99a316275f20385cc5c25 (diff)
downloadQt-ce432e1799111cbed492e46bb62d8dfb40585a10.zip
Qt-ce432e1799111cbed492e46bb62d8dfb40585a10.tar.gz
Qt-ce432e1799111cbed492e46bb62d8dfb40585a10.tar.bz2
Prevented infinite loop in QMoviePrivate::next().
If we're unable to read the first frame, we shouldn't return an end marker, as that will cause QMoviePrivate::next() to recurse indefinitely when the playCounter is set to -1 (infinite). Reviewed-by: Olivier Goffart
Diffstat (limited to 'tests/auto/qmovie/tst_qmovie.cpp')
-rw-r--r--tests/auto/qmovie/tst_qmovie.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/auto/qmovie/tst_qmovie.cpp b/tests/auto/qmovie/tst_qmovie.cpp
index 80a551b..d43d4cb 100644
--- a/tests/auto/qmovie/tst_qmovie.cpp
+++ b/tests/auto/qmovie/tst_qmovie.cpp
@@ -72,6 +72,7 @@ private slots:
void jumpToFrame_data();
void jumpToFrame();
void changeMovieFile();
+ void infiniteLoop();
};
// Testing get/set functions
@@ -208,5 +209,17 @@ void tst_QMovie::changeMovieFile()
QVERIFY(movie.currentFrameNumber() == -1);
}
+void tst_QMovie::infiniteLoop()
+{
+ QLabel label;
+ label.show();
+ QMovie *movie = new QMovie(QLatin1String(":animations/corrupt.gif"), QByteArray(), &label);
+ label.setMovie(movie);
+ movie->start();
+
+ QTestEventLoop::instance().enterLoop(1);
+ QTestEventLoop::instance().timeout();
+}
+
QTEST_MAIN(tst_QMovie)
#include "tst_qmovie.moc"