aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind/valgrindtestrunnertest.cpp
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2017-07-04 10:23:15 +0200
committerChristian Stenger <christian.stenger@qt.io>2017-07-04 10:55:46 +0000
commitccef9c0294b8b705c3bfac1a12905287442a739b (patch)
tree377ba2de5135fa0c70036b249c671661869697b2 /src/plugins/valgrind/valgrindtestrunnertest.cpp
parent15750db4340de6ab01cd6bc4c1ead68faea27e0e (diff)
Valgrind: Fix plugin unit tests
The original tests were written for an older version of valgrind. Additionally mark startup checks as expected to fail as the error codes are not processed at the moment. Change-Id: Iaad272b5977da3a3395064270d2c9442a3e2f313 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/valgrind/valgrindtestrunnertest.cpp')
-rw-r--r--src/plugins/valgrind/valgrindtestrunnertest.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/plugins/valgrind/valgrindtestrunnertest.cpp b/src/plugins/valgrind/valgrindtestrunnertest.cpp
index d7360d60e83..02541bcdfbf 100644
--- a/src/plugins/valgrind/valgrindtestrunnertest.cpp
+++ b/src/plugins/valgrind/valgrindtestrunnertest.cpp
@@ -37,6 +37,8 @@
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/runnables.h>
+#include <utils/algorithm.h>
+
#include <QDebug>
#include <QTest>
#include <QDir>
@@ -79,6 +81,7 @@ QString ValgrindTestRunnerTest::runTestBinary(const QString &binary, const QStri
const QString &binPath = binPathFileInfo.canonicalFilePath();
debuggee.executable = binPath;
debuggee.environment = Utils::Environment::systemEnvironment();
+ m_runner->setLocalServerAddress(QHostAddress::LocalHost);
m_runner->setValgrindArguments(QStringList() << "--num-callers=50" << "--track-origins=yes" << vArgs);
m_runner->setDebuggee(debuggee);
m_runner->setDevice(ProjectExplorer::DeviceManager::instance()->defaultDevice(
@@ -270,11 +273,14 @@ void ValgrindTestRunnerTest::testLeak4()
QVERIFY(m_logMessages.isEmpty());
- QCOMPARE(m_errors.count(), 3);
+ QVERIFY(m_errors.count() >= 3);
//BEGIN first error
{
- const Error error = m_errors.first();
- QCOMPARE(error.kind(), int(Leak_IndirectlyLost));
+ // depending on the valgrind version the errors can be different - try to find the correct one
+ const Error error = Utils::findOrDefault(m_errors, [](const Error &err) {
+ return err.kind() == Leak_IndirectlyLost;
+ });
+
QCOMPARE(error.leakedBlocks(), qint64(1));
QCOMPARE(error.leakedBytes(), quint64(8));
QCOMPARE(error.stacks().count(), 1);
@@ -309,8 +315,10 @@ void ValgrindTestRunnerTest::testLeak4()
}
//BEGIN second error
{
- const Error error = m_errors.at(1);
- QCOMPARE(error.kind(), int(Leak_DefinitelyLost));
+ const Error error = Utils::findOrDefault(m_errors, [](const Error &err) {
+ return err.kind() == Leak_DefinitelyLost;
+ });
+
QCOMPARE(error.leakedBlocks(), qint64(1));
if (on64bit())
QCOMPARE(error.leakedBytes(), quint64(16));
@@ -337,7 +345,6 @@ void ValgrindTestRunnerTest::testLeak4()
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
}
}
- // TODO add third error check
}
void ValgrindTestRunnerTest::testUninit1()
@@ -595,7 +602,7 @@ void ValgrindTestRunnerTest::testFree1()
QCOMPARE(m_errors.count(), 1);
const Error error = m_errors.first();
QCOMPARE(error.kind(), int(InvalidFree));
- QCOMPARE(error.stacks().count(), 2);
+ QVERIFY(error.stacks().count() >= 2);
//BEGIN first stack
{
const Stack stack = error.stacks().first();
@@ -618,7 +625,7 @@ void ValgrindTestRunnerTest::testFree1()
}
//BEGIN second stack
{
- const Stack stack = error.stacks().last();
+ const Stack stack = error.stacks().at(1);
QCOMPARE(stack.line(), qint64(-1));
QCOMPARE(stack.frames().count(), 2);