From 5f88511fe783142cc30601812bfe9d8cb5a818a5 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 2 Sep 2022 10:28:03 +0200 Subject: [PATCH] Squish: Extract functions Slim down server start function. Change-Id: I33d2d26c42eca710d25fca9c5e10ad10f50be0c8 Reviewed-by: David Schulz --- src/plugins/squish/squishtools.cpp | 96 +++++++++++++++++------------- src/plugins/squish/squishtools.h | 2 + 2 files changed, 55 insertions(+), 43 deletions(-) diff --git a/src/plugins/squish/squishtools.cpp b/src/plugins/squish/squishtools.cpp index e059075582a..a4f149b4b70 100644 --- a/src/plugins/squish/squishtools.cpp +++ b/src/plugins/squish/squishtools.cpp @@ -335,33 +335,7 @@ void SquishTools::startSquishServer(Request request) return; m_request = request; if (m_serverProcess.state() != QProcess::NotRunning) { - if (QMessageBox::question(Core::ICore::dialogParent(), - Tr::tr("Squish Server Already Running"), - Tr::tr("There is still an old Squish server instance running.\n" - "This will cause problems later on.\n\n" - "If you continue, the old instance will be terminated.\n" - "Do you want to continue?")) - == QMessageBox::Yes) { - switch (m_request) { - case RunTestRequested: - m_request = KillOldBeforeRunRunner; - break; - case RecordTestRequested: - m_request = KillOldBeforeRecordRunner; - break; - case RunnerQueryRequested: - m_request = KillOldBeforeQueryRunner; - break; - default: - QMessageBox::critical(Core::ICore::dialogParent(), - Tr::tr("Error"), - Tr::tr("Unexpected state or request while starting Squish " - "server. (state: %1, request: %2)") - .arg(m_state) - .arg(m_request)); - } - stopSquishServer(); - } + handleSquishServerAlreadyRunning(); return; } @@ -393,22 +367,7 @@ void SquishTools::startSquishServer(Request request) m_perspective.setState(SquishPerspective::State::Starting); } - QStringList arguments; - // TODO if isLocalServer is false we should start a squishserver on remote device - if (toolsSettings.isLocalServer) { - if (m_request != ServerConfigChangeRequested) - arguments << "--local"; // for now - although Squish Docs say "don't use it" - } else { - arguments << "--port" << QString::number(toolsSettings.serverPort); - } - if (toolsSettings.verboseLog) - arguments << "--verbose"; - - if (m_request == ServerConfigChangeRequested && QTC_GUARD(!m_serverConfigChanges.isEmpty())) { - arguments.append("--config"); - arguments.append(m_serverConfigChanges.first()); - } - + const QStringList arguments = serverArgumentsFromSettings(); m_serverProcess.setCommand({toolsSettings.serverPath, arguments}); m_serverProcess.setEnvironment(squishEnvironment()); @@ -963,6 +922,57 @@ void SquishTools::terminateRunner() process.waitForFinished(); } +void SquishTools::handleSquishServerAlreadyRunning() +{ + if (QMessageBox::question(Core::ICore::dialogParent(), + Tr::tr("Squish Server Already Running"), + Tr::tr("There is still an old Squish server instance running.\n" + "This will cause problems later on.\n\n" + "If you continue, the old instance will be terminated.\n" + "Do you want to continue?")) + == QMessageBox::Yes) { + switch (m_request) { + case RunTestRequested: + m_request = KillOldBeforeRunRunner; + break; + case RecordTestRequested: + m_request = KillOldBeforeRecordRunner; + break; + case RunnerQueryRequested: + m_request = KillOldBeforeQueryRunner; + break; + default: + QMessageBox::critical(Core::ICore::dialogParent(), + Tr::tr("Error"), + Tr::tr("Unexpected state or request while starting Squish " + "server. (state: %1, request: %2)") + .arg(m_state) + .arg(m_request)); + } + stopSquishServer(); + } +} + +QStringList SquishTools::serverArgumentsFromSettings() const +{ + QStringList arguments; + // TODO if isLocalServer is false we should start a squishserver on remote device + if (toolsSettings.isLocalServer) { + if (m_request != ServerConfigChangeRequested) + arguments << "--local"; // for now - although Squish Docs say "don't use it" + } else { + arguments << "--port" << QString::number(toolsSettings.serverPort); + } + if (toolsSettings.verboseLog) + arguments << "--verbose"; + + if (m_request == ServerConfigChangeRequested && QTC_GUARD(!m_serverConfigChanges.isEmpty())) { + arguments.append("--config"); + arguments.append(m_serverConfigChanges.first()); + } + return arguments; +} + bool SquishTools::isValidToStartRunner() { if (!m_serverProcess.isRunning()) { diff --git a/src/plugins/squish/squishtools.h b/src/plugins/squish/squishtools.h index e4d939d89f1..e26e1c754fa 100644 --- a/src/plugins/squish/squishtools.h +++ b/src/plugins/squish/squishtools.h @@ -106,6 +106,8 @@ private: void interruptRunner(); void terminateRunner(); bool isValidToStartRunner(); + void handleSquishServerAlreadyRunning(); + QStringList serverArgumentsFromSettings() const; bool setupRunnerPath(); void setupAndStartSquishRunnerProcess(const QStringList &arg, const QString &caseReportFilePath = {});