GenericLinuxDeviceTester: Reuse TaskTreeRunner

Change-Id: I86b7dcb8ef9a27d338dd0a4ce585c223bf90665f
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2024-01-13 19:19:23 +01:00
parent e4f5a0f50b
commit 9df6fadf2e

View File

@@ -9,6 +9,8 @@
#include <projectexplorer/devicesupport/filetransfer.h> #include <projectexplorer/devicesupport/filetransfer.h>
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
#include <solutions/tasking/tasktreerunner.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/process.h> #include <utils/process.h>
#include <utils/processinterface.h> #include <utils/processinterface.h>
@@ -45,7 +47,7 @@ public:
GenericLinuxDeviceTester *q = nullptr; GenericLinuxDeviceTester *q = nullptr;
IDevice::Ptr m_device; IDevice::Ptr m_device;
std::unique_ptr<TaskTree> m_taskTree; TaskTreeRunner m_taskTreeRunner;
QStringList m_extraCommands; QStringList m_extraCommands;
QList<GroupItem> m_extraTests; QList<GroupItem> m_extraTests;
}; };
@@ -280,6 +282,9 @@ using namespace Internal;
GenericLinuxDeviceTester::GenericLinuxDeviceTester(QObject *parent) GenericLinuxDeviceTester::GenericLinuxDeviceTester(QObject *parent)
: DeviceTester(parent), d(new GenericLinuxDeviceTesterPrivate(this)) : DeviceTester(parent), d(new GenericLinuxDeviceTesterPrivate(this))
{ {
connect(&d->m_taskTreeRunner, &TaskTreeRunner::done, this, [this](DoneWith result) {
emit finished(result == DoneWith::Success ? TestSuccess : TestFailure);
});
} }
GenericLinuxDeviceTester::~GenericLinuxDeviceTester() = default; GenericLinuxDeviceTester::~GenericLinuxDeviceTester() = default;
@@ -296,15 +301,10 @@ void GenericLinuxDeviceTester::setExtraTests(const QList<GroupItem> &extraTests)
void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguration) void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguration)
{ {
QTC_ASSERT(!d->m_taskTree, return); QTC_ASSERT(!d->m_taskTreeRunner.isRunning(), return);
d->m_device = deviceConfiguration; d->m_device = deviceConfiguration;
auto onDone = [this](DoneWith result) {
emit finished(result == DoneWith::Success ? TestSuccess : TestFailure);
d->m_taskTree.release()->deleteLater();
};
QList<GroupItem> taskItems = { QList<GroupItem> taskItems = {
d->echoTask("Hello"), // No quoting necessary d->echoTask("Hello"), // No quoting necessary
d->echoTask("Hello Remote World!"), // Checks quoting, too. d->echoTask("Hello Remote World!"), // Checks quoting, too.
@@ -314,16 +314,14 @@ void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguratio
}; };
if (!d->m_extraTests.isEmpty()) if (!d->m_extraTests.isEmpty())
taskItems << Group { d->m_extraTests }; taskItems << Group { d->m_extraTests };
taskItems << d->commandTasks() << onGroupDone(onDone); taskItems << d->commandTasks();
d->m_taskTreeRunner.start(taskItems);
d->m_taskTree.reset(new TaskTree(taskItems));
d->m_taskTree->start();
} }
void GenericLinuxDeviceTester::stopTest() void GenericLinuxDeviceTester::stopTest()
{ {
QTC_ASSERT(d->m_taskTree, return); QTC_ASSERT(d->m_taskTreeRunner.isRunning(), return);
d->m_taskTree.reset(); d->m_taskTreeRunner.reset();
emit finished(TestFailure); emit finished(TestFailure);
} }