ValgrindRunner: Hide ThreadedParser

Expose its signals instead.

Change-Id: I0daeb2e510c30678f4f13d880bc8108510c4f32e
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2023-08-05 10:17:55 +02:00
parent 43dca6ec78
commit 91f01c17f9
6 changed files with 24 additions and 29 deletions

View File

@@ -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);
}

View File

@@ -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,

View File

@@ -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

View File

@@ -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;

View File

@@ -5,7 +5,6 @@
#include "xmlprotocol/frame.h"
#include "xmlprotocol/stack.h"
#include "xmlprotocol/threadedparser.h"
#include "valgrindrunner.h"
#include <projectexplorer/devicesupport/devicemanager.h>
@@ -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

View File

@@ -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;