summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestcase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testlib/qtestcase.cpp')
-rw-r--r--src/testlib/qtestcase.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 619376fd33..cfd3598072 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -2157,7 +2157,8 @@ QSharedPointer<QTemporaryDir> QTest::qExtractTestData(const QString &dirName)
/*! \internal
*/
-QString QTest::qFindTestData(const QString& base, const char *file, int line, const char *builddir)
+QString QTest::qFindTestData(const QString& base, const char *file, int line, const char *builddir,
+ const char *sourcedir)
{
QString found;
@@ -2267,6 +2268,20 @@ QString QTest::qFindTestData(const QString& base, const char *file, int line, co
}
}
+ // 7. Try the supplied source directory
+ if (found.isEmpty() && sourcedir) {
+ const QString candidate = QFile::decodeName(sourcedir) % QLatin1Char('/') % base;
+ if (QFileInfo::exists(candidate)) {
+ found = candidate;
+ } else if (QTestLog::verboseLevel() >= 2) {
+ QTestLog::info(qPrintable(
+ QString::fromLatin1("testdata %1 not found in supplied source directory [%2]")
+ .arg(base, QDir::toNativeSeparators(candidate))),
+ file, line);
+ }
+ }
+
+
if (found.isEmpty()) {
QTest::qWarn(qPrintable(
QString::fromLatin1("testdata %1 could not be located!").arg(base)),
@@ -2282,9 +2297,10 @@ QString QTest::qFindTestData(const QString& base, const char *file, int line, co
/*! \internal
*/
-QString QTest::qFindTestData(const char *base, const char *file, int line, const char *builddir)
+QString QTest::qFindTestData(const char *base, const char *file, int line, const char *builddir,
+ const char *sourcedir)
{
- return qFindTestData(QFile::decodeName(base), file, line, builddir);
+ return qFindTestData(QFile::decodeName(base), file, line, builddir, sourcedir);
}
/*! \internal