aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind/valgrindmemcheckparsertest.cpp
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2016-12-07 08:24:33 +0100
committerChristian Stenger <christian.stenger@qt.io>2019-05-10 05:47:09 +0000
commit482fd5f0fde81d76652eade9dc19ae3e54909fe0 (patch)
treec60e637bdfc7263fde96034e88ebdb5db328218f /src/plugins/valgrind/valgrindmemcheckparsertest.cpp
parent756e96f270a703097fc02e5ae9c84c09bf3933f7 (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.cpp46
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);