From fbe8d854015887dbc27fa6189749da678ec59289 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 24 Nov 2022 08:16:00 +0100 Subject: [PATCH] Qnx: Reuse setExtraCommandsToTest() Change-Id: I09e6160c1cbff9d74ac1ad3e824a0137d5964aae Reviewed-by: hjk Reviewed-by: --- src/plugins/qnx/qnxdevicetester.cpp | 105 ++++++++-------------------- src/plugins/qnx/qnxdevicetester.h | 10 +-- 2 files changed, 32 insertions(+), 83 deletions(-) diff --git a/src/plugins/qnx/qnxdevicetester.cpp b/src/plugins/qnx/qnxdevicetester.cpp index e1949bcf997..420b9752923 100644 --- a/src/plugins/qnx/qnxdevicetester.cpp +++ b/src/plugins/qnx/qnxdevicetester.cpp @@ -22,34 +22,36 @@ QnxDeviceTester::QnxDeviceTester(QObject *parent) connect(m_genericTester, &DeviceTester::finished, this, &QnxDeviceTester::handleGenericTestFinished); - connect(&m_process, &QtcProcess::done, this, &QnxDeviceTester::handleProcessDone); - - m_commandsToTest = { - "awk", - "cat", - "cut", - "df", - "grep", - "kill", - "netstat", - "mkdir", - "print", - "printf", - "pidin", - "read", - "rm", - "sed", - "sleep", - "tail", - "uname" - }; + connect(&m_varRunProcess, &QtcProcess::done, this, &QnxDeviceTester::handleVarRunDone); } void QnxDeviceTester::testDevice(const ProjectExplorer::IDevice::Ptr &deviceConfiguration) { QTC_ASSERT(m_state == Inactive, return); + static const QStringList s_commandsToTest = {"awk", + "cat", + "cut", + "df", + "grep", + "kill", + "netstat", + "mkdir", + "print", + "printf", + "pidin", + "read", + "rm", + "sed", + "sleep", + "tail", + "uname"}; + m_deviceConfiguration = deviceConfiguration; m_state = GenericTest; + + QnxDevice::ConstPtr qnxDevice = m_deviceConfiguration.dynamicCast(); + m_genericTester->setExtraCommandsToTest( + s_commandsToTest + versionSpecificCommandsToTest(qnxDevice->qnxVersion())); m_genericTester->testDevice(deviceConfiguration); } @@ -77,70 +79,23 @@ void QnxDeviceTester::handleGenericTestFinished(TestResult result) const CommandLine cmd {m_deviceConfiguration->filePath("/bin/sh"), {"-c", QLatin1String("rm %1 > /dev/null 2>&1; echo ABC > %1 && rm %1") .arg("/var/run/qtc_xxxx.pid")}}; - m_process.setCommand(cmd); - m_process.start(); -} - -void QnxDeviceTester::handleProcessDone() -{ - if (m_state == VarRunTest) - handleVarRunDone(); - else if (m_state == CommandsTest) - handleCommandDone(); - else - QTC_CHECK(false); + m_varRunProcess.setCommand(cmd); + m_varRunProcess.start(); } void QnxDeviceTester::handleVarRunDone() { - if (m_process.result() == ProcessResult::FinishedWithSuccess) { + if (m_varRunProcess.result() == ProcessResult::FinishedWithSuccess) { emit progressMessage(Tr::tr("Files can be created in /var/run.") + '\n'); } else { m_result = TestFailure; - const QString message = m_process.result() == ProcessResult::StartFailed + const QString message = m_varRunProcess.result() == ProcessResult::StartFailed ? Tr::tr("An error occurred while checking that files can be created in /var/run.") - + '\n' + m_process.errorString() + + '\n' + m_varRunProcess.errorString() : Tr::tr("Files cannot be created in /var/run."); emit errorMessage(message + '\n'); } - - QnxDevice::ConstPtr qnxDevice = m_deviceConfiguration.dynamicCast(); - m_commandsToTest.append(versionSpecificCommandsToTest(qnxDevice->qnxVersion())); - - testNextCommand(); -} - -void QnxDeviceTester::handleCommandDone() -{ - const QString command = m_commandsToTest[m_currentCommandIndex]; - if (m_process.result() == ProcessResult::FinishedWithSuccess) { - emit progressMessage(Tr::tr("%1 found.").arg(command) + '\n'); - } else { - m_result = TestFailure; - const QString message = m_process.result() == ProcessResult::StartFailed - ? Tr::tr("An error occurred while checking for %1.").arg(command) - + '\n' + m_process.errorString() - : Tr::tr("%1 not found.").arg(command); - emit errorMessage(message + '\n'); - } - - ++m_currentCommandIndex; - testNextCommand(); -} - -void QnxDeviceTester::testNextCommand() -{ - m_state = CommandsTest; - m_process.close(); - if (m_commandsToTest.size() == m_currentCommandIndex) { - setFinished(TestSuccess); - return; - } - - const QString command = m_commandsToTest[m_currentCommandIndex]; - emit progressMessage(Tr::tr("Checking for %1...").arg(command)); - m_process.setCommand({m_deviceConfiguration->filePath("command"), {"-v", command}}); - m_process.start(); + setFinished(m_result); } void QnxDeviceTester::setFinished(TestResult result) @@ -149,7 +104,7 @@ void QnxDeviceTester::setFinished(TestResult result) m_result = result; m_state = Inactive; disconnect(m_genericTester, nullptr, this, nullptr); - m_process.close(); + m_varRunProcess.close(); emit finished(m_result); } diff --git a/src/plugins/qnx/qnxdevicetester.h b/src/plugins/qnx/qnxdevicetester.h index 9f1b7e67541..25c8d6b383d 100644 --- a/src/plugins/qnx/qnxdevicetester.h +++ b/src/plugins/qnx/qnxdevicetester.h @@ -25,16 +25,12 @@ private: enum State { Inactive, GenericTest, - VarRunTest, - CommandsTest + VarRunTest }; void handleGenericTestFinished(ProjectExplorer::DeviceTester::TestResult result); - void handleProcessDone(); void handleVarRunDone(); - void handleCommandDone(); - void testNextCommand(); void setFinished(ProjectExplorer::DeviceTester::TestResult result); QStringList versionSpecificCommandsToTest(int versionNumber) const; @@ -44,9 +40,7 @@ private: ProjectExplorer::DeviceTester::TestResult m_result = TestSuccess; State m_state = Inactive; - int m_currentCommandIndex = 0; - QStringList m_commandsToTest; - Utils::QtcProcess m_process; + Utils::QtcProcess m_varRunProcess; }; } // namespace Internal