diff options
author | Christian Stenger <christian.stenger@qt.io> | 2016-12-07 08:24:33 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2019-05-10 05:47:09 +0000 |
commit | 482fd5f0fde81d76652eade9dc19ae3e54909fe0 (patch) | |
tree | c60e637bdfc7263fde96034e88ebdb5db328218f /src/plugins/valgrind/valgrindmemcheckparsertest.cpp | |
parent | 756e96f270a703097fc02e5ae9c84c09bf3933f7 (diff) |
Valgrind: Use external test data if available
External data files will be tried to search inside a path
that is specified by the environment variable
QTC_TEST_EXTRADATALOCATION and need to be present inside a
subdirectory called 'valgrind'.
Change-Id: I8f192b2862e4c269ed17b7a81000eb3dabfc2efb
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/valgrind/valgrindmemcheckparsertest.cpp')
-rw-r--r-- | src/plugins/valgrind/valgrindmemcheckparsertest.cpp | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/src/plugins/valgrind/valgrindmemcheckparsertest.cpp b/src/plugins/valgrind/valgrindmemcheckparsertest.cpp index ad2c3c8d2b..3bb2ba4ebf 100644 --- a/src/plugins/valgrind/valgrindmemcheckparsertest.cpp +++ b/src/plugins/valgrind/valgrindmemcheckparsertest.cpp @@ -111,6 +111,18 @@ static QString dataFile(const QString &file) return QString(PARSERTESTS_DATA_DIR) + '/' + file; } +static QString extraDataFile(const QString &file) +{ + static QString prefix = QString::fromLocal8Bit(qgetenv("QTC_TEST_EXTRADATALOCATION")); + if (prefix.isEmpty()) + return QString(); + + QFileInfo fi(QString(prefix + "/valgrind"), file); + if (fi.exists()) + return fi.canonicalFilePath(); + return QString(); +} + void ValgrindMemcheckParserTest::initTestCase() { m_server = new QTcpServer(this); @@ -131,7 +143,7 @@ void ValgrindMemcheckParserTest::initTest(const QString &testfile, const QString m_process->start( fakeValgrind, QStringList({QString("--xml-socket=127.0.0.1:%1").arg(m_server->serverPort()), "-i", - dataFile(testfile)}) << otherArgs); + testfile}) << otherArgs); QVERIFY(m_process->waitForStarted(5000)); QCOMPARE(m_process->state(), QProcess::Running); @@ -155,9 +167,11 @@ void ValgrindMemcheckParserTest::cleanup() void ValgrindMemcheckParserTest::testHelgrindSample1() { - QSKIP("testfile does not exist"); + const QString file = extraDataFile("helgrind-output-sample1.xml"); + if (file.isEmpty()) + QSKIP("test file does not exist"); - initTest("helgrind-output-sample1.xml"); + initTest(file); QList<Error> expectedErrors; { @@ -251,7 +265,7 @@ void ValgrindMemcheckParserTest::testHelgrindSample1() void ValgrindMemcheckParserTest::testMemcheckSample1() { - initTest("memcheck-output-sample1.xml"); + initTest(dataFile("memcheck-output-sample1.xml")); QList<Error> expectedErrors; { @@ -327,9 +341,11 @@ void ValgrindMemcheckParserTest::testMemcheckSample1() void ValgrindMemcheckParserTest::testMemcheckSample2() { - QSKIP("testfile does not exist"); + const QString file = extraDataFile("memcheck-output-sample2.xml"); + if (file.isEmpty()) + QSKIP("test file does not exist"); - initTest("memcheck-output-sample2.xml"); + initTest(file); Parser parser; Recorder rec(&parser); @@ -353,9 +369,11 @@ void ValgrindMemcheckParserTest::testMemcheckSample2() void ValgrindMemcheckParserTest::testMemcheckSample3() { - QSKIP("testfile does not exist"); + const QString file = extraDataFile("memcheck-output-sample3.xml"); + if (file.isEmpty()) + QSKIP("test file does not exist"); - initTest("memcheck-output-sample3.xml"); + initTest(file); Parser parser; Recorder rec(&parser); @@ -405,10 +423,12 @@ void ValgrindMemcheckParserTest::testMemcheckSample3() void ValgrindMemcheckParserTest::testMemcheckCharm() { - QSKIP("testfile does not exist"); - // a somewhat larger file, to make sure buffering and partial I/O works ok - initTest("memcheck-output-untitled.xml"); + const QString file = extraDataFile("memcheck-output-charm.xml"); + if (file.isEmpty()) + QSKIP("test file does not exist"); + + initTest(file); Parser parser; Recorder rec(&parser); @@ -426,7 +446,7 @@ void ValgrindMemcheckParserTest::testMemcheckCharm() void ValgrindMemcheckParserTest::testValgrindCrash() { - initTest("memcheck-output-sample1.xml", QStringList("--crash")); + initTest(dataFile("memcheck-output-sample1.xml"), QStringList("--crash")); Parser parser; parser.parse(m_socket); @@ -441,7 +461,7 @@ void ValgrindMemcheckParserTest::testValgrindCrash() void ValgrindMemcheckParserTest::testValgrindGarbage() { - initTest("memcheck-output-sample1.xml", QStringList("--garbage")); + initTest(dataFile("memcheck-output-sample1.xml"), QStringList("--garbage")); Parser parser; parser.parse(m_socket); |