aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-08-07 08:34:26 -0300
committerflow <flowlnlnln@gmail.com>2022-08-20 10:48:01 -0300
commit0c9d03f5dffc37f3eda500fd520907a142ac061f (patch)
treea0e3240cd2c38145f1f2ee10898460a9bbcc560e /launcher/minecraft/mod
parent92aa24ae345c7b50028ea672c0d175d87e906c59 (diff)
downloadPrismLauncher-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.cpp27
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());
}
}