aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind/valgrindtestrunnertest.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2024-01-19 17:37:27 +0100
committerhjk <[email protected]>2024-01-19 17:00:02 +0000
commitcd4f62ebf8583de0873f67fe6c166132c5953322 (patch)
tree750c25f616037f71659d9806a12620f82793a0ec /src/plugins/valgrind/valgrindtestrunnertest.cpp
parenteea8f42ea4ccce7195afa03733e46185339cec2a (diff)
Valgrind: Move test object creation closer to tested code
Change-Id: I896c7f7c1d99a62bc869f3511c036123a78afc29 Reviewed-by: Jarek Kobus <[email protected]>
Diffstat (limited to 'src/plugins/valgrind/valgrindtestrunnertest.cpp')
-rw-r--r--src/plugins/valgrind/valgrindtestrunnertest.cpp55
1 files changed, 51 insertions, 4 deletions
diff --git a/src/plugins/valgrind/valgrindtestrunnertest.cpp b/src/plugins/valgrind/valgrindtestrunnertest.cpp
index 73371e09164..7d53efca33d 100644
--- a/src/plugins/valgrind/valgrindtestrunnertest.cpp
+++ b/src/plugins/valgrind/valgrindtestrunnertest.cpp
@@ -4,6 +4,7 @@
#include "valgrindtestrunnertest.h"
#include "valgrindprocess.h"
+#include "xmlprotocol/error.h"
#include "xmlprotocol/frame.h"
#include "xmlprotocol/stack.h"
@@ -12,6 +13,7 @@
#include <QDebug>
#include <QDir>
+#include <QStringList>
#include <QTest>
#define HEADER_LENGTH 3
@@ -19,9 +21,7 @@
using namespace Valgrind::XmlProtocol;
using namespace Utils;
-namespace Valgrind::Test {
-
-//BEGIN Test Helpers and boilerplate code
+namespace Valgrind::Internal {
static const QString appSrcDir(TESTRUNNER_SRC_DIR);
static const QString appBinDir(TESTRUNNER_APP_DIR);
@@ -36,6 +36,46 @@ static QString srcDirForApp(const QString &app)
return QDir::cleanPath(appSrcDir + '/' + app);
}
+class ValgrindTestRunnerTest : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit ValgrindTestRunnerTest(QObject *parent = nullptr);
+
+private slots:
+ void init();
+ void cleanup();
+
+ void testLeak1();
+ void testLeak2();
+ void testLeak3();
+ void testLeak4();
+
+ void testUninit1();
+ void testUninit2();
+ void testUninit3();
+
+ void testFree1();
+ void testFree2();
+
+ void testInvalidjump();
+ void testSyscall();
+ void testOverlap();
+
+ void logMessageReceived(const QByteArray &message);
+ void internalError(const QString &error);
+ void error(const Valgrind::XmlProtocol::Error &error);
+
+private:
+ QString runTestBinary(const QString &binary, const QStringList &vArgs = QStringList());
+
+ ValgrindProcess *m_runner = nullptr;
+ QList<QByteArray> m_logMessages;
+ QList<XmlProtocol::Error> m_errors;
+ bool m_expectCrash = false;
+};
+
ValgrindTestRunnerTest::ValgrindTestRunnerTest(QObject *parent)
: QObject(parent)
{
@@ -749,4 +789,11 @@ void ValgrindTestRunnerTest::testOverlap()
}
}
-} // namespace Valgrind::Test
+QObject *createValgrindTestRunnerTest()
+{
+ return new ValgrindTestRunnerTest;
+}
+
+} // namespace Valgrind::Internal
+
+#include "valgrindtestrunnertest.moc"