diff options
author | flow <flowlnlnln@gmail.com> | 2022-08-07 08:34:26 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-08-20 10:48:01 -0300 |
commit | 0c9d03f5dffc37f3eda500fd520907a142ac061f (patch) | |
tree | a0e3240cd2c38145f1f2ee10898460a9bbcc560e /launcher/minecraft/mod | |
parent | 92aa24ae345c7b50028ea672c0d175d87e906c59 (diff) | |
download | PrismLauncher-0c9d03f5dffc37f3eda500fd520907a142ac061f.tar.gz PrismLauncher-0c9d03f5dffc37f3eda500fd520907a142ac061f.tar.bz2 PrismLauncher-0c9d03f5dffc37f3eda500fd520907a142ac061f.zip |
fix(tests): add timeout on ModFolderModel's tests
If the update never ends, the signal is not emitted and we become stuck
in the event loop forever. So a very lenient timer is added to prevent
that.
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/minecraft/mod')
-rw-r--r-- | launcher/minecraft/mod/ModFolderModel_test.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/launcher/minecraft/mod/ModFolderModel_test.cpp b/launcher/minecraft/mod/ModFolderModel_test.cpp index b4d37ce5..1b50ebd6 100644 --- a/launcher/minecraft/mod/ModFolderModel_test.cpp +++ b/launcher/minecraft/mod/ModFolderModel_test.cpp @@ -35,6 +35,7 @@ #include <QTest> #include <QTemporaryDir> +#include <QTimer> #include "FileSystem.h" #include "minecraft/mod/ModFolderModel.h" @@ -65,11 +66,25 @@ slots: { QString folder = source; QTemporaryDir tempDir; + QEventLoop loop; + ModFolderModel m(tempDir.path(), true); + connect(&m, &ModFolderModel::updateFinished, &loop, &QEventLoop::quit); + + QTimer expire_timer; + expire_timer.callOnTimeout(&loop, &QEventLoop::quit); + expire_timer.setSingleShot(true); + expire_timer.start(4000); + m.installMod(folder); + loop.exec(); + + QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished."); + expire_timer.stop(); + verify(tempDir.path()); } @@ -79,9 +94,21 @@ slots: QTemporaryDir tempDir; QEventLoop loop; ModFolderModel m(tempDir.path(), true); + connect(&m, &ModFolderModel::updateFinished, &loop, &QEventLoop::quit); + + QTimer expire_timer; + expire_timer.callOnTimeout(&loop, &QEventLoop::quit); + expire_timer.setSingleShot(true); + expire_timer.start(4000); + m.installMod(folder); + loop.exec(); + + QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished."); + expire_timer.stop(); + verify(tempDir.path()); } } |