From 61f1a40f4e65fed94ee26dbbc47113dbfef926ac Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 2 Sep 2022 14:55:27 +0200 Subject: [PATCH] Squish: Fix querying server Broke with switching the stdout handling from handling it directly to using a callback in 27c8e2a63883d. Change-Id: I69a9058b92807b0a4083b242eb7e4e982baa9096 Reviewed-by: David Schulz --- src/plugins/squish/squishsettings.cpp | 6 +++--- src/plugins/squish/squishtools.cpp | 8 ++++++-- src/plugins/squish/squishtools.h | 3 ++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugins/squish/squishsettings.cpp b/src/plugins/squish/squishsettings.cpp index 71e94c3ca61..10ced6ead95 100644 --- a/src/plugins/squish/squishsettings.cpp +++ b/src/plugins/squish/squishsettings.cpp @@ -117,7 +117,7 @@ class SquishServerSettings : public AspectContainer public: SquishServerSettings(); - void setFromXmlOutput(const QByteArray &output); + void setFromXmlOutput(const QString &output); QMap mappedAuts; // name, path QMap attachableAuts; // name, host:port @@ -181,7 +181,7 @@ InfoMode infoModeFromType(const QString &type) return None; } -void SquishServerSettings::setFromXmlOutput(const QByteArray &output) +void SquishServerSettings::setFromXmlOutput(const QString &output) { SquishServerSettings newSettings; InfoMode infoMode = None; @@ -403,7 +403,7 @@ SquishServerSettingsWidget::SquishServerSettingsWidget(QWidget *parent) // query settings SquishTools *squishTools = SquishTools::instance(); connect(squishTools, &SquishTools::queryFinished, this, - [this, progress] (const QByteArray &out) { + [this, progress] (const QString &out) { m_serverSettings.setFromXmlOutput(out); m_originalSettings.setFromXmlOutput(out); repopulateApplicationView(); diff --git a/src/plugins/squish/squishtools.cpp b/src/plugins/squish/squishtools.cpp index 41b1d690b00..9696f94449f 100644 --- a/src/plugins/squish/squishtools.cpp +++ b/src/plugins/squish/squishtools.cpp @@ -202,6 +202,7 @@ void SquishTools::queryServerSettings() return; } m_squishRunnerMode = QueryMode; + m_fullRunnerOutput.clear(); startSquishServer(RunnerQueryRequested); } @@ -497,8 +498,9 @@ void SquishTools::onServerFinished() void SquishTools::onRunnerFinished() { if (m_squishRunnerMode == QueryMode) { - emit queryFinished(m_runnerProcess.readAllStandardOutput()); + emit queryFinished(m_fullRunnerOutput); setState(RunnerStopped); + m_fullRunnerOutput.clear(); return; } @@ -663,8 +665,10 @@ void SquishTools::onRunnerErrorOutput() void SquishTools::onRunnerStdOutput(const QString &lineIn) { - if (m_request == RunnerQueryRequested) // only handle test runs here + if (m_request == RunnerQueryRequested) { // only handle test runs here + m_fullRunnerOutput.append(lineIn); // but store output for query, see onRunnerFinished() return; + } int fileLine = -1; int fileColumn = -1; diff --git a/src/plugins/squish/squishtools.h b/src/plugins/squish/squishtools.h index b6f0ef6de08..e4d939d89f1 100644 --- a/src/plugins/squish/squishtools.h +++ b/src/plugins/squish/squishtools.h @@ -61,7 +61,7 @@ signals: void squishTestRunStarted(); void squishTestRunFinished(); void resultOutputCreated(const QByteArray &output); - void queryFinished(const QByteArray &output); + void queryFinished(const QString &output); void configChangesFailed(QProcess::ProcessError error); void configChangesWritten(); void localsUpdated(const QString &output); @@ -122,6 +122,7 @@ private: QStringList m_testCases; QStringList m_reportFiles; QString m_currentResultsDirectory; + QString m_fullRunnerOutput; // used when querying the server Utils::FilePath m_currentTestCasePath; QFile *m_currentResultsXML = nullptr; QFileSystemWatcher *m_resultsFileWatcher = nullptr;