aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-07-23 08:30:25 +0200
committerhjk <hjk@qt.io>2019-07-23 14:25:37 +0000
commitb0e52f7ff634e45f325de0e54047acecd73855fa (patch)
tree93a07e7856cdbe036bf60787b396f122e0f38156 /src/plugins/valgrind
parent5efa84b91f009213a28d15d7e94c4ea896bd7347 (diff)
Valgrind: Move to Utils::FilePath in some places
Change-Id: I54d03ccda62121055509fd24c5c98a13f7605964 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/valgrind')
-rw-r--r--src/plugins/valgrind/valgrindengine.cpp7
-rw-r--r--src/plugins/valgrind/valgrindmemcheckparsertest.cpp11
-rw-r--r--src/plugins/valgrind/valgrindrunner.cpp21
-rw-r--r--src/plugins/valgrind/valgrindrunner.h3
-rw-r--r--src/plugins/valgrind/valgrindtestrunnertest.cpp17
5 files changed, 31 insertions, 28 deletions
diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp
index 258ccde6f10..1918efa797d 100644
--- a/src/plugins/valgrind/valgrindengine.cpp
+++ b/src/plugins/valgrind/valgrindengine.cpp
@@ -81,8 +81,11 @@ void ValgrindToolRunner::start()
emit outputReceived(tr("Command line arguments: %1").arg(runnable().debuggeeArgs), DebugFormat);
#endif
- m_runner.setValgrindExecutable(m_settings->valgrindExecutable());
- m_runner.setValgrindArguments(genericToolArguments() + toolArguments());
+ CommandLine valgrind{FilePath::fromString(m_settings->valgrindExecutable())};
+ valgrind.addArgs(genericToolArguments());
+ valgrind.addArgs(toolArguments());
+
+ m_runner.setValgrindCommand(valgrind);
m_runner.setDevice(device());
m_runner.setDebuggee(runnable());
diff --git a/src/plugins/valgrind/valgrindmemcheckparsertest.cpp b/src/plugins/valgrind/valgrindmemcheckparsertest.cpp
index 5543152ec98..a1e4fbf7fad 100644
--- a/src/plugins/valgrind/valgrindmemcheckparsertest.cpp
+++ b/src/plugins/valgrind/valgrindmemcheckparsertest.cpp
@@ -477,9 +477,9 @@ void ValgrindMemcheckParserTest::testValgrindGarbage()
void ValgrindMemcheckParserTest::testParserStop()
{
ValgrindRunner runner;
- runner.setValgrindExecutable(fakeValgrindExecutable());
- runner.setValgrindArguments({QString("--xml-socket=127.0.0.1:%1").arg(m_server->serverPort()),
- "-i", dataFile("memcheck-output-sample1.xml"), "--wait", "5" });
+ runner.setValgrindCommand({FilePath::fromString(fakeValgrindExecutable()),
+ {QString("--xml-socket=127.0.0.1:%1").arg(m_server->serverPort()),
+ "-i", dataFile("memcheck-output-sample1.xml"), "--wait", "5" }});
runner.setProcessChannelMode(QProcess::ForwardedChannels);
runner.setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
@@ -502,7 +502,7 @@ void ValgrindMemcheckParserTest::testRealValgrind()
debuggee.executable = FilePath::fromString(executable);
debuggee.environment = sysEnv;
ValgrindRunner runner;
- runner.setValgrindExecutable("valgrind");
+ runner.setValgrindCommand({FilePath::fromString("valgrind"), {}});
runner.setDebuggee(debuggee);
runner.setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE));
@@ -541,8 +541,7 @@ void ValgrindMemcheckParserTest::testValgrindStartError()
debuggeeExecutable.commandLineArguments = debuggeeArgs;
ValgrindRunner runner;
- runner.setValgrindExecutable(valgrindExe);
- runner.setValgrindArguments(valgrindArgs);
+ runner.setValgrindCommand({FilePath::fromString(valgrindExe), valgrindArgs});
runner.setDebuggee(debuggeeExecutable);
runner.setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE));
diff --git a/src/plugins/valgrind/valgrindrunner.cpp b/src/plugins/valgrind/valgrindrunner.cpp
index cb4666f9425..2bf5fefde46 100644
--- a/src/plugins/valgrind/valgrindrunner.cpp
+++ b/src/plugins/valgrind/valgrindrunner.cpp
@@ -63,8 +63,7 @@ public:
ApplicationLauncher m_findPID;
- QString m_valgrindExecutable;
- QStringList m_valgrindArguments;
+ CommandLine m_valgrindCommand;
QHostAddress localServerAddress;
QProcess::ProcessChannelMode channelMode = QProcess::SeparateChannels;
@@ -82,7 +81,7 @@ public:
bool ValgrindRunner::Private::run()
{
- CommandLine cmd{FilePath::fromString(m_valgrindExecutable)};
+ CommandLine cmd{m_valgrindCommand.executable(), {}};
if (!localServerAddress.isNull()) {
if (!q->startServers())
@@ -112,7 +111,7 @@ bool ValgrindRunner::Private::run()
if (enableXml)
cmd.addArg("--xml=yes");
}
- cmd.addArgs(m_valgrindArguments);
+ cmd.addArgs(m_valgrindCommand.arguments(), CommandLine::Raw);
m_valgrindProcess.setProcessChannelMode(channelMode);
// consider appending our options last so they override any interfering user-supplied options
@@ -187,7 +186,8 @@ void ValgrindRunner::Private::remoteProcessStarted()
// hence we need to do something more complex...
// plain path to exe, m_valgrindExe contains e.g. env vars etc. pp.
- const QString proc = m_valgrindExecutable.split(' ').last();
+ // FIXME: Really?
+ const QString proc = m_valgrindCommand.executable().toString().split(' ').last();
Runnable findPid;
findPid.executable = FilePath::fromString("/bin/sh");
@@ -227,7 +227,7 @@ void ValgrindRunner::Private::findPidOutputReceived(const QString &out)
void ValgrindRunner::Private::closed(bool success)
{
- Q_UNUSED(success);
+ Q_UNUSED(success)
// QTC_ASSERT(m_remote.m_process, return);
// m_remote.m_errorString = m_remote.m_process->errorString();
@@ -263,14 +263,9 @@ ValgrindRunner::~ValgrindRunner()
d = nullptr;
}
-void ValgrindRunner::setValgrindExecutable(const QString &executable)
+void ValgrindRunner::setValgrindCommand(const Utils::CommandLine &command)
{
- d->m_valgrindExecutable = executable;
-}
-
-void ValgrindRunner::setValgrindArguments(const QStringList &toolArguments)
-{
- d->m_valgrindArguments = toolArguments;
+ d->m_valgrindCommand = command;
}
void ValgrindRunner::setDebuggee(const Runnable &debuggee)
diff --git a/src/plugins/valgrind/valgrindrunner.h b/src/plugins/valgrind/valgrindrunner.h
index 8278c942910..647cac8bae8 100644
--- a/src/plugins/valgrind/valgrindrunner.h
+++ b/src/plugins/valgrind/valgrindrunner.h
@@ -44,8 +44,7 @@ public:
explicit ValgrindRunner(QObject *parent = nullptr);
~ValgrindRunner() override;
- void setValgrindExecutable(const QString &executable);
- void setValgrindArguments(const QStringList &toolArguments);
+ void setValgrindCommand(const Utils::CommandLine &command);
void setDebuggee(const ProjectExplorer::Runnable &debuggee);
void setProcessChannelMode(QProcess::ProcessChannelMode mode);
void setLocalServerAddress(const QHostAddress &localServerAddress);
diff --git a/src/plugins/valgrind/valgrindtestrunnertest.cpp b/src/plugins/valgrind/valgrindtestrunnertest.cpp
index 1a25296883a..8ffcd0c6747 100644
--- a/src/plugins/valgrind/valgrindtestrunnertest.cpp
+++ b/src/plugins/valgrind/valgrindtestrunnertest.cpp
@@ -46,7 +46,9 @@
#define HEADER_LENGTH 25
+using namespace ProjectExplorer;
using namespace Valgrind::XmlProtocol;
+using namespace Utils;
namespace Valgrind {
namespace Test {
@@ -77,15 +79,21 @@ QString ValgrindTestRunnerTest::runTestBinary(const QString &binary, const QStri
const QFileInfo binPathFileInfo(appBinDir, binary);
if (!binPathFileInfo.isExecutable())
return QString();
- ProjectExplorer::Runnable debuggee;
+
+ Runnable debuggee;
const QString &binPath = binPathFileInfo.canonicalFilePath();
debuggee.executable = Utils::FilePath::fromString(binPath);
debuggee.environment = Utils::Environment::systemEnvironment();
+
+ CommandLine valgrind{FilePath::fromString("valgrind")};
+ valgrind.addArgs({"--num-callers=50", "--track-origins=yes"});
+ valgrind.addArgs(vArgs);
+
m_runner->setLocalServerAddress(QHostAddress::LocalHost);
- m_runner->setValgrindArguments(QStringList() << "--num-callers=50" << "--track-origins=yes" << vArgs);
+ m_runner->setValgrindCommand(valgrind);
m_runner->setDebuggee(debuggee);
- m_runner->setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
- Core::Id(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE)));
+ m_runner->setDevice(DeviceManager::instance()->defaultDevice(
+ ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE));
m_runner->start();
m_runner->waitForFinished();
return binPath;
@@ -131,7 +139,6 @@ void ValgrindTestRunnerTest::init()
Q_ASSERT(!m_runner);
m_runner = new ValgrindRunner;
- m_runner->setValgrindExecutable("valgrind");
m_runner->setProcessChannelMode(QProcess::ForwardedChannels);
connect(m_runner, &ValgrindRunner::logMessageReceived,
this, &ValgrindTestRunnerTest::logMessageReceived);