LinuxDeviceTester: Make it possible to test extra commands

Change-Id: I1920457a4d97bf23865ad6c4842fbdbb40c2db23
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Jarek Kobus
2022-11-24 08:02:09 +01:00
parent 7582b62ddf
commit 658c9f6f06
2 changed files with 18 additions and 1 deletions

View File

@@ -31,6 +31,8 @@ class GenericLinuxDeviceTesterPrivate
public: public:
GenericLinuxDeviceTesterPrivate(GenericLinuxDeviceTester *tester) : q(tester) {} GenericLinuxDeviceTesterPrivate(GenericLinuxDeviceTester *tester) : q(tester) {}
QStringList commandsToTest() const;
TaskItem echoTask() const; TaskItem echoTask() const;
TaskItem unameTask() const; TaskItem unameTask() const;
TaskItem gathererTask() const; TaskItem gathererTask() const;
@@ -43,6 +45,7 @@ public:
GenericLinuxDeviceTester *q = nullptr; GenericLinuxDeviceTester *q = nullptr;
IDevice::Ptr m_device; IDevice::Ptr m_device;
std::unique_ptr<TaskTree> m_taskTree; std::unique_ptr<TaskTree> m_taskTree;
QStringList m_extraCommands;
}; };
const QStringList s_commandsToTest = {"base64", const QStringList s_commandsToTest = {"base64",
@@ -79,6 +82,14 @@ const QStringList s_commandsToTest = {"base64",
static const char s_echoContents[] = "Hello Remote World!"; static const char s_echoContents[] = "Hello Remote World!";
QStringList GenericLinuxDeviceTesterPrivate::commandsToTest() const
{
QStringList commands = s_commandsToTest + m_extraCommands;
commands.removeDuplicates();
Utils::sort(commands);
return commands;
}
TaskItem GenericLinuxDeviceTesterPrivate::echoTask() const TaskItem GenericLinuxDeviceTesterPrivate::echoTask() const
{ {
const auto setup = [this](QtcProcess &process) { const auto setup = [this](QtcProcess &process) {
@@ -231,7 +242,7 @@ TaskItem GenericLinuxDeviceTesterPrivate::commandTasks() const
tasks.append(OnGroupSetup([this] { tasks.append(OnGroupSetup([this] {
emit q->progressMessage(Tr::tr("Checking if required commands are available...")); emit q->progressMessage(Tr::tr("Checking if required commands are available..."));
})); }));
for (const QString &commandName : s_commandsToTest) for (const QString &commandName : commandsToTest())
tasks.append(commandTask(commandName)); tasks.append(commandTask(commandName));
return Tasking::Group {tasks}; return Tasking::Group {tasks};
} }
@@ -247,6 +258,11 @@ GenericLinuxDeviceTester::GenericLinuxDeviceTester(QObject *parent)
GenericLinuxDeviceTester::~GenericLinuxDeviceTester() = default; GenericLinuxDeviceTester::~GenericLinuxDeviceTester() = default;
void GenericLinuxDeviceTester::setExtraCommandsToTest(const QStringList &extraCommands)
{
d->m_extraCommands = extraCommands;
}
void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguration) void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguration)
{ {
QTC_ASSERT(!d->m_taskTree, return); QTC_ASSERT(!d->m_taskTree, return);

View File

@@ -19,6 +19,7 @@ public:
explicit GenericLinuxDeviceTester(QObject *parent = nullptr); explicit GenericLinuxDeviceTester(QObject *parent = nullptr);
~GenericLinuxDeviceTester() override; ~GenericLinuxDeviceTester() override;
void setExtraCommandsToTest(const QStringList &extraCommands);
void testDevice(const ProjectExplorer::IDevice::Ptr &deviceConfiguration) override; void testDevice(const ProjectExplorer::IDevice::Ptr &deviceConfiguration) override;
void stopTest() override; void stopTest() override;