Squish: Extract functions

Slim down server start function.

Change-Id: I33d2d26c42eca710d25fca9c5e10ad10f50be0c8
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2022-09-02 10:28:03 +02:00
parent 9087547eaa
commit 5f88511fe7
2 changed files with 55 additions and 43 deletions

View File

@@ -335,33 +335,7 @@ void SquishTools::startSquishServer(Request request)
return; return;
m_request = request; m_request = request;
if (m_serverProcess.state() != QProcess::NotRunning) { if (m_serverProcess.state() != QProcess::NotRunning) {
if (QMessageBox::question(Core::ICore::dialogParent(), handleSquishServerAlreadyRunning();
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();
}
return; return;
} }
@@ -393,22 +367,7 @@ void SquishTools::startSquishServer(Request request)
m_perspective.setState(SquishPerspective::State::Starting); m_perspective.setState(SquishPerspective::State::Starting);
} }
QStringList arguments; const QStringList arguments = serverArgumentsFromSettings();
// 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());
}
m_serverProcess.setCommand({toolsSettings.serverPath, arguments}); m_serverProcess.setCommand({toolsSettings.serverPath, arguments});
m_serverProcess.setEnvironment(squishEnvironment()); m_serverProcess.setEnvironment(squishEnvironment());
@@ -963,6 +922,57 @@ void SquishTools::terminateRunner()
process.waitForFinished(); 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() bool SquishTools::isValidToStartRunner()
{ {
if (!m_serverProcess.isRunning()) { if (!m_serverProcess.isRunning()) {

View File

@@ -106,6 +106,8 @@ private:
void interruptRunner(); void interruptRunner();
void terminateRunner(); void terminateRunner();
bool isValidToStartRunner(); bool isValidToStartRunner();
void handleSquishServerAlreadyRunning();
QStringList serverArgumentsFromSettings() const;
bool setupRunnerPath(); bool setupRunnerPath();
void setupAndStartSquishRunnerProcess(const QStringList &arg, void setupAndStartSquishRunnerProcess(const QStringList &arg,
const QString &caseReportFilePath = {}); const QString &caseReportFilePath = {});