diff options
author | Christian Stenger <christian.stenger@qt.io> | 2023-01-25 12:53:24 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2023-01-26 14:30:27 +0000 |
commit | cf50f3034e964158ab3da0222e1a4e7ece27591b (patch) | |
tree | 901af3dec796ab1648da8a161797c138ce52acfa | |
parent | 026d04d2808378617a192354e1d4b020e4dba1d3 (diff) | |
download | qt-creator-cf50f3034e964158ab3da0222e1a4e7ece27591b.tar.gz |
Squish: Use new approach for recorder
Change-Id: I9fe897b0f38f418135b39904ea16737a60248b25
Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r-- | src/plugins/squish/squishrunnerprocess.cpp | 6 | ||||
-rw-r--r-- | src/plugins/squish/squishrunnerprocess.h | 5 | ||||
-rw-r--r-- | src/plugins/squish/squishtools.cpp | 19 | ||||
-rw-r--r-- | src/plugins/squish/squishtools.h | 2 |
4 files changed, 20 insertions, 12 deletions
diff --git a/src/plugins/squish/squishrunnerprocess.cpp b/src/plugins/squish/squishrunnerprocess.cpp index 6c9aac5889..be7d3f7d75 100644 --- a/src/plugins/squish/squishrunnerprocess.cpp +++ b/src/plugins/squish/squishrunnerprocess.cpp @@ -33,6 +33,9 @@ void SquishRunnerProcess::setupProcess(RunnerMode mode) break; case QueryServer: break; + case Record: + m_process.setProcessMode(Utils::ProcessMode::Writer); + break; } } @@ -52,6 +55,8 @@ void SquishRunnerProcess::onDone() const QString error = m_licenseIssues ? Tr::tr("Could not get Squish license from server.") : QString(); emit queryDone(m_process.stdOut(), error); + } if (m_mode == Record) { + emit recorderDone(); } else { emit runnerFinished(); // handle output file stuff - FIXME move over to runner? } @@ -134,6 +139,7 @@ static QString cmdToString(SquishRunnerProcess::RunnerCommand cmd) { switch (cmd) { case SquishRunnerProcess::Continue: return "continue\n"; + case SquishRunnerProcess::EndRecord: return "endrecord\n"; case SquishRunnerProcess::Exit: return "exit\n"; case SquishRunnerProcess::Next: return "next\n"; case SquishRunnerProcess::PrintVariables: return "print variables\n"; diff --git a/src/plugins/squish/squishrunnerprocess.h b/src/plugins/squish/squishrunnerprocess.h index 28b4bd75c1..f3e85ca08a 100644 --- a/src/plugins/squish/squishrunnerprocess.h +++ b/src/plugins/squish/squishrunnerprocess.h @@ -15,8 +15,8 @@ class SquishRunnerProcess : public SquishProcessBase { Q_OBJECT public: - enum RunnerCommand { Continue, Exit, Next, PrintVariables, Quit, Return, Step }; - enum RunnerMode { Run, StartAut, QueryServer }; + enum RunnerCommand { Continue, EndRecord, Exit, Next, PrintVariables, Quit, Return, Step }; + enum RunnerMode { Run, StartAut, QueryServer, Record }; enum RunnerError { InvalidSocket, MappedAutMissing }; explicit SquishRunnerProcess(QObject *parent = nullptr); @@ -37,6 +37,7 @@ public: signals: void queryDone(const QString &output, const QString &error); + void recorderDone(); void runnerFinished(); void interrupted(const QString &fileName, int line, int column); void localsUpdated(const QString &output); diff --git a/src/plugins/squish/squishtools.cpp b/src/plugins/squish/squishtools.cpp index 5aa6bc8bc3..ca4340e5ec 100644 --- a/src/plugins/squish/squishtools.cpp +++ b/src/plugins/squish/squishtools.cpp @@ -589,14 +589,15 @@ void SquishTools::setupAndStartRecorder() args << "--useScriptedObjectMap"; args << "--autid" << QString::number(m_primaryRunner->autId()); - m_secondaryRunner = new QtcProcess(this); - m_secondaryRunner->setProcessMode(ProcessMode::Writer); - m_secondaryRunner->setCommand({toolsSettings.runnerPath, args}); - connect(m_secondaryRunner, &QtcProcess::done, this, &SquishTools::onRecorderFinished); - qCDebug(LOG) << "Recorder starting:" << m_secondaryRunner->commandLine().toUserOutput(); + m_secondaryRunner = new SquishRunnerProcess(this); + m_secondaryRunner->setupProcess(SquishRunnerProcess::Record); + const CommandLine cmd = {toolsSettings.runnerPath, args}; + connect(m_secondaryRunner, &SquishRunnerProcess::recorderDone, + this, &SquishTools::onRecorderFinished); + qCDebug(LOG) << "Recorder starting:" << cmd.toUserOutput(); if (m_suiteConf.objectMapPath().isReadableFile()) Core::DocumentManager::expectFileChange(m_suiteConf.objectMapPath()); - m_secondaryRunner->start(); + m_secondaryRunner->start(cmd, squishEnvironment()); } void SquishTools::stopRecorder() @@ -604,10 +605,10 @@ void SquishTools::stopRecorder() QTC_ASSERT(m_secondaryRunner && m_secondaryRunner->isRunning(), return); if (m_squishRunnerState == RunnerState::CancelRequested) { qCDebug(LOG) << "Stopping recorder (exit)"; - m_secondaryRunner->write("exit\n"); + m_secondaryRunner->writeCommand(SquishRunnerProcess::Exit); } else { qCDebug(LOG) << "Stopping recorder (endrecord)"; - m_secondaryRunner->write("endrecord\n"); + m_secondaryRunner->writeCommand(SquishRunnerProcess::EndRecord); } } @@ -688,7 +689,7 @@ void SquishTools::onRunnerFinished() void SquishTools::onRecorderFinished() { QTC_ASSERT(m_secondaryRunner, return); - qCDebug(LOG) << "Recorder finished:" << m_secondaryRunner->exitCode(); + qCDebug(LOG) << "Recorder finished"; // exit code? m_secondaryRunner->deleteLater(); m_secondaryRunner = nullptr; diff --git a/src/plugins/squish/squishtools.h b/src/plugins/squish/squishtools.h index 1acd36d5b7..19b57a7cb4 100644 --- a/src/plugins/squish/squishtools.h +++ b/src/plugins/squish/squishtools.h @@ -135,7 +135,7 @@ private: SquishServerProcess m_serverProcess; SquishRunnerProcess *m_primaryRunner = nullptr; - Utils::QtcProcess *m_secondaryRunner = nullptr; + SquishRunnerProcess *m_secondaryRunner = nullptr; QString m_serverHost; Request m_request = None; |