From 91f01c17f9fcb25f41625e24bd59dc34ffd8720c Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Sat, 5 Aug 2023 10:17:55 +0200 Subject: [PATCH] ValgrindRunner: Hide ThreadedParser Expose its signals instead. Change-Id: I0daeb2e510c30678f4f13d880bc8108510c4f32e Reviewed-by: hjk Reviewed-by: Qt CI Bot Reviewed-by: --- src/plugins/valgrind/memchecktool.cpp | 7 +++---- src/plugins/valgrind/valgrindmemcheckparsertest.h | 10 +++------- src/plugins/valgrind/valgrindrunner.cpp | 11 +++++------ src/plugins/valgrind/valgrindrunner.h | 12 +++++++++--- src/plugins/valgrind/valgrindtestrunnertest.cpp | 7 ++----- tests/auto/valgrind/memcheck/modeldemo.cpp | 6 ++---- 6 files changed, 24 insertions(+), 29 deletions(-) diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp index b7f54c9a107..192791d5569 100644 --- a/src/plugins/valgrind/memchecktool.cpp +++ b/src/plugins/valgrind/memchecktool.cpp @@ -175,7 +175,7 @@ void MemcheckToolRunner::start() void MemcheckToolRunner::stop() { - disconnect(m_runner.parser(), &ThreadedParser::internalError, + disconnect(&m_runner, &ValgrindRunner::internalError, this, &MemcheckToolRunner::internalParserError); ValgrindToolRunner::stop(); } @@ -1154,8 +1154,7 @@ MemcheckToolRunner::MemcheckToolRunner(RunControl *runControl) m_localServerAddress(QHostAddress::LocalHost) { setId("MemcheckToolRunner"); - connect(m_runner.parser(), &XmlProtocol::ThreadedParser::error, - this, &MemcheckToolRunner::parserError); + connect(&m_runner, &ValgrindRunner::error, this, &MemcheckToolRunner::parserError); if (m_withGdb) { connect(&m_runner, &ValgrindRunner::valgrindStarted, @@ -1164,7 +1163,7 @@ MemcheckToolRunner::MemcheckToolRunner(RunControl *runControl) this, &MemcheckToolRunner::appendLog); // m_runner.disableXml(); } else { - connect(m_runner.parser(), &XmlProtocol::ThreadedParser::internalError, + connect(&m_runner, &ValgrindRunner::internalError, this, &MemcheckToolRunner::internalParserError); } diff --git a/src/plugins/valgrind/valgrindmemcheckparsertest.h b/src/plugins/valgrind/valgrindmemcheckparsertest.h index 96fd6ad186d..a5dbcf7153e 100644 --- a/src/plugins/valgrind/valgrindmemcheckparsertest.h +++ b/src/plugins/valgrind/valgrindmemcheckparsertest.h @@ -11,7 +11,6 @@ #include "xmlprotocol/error.h" #include "xmlprotocol/status.h" -#include "xmlprotocol/threadedparser.h" #include "xmlprotocol/parser.h" #include "valgrindrunner.h" @@ -66,12 +65,9 @@ class RunnerDumper : public QObject public: explicit RunnerDumper(ValgrindRunner *runner) { - connect(runner->parser(), &XmlProtocol::ThreadedParser::error, - this, &RunnerDumper::error); - connect(runner->parser(), &XmlProtocol::ThreadedParser::internalError, - this, &RunnerDumper::internalError); - connect(runner->parser(), &XmlProtocol::ThreadedParser::status, - this, &RunnerDumper::status); + connect(runner, &ValgrindRunner::error, this, &RunnerDumper::error); + connect(runner, &ValgrindRunner::internalError, this, &RunnerDumper::internalError); + connect(runner, &ValgrindRunner::status, this, &RunnerDumper::status); connect(runner, &ValgrindRunner::logMessageReceived, this, &RunnerDumper::logMessageReceived); connect(runner, &ValgrindRunner::processErrorReceived, diff --git a/src/plugins/valgrind/valgrindrunner.cpp b/src/plugins/valgrind/valgrindrunner.cpp index fd265444226..804167b7bce 100644 --- a/src/plugins/valgrind/valgrindrunner.cpp +++ b/src/plugins/valgrind/valgrindrunner.cpp @@ -18,6 +18,7 @@ using namespace ProjectExplorer; using namespace Utils; +using namespace Valgrind::XmlProtocol; namespace Valgrind { @@ -58,7 +59,7 @@ public: QHostAddress m_localServerAddress; QTcpServer m_xmlServer; - XmlProtocol::ThreadedParser m_parser; + ThreadedParser m_parser; QTcpServer m_logServer; }; @@ -159,6 +160,9 @@ bool ValgrindRunner::Private::run() ValgrindRunner::ValgrindRunner(QObject *parent) : QObject(parent), d(new Private(this)) { + connect(&d->m_parser, &ThreadedParser::status, this, &ValgrindRunner::status); + connect(&d->m_parser, &ThreadedParser::error, this, &ValgrindRunner::error); + connect(&d->m_parser, &ThreadedParser::internalError, this, &ValgrindRunner::internalError); } ValgrindRunner::~ValgrindRunner() @@ -225,9 +229,4 @@ void ValgrindRunner::stop() d->m_process.stop(); } -XmlProtocol::ThreadedParser *ValgrindRunner::parser() const -{ - return &d->m_parser; -} - } // namespace Valgrind diff --git a/src/plugins/valgrind/valgrindrunner.h b/src/plugins/valgrind/valgrindrunner.h index c6426fba830..c90be9cf927 100644 --- a/src/plugins/valgrind/valgrindrunner.h +++ b/src/plugins/valgrind/valgrindrunner.h @@ -16,7 +16,10 @@ namespace ProjectExplorer { class Runnable; } namespace Valgrind { -namespace XmlProtocol { class ThreadedParser; } +namespace XmlProtocol { +class Error; +class Status; +} class ValgrindRunner : public QObject { @@ -39,8 +42,6 @@ public: bool start(); void stop(); - XmlProtocol::ThreadedParser *parser() const; - signals: void appendMessage(const QString &, Utils::OutputFormat); @@ -50,6 +51,11 @@ signals: void valgrindStarted(qint64 pid); void finished(); + // Parser's signals + void status(const Valgrind::XmlProtocol::Status &status); + void error(const Valgrind::XmlProtocol::Error &error); + void internalError(const QString &errorString); + private: class Private; Private *d; diff --git a/src/plugins/valgrind/valgrindtestrunnertest.cpp b/src/plugins/valgrind/valgrindtestrunnertest.cpp index 4e42572ce72..427b83617af 100644 --- a/src/plugins/valgrind/valgrindtestrunnertest.cpp +++ b/src/plugins/valgrind/valgrindtestrunnertest.cpp @@ -5,7 +5,6 @@ #include "xmlprotocol/frame.h" #include "xmlprotocol/stack.h" -#include "xmlprotocol/threadedparser.h" #include "valgrindrunner.h" #include @@ -117,10 +116,8 @@ void ValgrindTestRunnerTest::init() this, &ValgrindTestRunnerTest::logMessageReceived); connect(m_runner, &ValgrindRunner::processErrorReceived, this, &ValgrindTestRunnerTest::internalError); - connect(m_runner->parser(), &ThreadedParser::internalError, - this, &ValgrindTestRunnerTest::internalError); - connect(m_runner->parser(), &ThreadedParser::error, - this, &ValgrindTestRunnerTest::error); + connect(m_runner, &ValgrindRunner::internalError, this, &ValgrindTestRunnerTest::internalError); + connect(m_runner, &ValgrindRunner::error, this, &ValgrindTestRunnerTest::error); } //BEGIN: Actual test cases diff --git a/tests/auto/valgrind/memcheck/modeldemo.cpp b/tests/auto/valgrind/memcheck/modeldemo.cpp index 7739b441307..493e9820c42 100644 --- a/tests/auto/valgrind/memcheck/modeldemo.cpp +++ b/tests/auto/valgrind/memcheck/modeldemo.cpp @@ -34,11 +34,9 @@ int main(int argc, char *argv[]) runner.setValgrindCommand({VALGRIND_FAKE_PATH, {"-i", PARSERTESTS_DATA_DIR "/memcheck-output-sample1.xml"}}); ModelDemo demo(&runner); - QObject::connect(&runner, &ValgrindRunner::finished, - &demo, &ModelDemo::finished); + QObject::connect(&runner, &ValgrindRunner::finished, &demo, &ModelDemo::finished); ErrorListModel model; - QObject::connect(runner.parser(), &ThreadedParser::error, - &model, &ErrorListModel::addError, + QObject::connect(&runner, &ValgrindRunner::error, &model, &ErrorListModel::addError, Qt::QueuedConnection); QTreeView errorview;