diff --git a/src/plugins/remotelinux/linuxdevicetester.cpp b/src/plugins/remotelinux/linuxdevicetester.cpp index f6fd487a50f..9005db83227 100644 --- a/src/plugins/remotelinux/linuxdevicetester.cpp +++ b/src/plugins/remotelinux/linuxdevicetester.cpp @@ -46,6 +46,7 @@ public: IDevice::Ptr m_device; std::unique_ptr m_taskTree; QStringList m_extraCommands; + QList m_extraTests; }; const QStringList s_commandsToTest = {"base64", @@ -263,6 +264,11 @@ void GenericLinuxDeviceTester::setExtraCommandsToTest(const QStringList &extraCo d->m_extraCommands = extraCommands; } +void GenericLinuxDeviceTester::setExtraTests(const QList &extraTests) +{ + d->m_extraTests = extraTests; +} + void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguration) { QTC_ASSERT(!d->m_taskTree, return); @@ -274,16 +280,19 @@ void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguratio d->m_taskTree.release()->deleteLater(); }; - const Tasking::Group root { + QList taskItems = { d->echoTask(), d->unameTask(), d->gathererTask(), - d->transferTasks(), - d->commandTasks(), - OnGroupDone(std::bind(allFinished, TestSuccess)), - OnGroupError(std::bind(allFinished, TestFailure)) + d->transferTasks() }; - d->m_taskTree.reset(new TaskTree(root)); + if (!d->m_extraTests.isEmpty()) + taskItems << Group { d->m_extraTests }; + taskItems << d->commandTasks() + << OnGroupDone(std::bind(allFinished, TestSuccess)) + << OnGroupError(std::bind(allFinished, TestFailure)); + + d->m_taskTree.reset(new TaskTree(taskItems)); d->m_taskTree->start(); } diff --git a/src/plugins/remotelinux/linuxdevicetester.h b/src/plugins/remotelinux/linuxdevicetester.h index 5f50ae6678b..d72a9a046f9 100644 --- a/src/plugins/remotelinux/linuxdevicetester.h +++ b/src/plugins/remotelinux/linuxdevicetester.h @@ -7,6 +7,8 @@ #include +namespace Utils::Tasking { class TaskItem; } + namespace RemoteLinux { namespace Internal { class GenericLinuxDeviceTesterPrivate; } @@ -20,6 +22,7 @@ public: ~GenericLinuxDeviceTester() override; void setExtraCommandsToTest(const QStringList &extraCommands); + void setExtraTests(const QList &extraTests); void testDevice(const ProjectExplorer::IDevice::Ptr &deviceConfiguration) override; void stopTest() override;