QuickTestUtils: Make 'data' subdir configurable

tst_ecmascripttests wants to call it "test262".

Task-number: QTBUG-100242
Change-Id: I978171a85fe6ade1cc40129db42ef9a5177fe90f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This commit is contained in:
Ulf Hermann 2022-09-02 12:55:39 +02:00
parent 7778028f99
commit 5cda89ce03
2 changed files with 22 additions and 15 deletions

View File

@ -12,18 +12,19 @@ QT_BEGIN_NAMESPACE
QQmlDataTest *QQmlDataTest::m_instance = nullptr;
QQmlDataTest::QQmlDataTest(const char *qmlTestDataDir, FailOnWarningsPolicy failOnWarningsPolicy) :
m_qmlTestDataDir(qmlTestDataDir),
QQmlDataTest::QQmlDataTest(
const char *qmlTestDataDir, FailOnWarningsPolicy failOnWarningsPolicy,
const char *dataSubDir)
: m_qmlTestDataDir(qmlTestDataDir)
#ifdef QT_TESTCASE_BUILDDIR
m_dataDirectory(QTest::qFindTestData("data", m_qmlTestDataDir, 0, QT_TESTCASE_BUILDDIR)),
, m_dataDirectory(QTest::qFindTestData(dataSubDir, m_qmlTestDataDir, 0, QT_TESTCASE_BUILDDIR))
#else
m_dataDirectory(QTest::qFindTestData("data", m_qmlTestDataDir, 0)),
, m_dataDirectory(QTest::qFindTestData(dataSubDir, m_qmlTestDataDir, 0))
#endif
m_dataDirectoryUrl(m_dataDirectory.startsWith(QLatin1Char(':'))
, m_dataDirectoryUrl(m_dataDirectory.startsWith(QLatin1Char(':'))
? QUrl(QLatin1String("qrc") + m_dataDirectory + QLatin1Char('/'))
: QUrl::fromLocalFile(m_dataDirectory + QLatin1Char('/'))),
m_failOnWarningsPolicy(failOnWarningsPolicy)
: QUrl::fromLocalFile(m_dataDirectory + QLatin1Char('/')))
, m_failOnWarningsPolicy(failOnWarningsPolicy)
{
m_instance = this;
if (m_cacheDir.isValid() && !qEnvironmentVariableIsSet("QML_DISK_CACHE_PATH")) {
@ -41,8 +42,10 @@ QQmlDataTest::~QQmlDataTest()
void QQmlDataTest::initTestCase()
{
QVERIFY2(!m_dataDirectory.isEmpty(), qPrintable(QLatin1String(
"'data' directory not found in ") + QFileInfo(QString::fromUtf8(m_qmlTestDataDir)).absolutePath()));
QVERIFY2(!m_dataDirectory.isEmpty(), qPrintable(
QLatin1String("'%1' directory not found in %2").arg(
QString::fromUtf8(m_dataSubDir),
QFileInfo(QString::fromUtf8(m_qmlTestDataDir)).absolutePath())));
m_directory = QFileInfo(m_dataDirectory).absolutePath();
if (m_dataDirectoryUrl.scheme() != QLatin1String("qrc"))
QVERIFY2(QDir::setCurrent(m_directory), qPrintable(QLatin1String("Could not chdir to ") + m_directory));

View File

@ -36,8 +36,10 @@ public:
FailOnWarnings
};
QQmlDataTest(const char *qmlTestDataDir,
FailOnWarningsPolicy failOnWarningsPolicy = FailOnWarningsPolicy::DoNotFailOnWarnings);
QQmlDataTest(
const char *qmlTestDataDir,
FailOnWarningsPolicy failOnWarningsPolicy = FailOnWarningsPolicy::DoNotFailOnWarnings,
const char *dataSubdir = "data");
virtual ~QQmlDataTest();
QString testFile(const QString &fileName) const;
@ -68,9 +70,11 @@ public Q_SLOTS:
private:
static QQmlDataTest *m_instance;
// The directory in which to search for the "data" directory.
// The directory in which to search for m_dataSubDir.
const char *m_qmlTestDataDir = nullptr;
// The path to the "data" directory, if found.
// The subdirectory containing the actual data. Typically "data"
const char *m_dataSubDir = nullptr;
// The path to m_dataSubDir, if found.
const QString m_dataDirectory;
const QUrl m_dataDirectoryUrl;
QTemporaryDir m_cacheDir;