diff --git a/src/plugins/valgrind/valgrindmemcheckparsertest.cpp b/src/plugins/valgrind/valgrindmemcheckparsertest.cpp index 45780602d9d..8cbf4e3e992 100644 --- a/src/plugins/valgrind/valgrindmemcheckparsertest.cpp +++ b/src/plugins/valgrind/valgrindmemcheckparsertest.cpp @@ -11,10 +11,13 @@ #include "xmlprotocol/status.h" #include "xmlprotocol/suppression.h" +#include #include #include +#include #include +#include #include using namespace Utils; @@ -24,14 +27,14 @@ QT_BEGIN_NAMESPACE namespace QTest { template<> -inline bool qCompare(int const &t1, MemcheckError const &t2, - char const *actual, char const *expected, char const *file, int line) +bool qCompare(int const &t1, MemcheckError const &t2, + char const *actual, char const *expected, char const *file, int line) { return qCompare(t1, int(t2), actual, expected, file, line); } -inline bool qCompare(const QString &t1, char const *t2, - char const *actual, char const *expected, char const *file, int line) +bool qCompare(const QString &t1, char const *t2, + char const *actual, char const *expected, char const *file, int line) { return qCompare(t1, QString::fromLatin1(t2), actual, expected, file, line); } @@ -39,7 +42,37 @@ inline bool qCompare(const QString &t1, char const *t2, } // namespace QTest QT_END_NAMESPACE -namespace Valgrind::Test { +namespace Valgrind::Internal { + +class ValgrindMemcheckParserTest : public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void cleanup(); + + void testMemcheckSample1(); + void testMemcheckSample2(); + void testMemcheckSample3(); + void testMemcheckCharm(); + void testHelgrindSample1(); + + void testValgrindCrash(); + void testValgrindGarbage(); + + void testParserStop(); + void testRealValgrind(); + void testValgrindStartError_data(); + void testValgrindStartError(); + +private: + void initTest(const QString &testfile, const QStringList &otherArgs = {}); + + QTcpServer *m_server = nullptr; + std::unique_ptr m_process; + std::unique_ptr m_socket; +}; static void dumpError(const Error &e) { @@ -555,4 +588,11 @@ void ValgrindMemcheckParserTest::testValgrindStartError() // just finish without deadlock and we are fine } -} // namespace Valgrind::Test +QObject *createValgrindMemcheckParserTest() +{ + return new ValgrindMemcheckParserTest; +} + +} // namespace Valgrind::Internal + +#include "valgrindmemcheckparsertest.moc" diff --git a/src/plugins/valgrind/valgrindmemcheckparsertest.h b/src/plugins/valgrind/valgrindmemcheckparsertest.h index 0d10ac0617f..509e7f4ac38 100644 --- a/src/plugins/valgrind/valgrindmemcheckparsertest.h +++ b/src/plugins/valgrind/valgrindmemcheckparsertest.h @@ -3,45 +3,10 @@ #pragma once -#include +#include -#include -#include +namespace Valgrind::Internal { -QT_BEGIN_NAMESPACE -class QTcpServer; -QT_END_NAMESPACE +QObject *createValgrindMemcheckParserTest(); -namespace Valgrind::Test { - -class ValgrindMemcheckParserTest : public QObject -{ - Q_OBJECT - -private slots: - void initTestCase(); - void cleanup(); - - void testMemcheckSample1(); - void testMemcheckSample2(); - void testMemcheckSample3(); - void testMemcheckCharm(); - void testHelgrindSample1(); - - void testValgrindCrash(); - void testValgrindGarbage(); - - void testParserStop(); - void testRealValgrind(); - void testValgrindStartError_data(); - void testValgrindStartError(); - -private: - void initTest(const QString &testfile, const QStringList &otherArgs = {}); - - QTcpServer *m_server = nullptr; - std::unique_ptr m_process; - std::unique_ptr m_socket; -}; - -} // namespace Valgrind::Test +} // Valgrind::Internal diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp index ee5ad4b0bb7..59b495f6adb 100644 --- a/src/plugins/valgrind/valgrindplugin.cpp +++ b/src/plugins/valgrind/valgrindplugin.cpp @@ -54,8 +54,8 @@ public: RunConfiguration::registerAspect(); #ifdef WITH_TESTS - addTest(); - addTest(); + addTestCreator(createValgrindMemcheckParserTest); + addTestCreator(createValgrindTestRunnerTest); #endif } }; 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 #include +#include #include #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 m_logMessages; + QList 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" diff --git a/src/plugins/valgrind/valgrindtestrunnertest.h b/src/plugins/valgrind/valgrindtestrunnertest.h index 39ee370f44d..8669c2475d1 100644 --- a/src/plugins/valgrind/valgrindtestrunnertest.h +++ b/src/plugins/valgrind/valgrindtestrunnertest.h @@ -3,53 +3,10 @@ #pragma once -#include "xmlprotocol/error.h" - #include -#include -namespace Valgrind { class ValgrindProcess; } +namespace Valgrind::Internal { -namespace Valgrind::Test { +QObject *createValgrindTestRunnerTest(); -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 m_logMessages; - QList m_errors; - bool m_expectCrash = false; -}; - -} // namespace Valgrind::Test +} // Valgrind::Internal