aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt3
-rw-r--r--tests/FileSystem_test.cpp16
-rw-r--r--tests/PackageManifest_test.cpp343
-rw-r--r--tests/ResourceModel_test.cpp8
-rw-r--r--tests/Task_test.cpp147
-rw-r--r--tests/Version_test.cpp17
6 files changed, 97 insertions, 437 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 36a3b0f8..a26a49fe 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -9,9 +9,6 @@ ecm_add_test(GZip_test.cpp LINK_LIBRARIES Launcher_logic Qt${QT_VERSION_MAJOR}::
ecm_add_test(GradleSpecifier_test.cpp LINK_LIBRARIES Launcher_logic Qt${QT_VERSION_MAJOR}::Test
TEST_NAME GradleSpecifier)
-ecm_add_test(PackageManifest_test.cpp LINK_LIBRARIES Launcher_logic Qt${QT_VERSION_MAJOR}::Test
- TEST_NAME PackageManifest)
-
ecm_add_test(MojangVersionFormat_test.cpp LINK_LIBRARIES Launcher_logic Qt${QT_VERSION_MAJOR}::Test
TEST_NAME MojangVersionFormat)
diff --git a/tests/FileSystem_test.cpp b/tests/FileSystem_test.cpp
index ec1f0bcf..a41345c2 100644
--- a/tests/FileSystem_test.cpp
+++ b/tests/FileSystem_test.cpp
@@ -42,6 +42,10 @@ class LinkTask : public Task {
m_lnk->debug(true);
}
+ ~LinkTask() {
+ delete m_lnk;
+ }
+
void matcher(const IPathMatcher *filter)
{
m_lnk->matcher(filter);
@@ -219,7 +223,8 @@ slots:
qDebug() << tempDir.path();
qDebug() << target_dir.path();
FS::copy c(folder, target_dir.path());
- c.matcher(new RegexpMatcher("[.]?mcmeta"));
+ RegexpMatcher re("[.]?mcmeta");
+ c.matcher(&re);
c();
for(auto entry: target_dir.entryList())
@@ -253,7 +258,8 @@ slots:
qDebug() << tempDir.path();
qDebug() << target_dir.path();
FS::copy c(folder, target_dir.path());
- c.matcher(new RegexpMatcher("[.]?mcmeta"));
+ RegexpMatcher re("[.]?mcmeta");
+ c.matcher(&re);
c.whitelist(true);
c();
@@ -460,7 +466,8 @@ slots:
qDebug() << target_dir.path();
LinkTask lnk_tsk(folder, target_dir.path());
- lnk_tsk.matcher(new RegexpMatcher("[.]?mcmeta"));
+ RegexpMatcher re("[.]?mcmeta");
+ lnk_tsk.matcher(&re);
lnk_tsk.linkRecursively(true);
QObject::connect(&lnk_tsk, &Task::finished, [&]{
QVERIFY2(lnk_tsk.wasSuccessful(), "Task finished but was not successful when it should have been.");
@@ -511,7 +518,8 @@ slots:
qDebug() << target_dir.path();
LinkTask lnk_tsk(folder, target_dir.path());
- lnk_tsk.matcher(new RegexpMatcher("[.]?mcmeta"));
+ RegexpMatcher re("[.]?mcmeta");
+ lnk_tsk.matcher(&re);
lnk_tsk.linkRecursively(true);
lnk_tsk.whitelist(true);
QObject::connect(&lnk_tsk, &Task::finished, [&]{
diff --git a/tests/PackageManifest_test.cpp b/tests/PackageManifest_test.cpp
deleted file mode 100644
index e38abf80..00000000
--- a/tests/PackageManifest_test.cpp
+++ /dev/null
@@ -1,343 +0,0 @@
-#include <QTest>
-#include <QDebug>
-
-#include <mojang/PackageManifest.h>
-
-using namespace mojang_files;
-
-QDebug operator<<(QDebug debug, const Path &path)
-{
- debug << path.toString();
- return debug;
-}
-
-class PackageManifestTest : public QObject
-{
- Q_OBJECT
-
-private slots:
- void test_parse();
- void test_parse_file();
- void test_inspect();
-#ifndef Q_OS_WIN32
- void test_inspect_symlinks();
-#endif
- void mkdir_deep();
- void rmdir_deep();
-
- void identical_file();
- void changed_file();
- void added_file();
- void removed_file();
-};
-
-namespace {
-QByteArray basic_manifest = R"END(
-{
- "files": {
- "a/b.txt": {
- "type": "file",
- "downloads": {
- "raw": {
- "url": "http://dethware.org/b.txt",
- "sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- "size": 0
- }
- },
- "executable": true
- },
- "a/b/c": {
- "type": "directory"
- },
- "a/b/c.txt": {
- "type": "link",
- "target": "../b.txt"
- }
- }
-}
-)END";
-}
-
-void PackageManifestTest::test_parse()
-{
- auto manifest = Package::fromManifestContents(basic_manifest);
- QVERIFY(manifest.valid == true);
- QVERIFY(manifest.files.size() == 1);
- QVERIFY(manifest.files.count(Path("a/b.txt")));
- auto &file = manifest.files[Path("a/b.txt")];
- QVERIFY(file.executable == true);
- QVERIFY(file.hash == "da39a3ee5e6b4b0d3255bfef95601890afd80709");
- QVERIFY(file.size == 0);
- QVERIFY(manifest.folders.size() == 4);
- QVERIFY(manifest.folders.count(Path(".")));
- QVERIFY(manifest.folders.count(Path("a")));
- QVERIFY(manifest.folders.count(Path("a/b")));
- QVERIFY(manifest.folders.count(Path("a/b/c")));
- QVERIFY(manifest.symlinks.size() == 1);
- auto symlinkPath = Path("a/b/c.txt");
- QVERIFY(manifest.symlinks.count(symlinkPath));
- auto &symlink = manifest.symlinks[symlinkPath];
- QVERIFY(symlink == Path("../b.txt"));
- QVERIFY(manifest.sources.size() == 1);
-}
-
-void PackageManifestTest::test_parse_file() {
- auto path = QFINDTESTDATA("testdata/PackageManifest/1.8.0_202-x64.json");
- auto manifest = Package::fromManifestFile(path);
- QVERIFY(manifest.valid == true);
-}
-
-
-void PackageManifestTest::test_inspect() {
- auto path = QFINDTESTDATA("testdata/PackageManifest/inspect_win/");
- auto manifest = Package::fromInspectedFolder(path);
- QVERIFY(manifest.valid == true);
- QVERIFY(manifest.files.size() == 2);
- QVERIFY(manifest.files.count(Path("a/b.txt")));
- auto &file1 = manifest.files[Path("a/b.txt")];
- QVERIFY(file1.executable == false);
- QVERIFY(file1.hash == "da39a3ee5e6b4b0d3255bfef95601890afd80709");
- QVERIFY(file1.size == 0);
- QVERIFY(manifest.files.count(Path("a/b/b.txt")));
- auto &file2 = manifest.files[Path("a/b/b.txt")];
- QVERIFY(file2.executable == false);
- QVERIFY(file2.hash == "da39a3ee5e6b4b0d3255bfef95601890afd80709");
- QVERIFY(file2.size == 0);
- QVERIFY(manifest.folders.size() == 3);
- QVERIFY(manifest.folders.count(Path(".")));
- QVERIFY(manifest.folders.count(Path("a")));
- QVERIFY(manifest.folders.count(Path("a/b")));
- QVERIFY(manifest.symlinks.size() == 0);
-}
-
-#ifndef Q_OS_WIN32
-void PackageManifestTest::test_inspect_symlinks() {
- auto path = QFINDTESTDATA("testdata/PackageManifest/inspect/");
- auto manifest = Package::fromInspectedFolder(path);
- QVERIFY(manifest.valid == true);
- QVERIFY(manifest.files.size() == 1);
- QVERIFY(manifest.files.count(Path("a/b.txt")));
- auto &file = manifest.files[Path("a/b.txt")];
- QVERIFY(file.executable == true);
- QVERIFY(file.hash == "da39a3ee5e6b4b0d3255bfef95601890afd80709");
- QVERIFY(file.size == 0);
- QVERIFY(manifest.folders.size() == 3);
- QVERIFY(manifest.folders.count(Path(".")));
- QVERIFY(manifest.folders.count(Path("a")));
- QVERIFY(manifest.folders.count(Path("a/b")));
- QVERIFY(manifest.symlinks.size() == 1);
- QVERIFY(manifest.symlinks.count(Path("a/b/b.txt")));
- qDebug() << manifest.symlinks[Path("a/b/b.txt")];
- QVERIFY(manifest.symlinks[Path("a/b/b.txt")] == Path("../b.txt"));
-}
-#endif
-
-void PackageManifestTest::mkdir_deep() {
-
- Package from;
- auto to = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d/e": {
- "type": "directory"
- }
- }
-}
-)END");
- auto operations = UpdateOperations::resolve(from, to);
- QVERIFY(operations.deletes.size() == 0);
- QVERIFY(operations.rmdirs.size() == 0);
-
- QVERIFY(operations.mkdirs.size() == 6);
- QVERIFY(operations.mkdirs[0] == Path("."));
- QVERIFY(operations.mkdirs[1] == Path("a"));
- QVERIFY(operations.mkdirs[2] == Path("a/b"));
- QVERIFY(operations.mkdirs[3] == Path("a/b/c"));
- QVERIFY(operations.mkdirs[4] == Path("a/b/c/d"));
- QVERIFY(operations.mkdirs[5] == Path("a/b/c/d/e"));
-
- QVERIFY(operations.downloads.size() == 0);
- QVERIFY(operations.mklinks.size() == 0);
- QVERIFY(operations.executable_fixes.size() == 0);
-}
-
-void PackageManifestTest::rmdir_deep() {
-
- Package to;
- auto from = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d/e": {
- "type": "directory"
- }
- }
-}
-)END");
- auto operations = UpdateOperations::resolve(from, to);
- QVERIFY(operations.deletes.size() == 0);
-
- QVERIFY(operations.rmdirs.size() == 6);
- QVERIFY(operations.rmdirs[0] == Path("a/b/c/d/e"));
- QVERIFY(operations.rmdirs[1] == Path("a/b/c/d"));
- QVERIFY(operations.rmdirs[2] == Path("a/b/c"));
- QVERIFY(operations.rmdirs[3] == Path("a/b"));
- QVERIFY(operations.rmdirs[4] == Path("a"));
- QVERIFY(operations.rmdirs[5] == Path("."));
-
- QVERIFY(operations.mkdirs.size() == 0);
- QVERIFY(operations.downloads.size() == 0);
- QVERIFY(operations.mklinks.size() == 0);
- QVERIFY(operations.executable_fixes.size() == 0);
-}
-
-void PackageManifestTest::identical_file() {
- QByteArray manifest = R"END(
-{
- "files": {
- "a/b/c/d/empty.txt": {
- "type": "file",
- "downloads": {
- "raw": {
- "url": "http://dethware.org/empty.txt",
- "sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- "size": 0
- }
- },
- "executable": false
- }
- }
-}
-)END";
- auto from = Package::fromManifestContents(manifest);
- auto to = Package::fromManifestContents(manifest);
- auto operations = UpdateOperations::resolve(from, to);
- QVERIFY(operations.deletes.size() == 0);
- QVERIFY(operations.rmdirs.size() == 0);
- QVERIFY(operations.mkdirs.size() == 0);
- QVERIFY(operations.downloads.size() == 0);
- QVERIFY(operations.mklinks.size() == 0);
- QVERIFY(operations.executable_fixes.size() == 0);
-}
-
-void PackageManifestTest::changed_file() {
- auto from = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d/file": {
- "type": "file",
- "downloads": {
- "raw": {
- "url": "http://dethware.org/empty.txt",
- "sha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- "size": 0
- }
- },
- "executable": false
- }
- }
-}
-)END");
- auto to = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d/file": {
- "type": "file",
- "downloads": {
- "raw": {
- "url": "http://dethware.org/space.txt",
- "sha1": "dd122581c8cd44d0227f9c305581ffcb4b6f1b46",
- "size": 1
- }
- },
- "executable": false
- }
- }
-}
-)END");
- auto operations = UpdateOperations::resolve(from, to);
- QVERIFY(operations.deletes.size() == 1);
- QCOMPARE(operations.deletes[0], Path("a/b/c/d/file"));
- QVERIFY(operations.rmdirs.size() == 0);
- QVERIFY(operations.mkdirs.size() == 0);
- QVERIFY(operations.downloads.size() == 1);
- QVERIFY(operations.mklinks.size() == 0);
- QVERIFY(operations.executable_fixes.size() == 0);
-}
-
-void PackageManifestTest::added_file() {
- auto from = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d": {
- "type": "directory"
- }
- }
-}
-)END");
- auto to = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d/file": {
- "type": "file",
- "downloads": {
- "raw": {
- "url": "http://dethware.org/space.txt",
- "sha1": "dd122581c8cd44d0227f9c305581ffcb4b6f1b46",
- "size": 1
- }
- },
- "executable": false
- }
- }
-}
-)END");
- auto operations = UpdateOperations::resolve(from, to);
- QVERIFY(operations.deletes.size() == 0);
- QVERIFY(operations.rmdirs.size() == 0);
- QVERIFY(operations.mkdirs.size() == 0);
- QVERIFY(operations.downloads.size() == 1);
- QVERIFY(operations.mklinks.size() == 0);
- QVERIFY(operations.executable_fixes.size() == 0);
-}
-
-void PackageManifestTest::removed_file() {
- auto from = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d/file": {
- "type": "file",
- "downloads": {
- "raw": {
- "url": "http://dethware.org/space.txt",
- "sha1": "dd122581c8cd44d0227f9c305581ffcb4b6f1b46",
- "size": 1
- }
- },
- "executable": false
- }
- }
-}
-)END");
- auto to = Package::fromManifestContents(R"END(
-{
- "files": {
- "a/b/c/d": {
- "type": "directory"
- }
- }
-}
-)END");
- auto operations = UpdateOperations::resolve(from, to);
- QVERIFY(operations.deletes.size() == 1);
- QCOMPARE(operations.deletes[0], Path("a/b/c/d/file"));
- QVERIFY(operations.rmdirs.size() == 0);
- QVERIFY(operations.mkdirs.size() == 0);
- QVERIFY(operations.downloads.size() == 0);
- QVERIFY(operations.mklinks.size() == 0);
- QVERIFY(operations.executable_fixes.size() == 0);
-}
-
-QTEST_GUILESS_MAIN(PackageManifestTest)
-
-#include "PackageManifest_test.moc"
-
diff --git a/tests/ResourceModel_test.cpp b/tests/ResourceModel_test.cpp
index c0d9cd95..30353d3f 100644
--- a/tests/ResourceModel_test.cpp
+++ b/tests/ResourceModel_test.cpp
@@ -38,6 +38,7 @@ class DummyResourceModel : public ResourceModel {
public:
DummyResourceModel() : ResourceModel(new DummyResourceAPI) {}
+ ~DummyResourceModel() {}
[[nodiscard]] auto metaEntryBase() const -> QString override { return ""; };
@@ -58,7 +59,10 @@ class DummyResourceModel : public ResourceModel {
class ResourceModelTest : public QObject {
Q_OBJECT
private slots:
- void test_abstract_item_model() { [[maybe_unused]] auto tester = new QAbstractItemModelTester(new DummyResourceModel); }
+ void test_abstract_item_model() {
+ auto dummy = DummyResourceModel();
+ auto tester = QAbstractItemModelTester(&dummy);
+ }
void test_search()
{
@@ -78,6 +82,8 @@ class ResourceModelTest : public QObject {
QVERIFY(processed_pack->addonId.toString() == Json::requireString(processed_response, "project_id"));
QVERIFY(processed_pack->description == Json::requireString(processed_response, "description"));
QVERIFY(processed_pack->authors.first().name == Json::requireString(processed_response, "author"));
+
+ delete model;
}
};
diff --git a/tests/Task_test.cpp b/tests/Task_test.cpp
index dabe5da2..c59d4bb7 100644
--- a/tests/Task_test.cpp
+++ b/tests/Task_test.cpp
@@ -1,6 +1,6 @@
#include <QTest>
-#include <QTimer>
#include <QThread>
+#include <QTimer>
#include <tasks/ConcurrentTask.h>
#include <tasks/MultipleOptionsTask.h>
@@ -19,10 +19,7 @@ class BasicTask : public Task {
BasicTask(bool show_debug_log = true) : Task(nullptr, show_debug_log) {}
private:
- void executeTask() override
- {
- emitSucceeded();
- };
+ void executeTask() override { emitSucceeded(); };
};
/* Does nothing. Only used for testing. */
@@ -34,7 +31,7 @@ class BasicTask_MultiStep : public Task {
private:
auto isMultiStep() const -> bool override { return true; }
- void executeTask() override {};
+ void executeTask() override{};
};
class BigConcurrentTask : public ConcurrentTask {
@@ -44,7 +41,7 @@ class BigConcurrentTask : public ConcurrentTask {
{
// This is here only to help fill the stack a bit more quickly (if there's an issue, of course :^))
// Each tasks thus adds 1024 * 4 bytes to the stack, at the very least.
- [[maybe_unused]] volatile std::array<uint32_t, 1024> some_data_on_the_stack {};
+ [[maybe_unused]] volatile std::array<uint32_t, 1024> some_data_on_the_stack{};
ConcurrentTask::startNext();
}
@@ -53,49 +50,42 @@ class BigConcurrentTask : public ConcurrentTask {
class BigConcurrentTaskThread : public QThread {
Q_OBJECT
- BigConcurrentTask big_task;
-
+ QTimer m_deadline;
void run() override
{
- QTimer deadline;
- deadline.setInterval(10000);
- connect(&deadline, &QTimer::timeout, this, [this]{ passed_the_deadline = true; });
- deadline.start();
+ BigConcurrentTask big_task;
+ m_deadline.setInterval(10000);
// NOTE: Arbitrary value that manages to trigger a problem when there is one.
// Considering each tasks, in a problematic state, adds 1024 * 4 bytes to the stack,
// this number is enough to fill up 16 MiB of stack, more than enough to cause a problem.
static const unsigned s_num_tasks = 1 << 12;
- auto sub_tasks = new BasicTask::Ptr[s_num_tasks];
-
for (unsigned i = 0; i < s_num_tasks; i++) {
auto sub_task = makeShared<BasicTask>(false);
- sub_tasks[i] = sub_task;
big_task.addTask(sub_task);
}
- big_task.run();
+ connect(&big_task, &Task::finished, this, &QThread::quit);
+ connect(&m_deadline, &QTimer::timeout, this, [&] { passed_the_deadline = true; quit(); });
- while (!big_task.isFinished() && !passed_the_deadline)
- QCoreApplication::processEvents();
+ m_deadline.start();
+ big_task.run();
- emit finished();
+ exec();
}
public:
bool passed_the_deadline = false;
-
- signals:
- void finished();
};
class TaskTest : public QObject {
Q_OBJECT
private slots:
- void test_SetStatus_NoMultiStep(){
+ void test_SetStatus_NoMultiStep()
+ {
BasicTask t;
- QString status {"test status"};
+ QString status{ "test status" };
t.setStatus(status);
@@ -103,9 +93,10 @@ class TaskTest : public QObject {
QCOMPARE(t.getStepProgress().isEmpty(), TaskStepProgressList{}.isEmpty());
}
- void test_SetStatus_MultiStep(){
+ void test_SetStatus_MultiStep()
+ {
BasicTask_MultiStep t;
- QString status {"test status"};
+ QString status{ "test status" };
t.setStatus(status);
@@ -115,7 +106,8 @@ class TaskTest : public QObject {
QCOMPARE(t.getStepProgress().isEmpty(), TaskStepProgressList{}.isEmpty());
}
- void test_SetProgress(){
+ void test_SetProgress()
+ {
BasicTask t;
int current = 42;
int total = 207;
@@ -126,17 +118,18 @@ class TaskTest : public QObject {
QCOMPARE(t.getTotalProgress(), total);
}
- void test_basicRun(){
+ void test_basicRun()
+ {
BasicTask t;
- QObject::connect(&t, &Task::finished, [&]{ QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been."); });
+ QObject::connect(&t, &Task::finished,
+ [&] { QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been."); });
t.start();
- QVERIFY2(QTest::qWaitFor([&]() {
- return t.isFinished();
- }, 1000), "Task didn't finish as it should.");
+ QVERIFY2(QTest::qWaitFor([&]() { return t.isFinished(); }, 1000), "Task didn't finish as it should.");
}
- void test_basicConcurrentRun(){
+ void test_basicConcurrentRun()
+ {
auto t1 = makeShared<BasicTask>();
auto t2 = makeShared<BasicTask>();
auto t3 = makeShared<BasicTask>();
@@ -147,21 +140,20 @@ class TaskTest : public QObject {
t.addTask(t2);
t.addTask(t3);
- QObject::connect(&t, &Task::finished, [&]{
- QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
- QVERIFY(t1->wasSuccessful());
- QVERIFY(t2->wasSuccessful());
- QVERIFY(t3->wasSuccessful());
+ QObject::connect(&t, &Task::finished, [&t, &t1, &t2, &t3] {
+ QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
+ QVERIFY(t1->wasSuccessful());
+ QVERIFY(t2->wasSuccessful());
+ QVERIFY(t3->wasSuccessful());
});
t.start();
- QVERIFY2(QTest::qWaitFor([&]() {
- return t.isFinished();
- }, 1000), "Task didn't finish as it should.");
+ QVERIFY2(QTest::qWaitFor([&]() { return t.isFinished(); }, 1000), "Task didn't finish as it should.");
}
// Tests if starting new tasks after the 6 initial ones is working
- void test_moreConcurrentRun(){
+ void test_moreConcurrentRun()
+ {
auto t1 = makeShared<BasicTask>();
auto t2 = makeShared<BasicTask>();
auto t3 = makeShared<BasicTask>();
@@ -184,26 +176,25 @@ class TaskTest : public QObject {
t.addTask(t8);
t.addTask(t9);
- QObject::connect(&t, &Task::finished, [&]{
- QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
- QVERIFY(t1->wasSuccessful());
- QVERIFY(t2->wasSuccessful());
- QVERIFY(t3->wasSuccessful());
- QVERIFY(t4->wasSuccessful());
- QVERIFY(t5->wasSuccessful());
- QVERIFY(t6->wasSuccessful());
- QVERIFY(t7->wasSuccessful());
- QVERIFY(t8->wasSuccessful());
- QVERIFY(t9->wasSuccessful());
+ QObject::connect(&t, &Task::finished, [&t, &t1, &t2, &t3, &t4, &t5, &t6, &t7, &t8, &t9] {
+ QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
+ QVERIFY(t1->wasSuccessful());
+ QVERIFY(t2->wasSuccessful());
+ QVERIFY(t3->wasSuccessful());
+ QVERIFY(t4->wasSuccessful());
+ QVERIFY(t5->wasSuccessful());
+ QVERIFY(t6->wasSuccessful());
+ QVERIFY(t7->wasSuccessful());
+ QVERIFY(t8->wasSuccessful());
+ QVERIFY(t9->wasSuccessful());
});
t.start();
- QVERIFY2(QTest::qWaitFor([&]() {
- return t.isFinished();
- }, 1000), "Task didn't finish as it should.");
+ QVERIFY2(QTest::qWaitFor([&]() { return t.isFinished(); }, 1000), "Task didn't finish as it should.");
}
- void test_basicSequentialRun(){
+ void test_basicSequentialRun()
+ {
auto t1 = makeShared<BasicTask>();
auto t2 = makeShared<BasicTask>();
auto t3 = makeShared<BasicTask>();
@@ -214,20 +205,19 @@ class TaskTest : public QObject {
t.addTask(t2);
t.addTask(t3);
- QObject::connect(&t, &Task::finished, [&]{
- QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
- QVERIFY(t1->wasSuccessful());
- QVERIFY(t2->wasSuccessful());
- QVERIFY(t3->wasSuccessful());
+ QObject::connect(&t, &Task::finished, [&t, &t1, &t2, &t3] {
+ QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
+ QVERIFY(t1->wasSuccessful());
+ QVERIFY(t2->wasSuccessful());
+ QVERIFY(t3->wasSuccessful());
});
t.start();
- QVERIFY2(QTest::qWaitFor([&]() {
- return t.isFinished();
- }, 1000), "Task didn't finish as it should.");
+ QVERIFY2(QTest::qWaitFor([&]() { return t.isFinished(); }, 1000), "Task didn't finish as it should.");
}
- void test_basicMultipleOptionsRun(){
+ void test_basicMultipleOptionsRun()
+ {
auto t1 = makeShared<BasicTask>();
auto t2 = makeShared<BasicTask>();
auto t3 = makeShared<BasicTask>();
@@ -238,33 +228,30 @@ class TaskTest : public QObject {
t.addTask(t2);
t.addTask(t3);
- QObject::connect(&t, &Task::finished, [&]{
- QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
- QVERIFY(t1->wasSuccessful());
- QVERIFY(!t2->wasSuccessful());
- QVERIFY(!t3->wasSuccessful());
+ QObject::connect(&t, &Task::finished, [&t, &t1, &t2, &t3] {
+ QVERIFY2(t.wasSuccessful(), "Task finished but was not successful when it should have been.");
+ QVERIFY(t1->wasSuccessful());
+ QVERIFY(!t2->wasSuccessful());
+ QVERIFY(!t3->wasSuccessful());
});
t.start();
- QVERIFY2(QTest::qWaitFor([&]() {
- return t.isFinished();
- }, 1000), "Task didn't finish as it should.");
+ QVERIFY2(QTest::qWaitFor([&]() { return t.isFinished(); }, 1000), "Task didn't finish as it should.");
}
void test_stackOverflowInConcurrentTask()
{
QEventLoop loop;
- auto thread = new BigConcurrentTaskThread;
+ BigConcurrentTaskThread thread;
- connect(thread, &BigConcurrentTaskThread::finished, &loop, &QEventLoop::quit);
+ connect(&thread, &BigConcurrentTaskThread::finished, &loop, &QEventLoop::quit);
- thread->start();
+ thread.start();
loop.exec();
- QVERIFY(!thread->passed_the_deadline);
- thread->deleteLater();
+ QVERIFY(!thread.passed_the_deadline);
}
};
diff --git a/tests/Version_test.cpp b/tests/Version_test.cpp
index afb4c610..f5488cbc 100644
--- a/tests/Version_test.cpp
+++ b/tests/Version_test.cpp
@@ -20,6 +20,8 @@
class VersionTest : public QObject {
Q_OBJECT
+ QStringList m_flex_test_names = {};
+
void addDataColumns()
{
QTest::addColumn<QString>("first");
@@ -101,8 +103,9 @@ class VersionTest : public QObject {
QString first{split_line.first().simplified()};
QString second{split_line.last().simplified()};
- auto new_test_name = test_name_template.arg(QString::number(test_number), "lessThan").toLatin1().data();
- QTest::newRow(new_test_name) << first << second << true << false;
+ auto new_test_name = test_name_template.arg(QString::number(test_number), "lessThan");
+ m_flex_test_names.append(new_test_name);
+ QTest::newRow(m_flex_test_names.last().toLatin1().data()) << first << second << true << false;
continue;
}
@@ -112,8 +115,9 @@ class VersionTest : public QObject {
QString first{split_line.first().simplified()};
QString second{split_line.last().simplified()};
- auto new_test_name = test_name_template.arg(QString::number(test_number), "equals").toLatin1().data();
- QTest::newRow(new_test_name) << first << second << false << true;
+ auto new_test_name = test_name_template.arg(QString::number(test_number), "equals");
+ m_flex_test_names.append(new_test_name);
+ QTest::newRow(m_flex_test_names.last().toLatin1().data()) << first << second << false << true;
continue;
}
@@ -123,8 +127,9 @@ class VersionTest : public QObject {
QString first{split_line.first().simplified()};
QString second{split_line.last().simplified()};
- auto new_test_name = test_name_template.arg(QString::number(test_number), "greaterThan").toLatin1().data();
- QTest::newRow(new_test_name) << first << second << false << false;
+ auto new_test_name = test_name_template.arg(QString::number(test_number), "greaterThan");
+ m_flex_test_names.append(new_test_name);
+ QTest::newRow(m_flex_test_names.last().toLatin1().data()) << first << second << false << false;
continue;
}