summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2023-01-25 12:53:24 +0100
committerChristian Stenger <christian.stenger@qt.io>2023-01-26 14:30:27 +0000
commitcf50f3034e964158ab3da0222e1a4e7ece27591b (patch)
tree901af3dec796ab1648da8a161797c138ce52acfa
parent026d04d2808378617a192354e1d4b020e4dba1d3 (diff)
downloadqt-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.cpp6
-rw-r--r--src/plugins/squish/squishrunnerprocess.h5
-rw-r--r--src/plugins/squish/squishtools.cpp19
-rw-r--r--src/plugins/squish/squishtools.h2
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;