tst_qdir: Move QFINDTESTDATA() from init() to constructor.

Check result in initTestData().

Previously, QFINDTESTDATA() was repeatedly invoked in init(). The
data-driven cd() test then failed when invoked stand-alone since
cd_data(), which relies on the data path, is executed before init().

Task-number: QTBUG-40067
Change-Id: I91039247e8dcaedd92fa990f1b5f82bc54b17c60
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
Friedemann Kleint 2014-07-09 08:56:27 +02:00
parent 71e1976bcc
commit cdf9aed630

View File

@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal ** Contact: http://www.qt-project.org/legal
** **
** This file is part of the test suite of the Qt Toolkit. ** This file is part of the test suite of the Qt Toolkit.
@ -72,8 +72,12 @@ class tst_QDir : public QObject
{ {
Q_OBJECT Q_OBJECT
public:
tst_QDir();
private slots: private slots:
void init(); void init();
void initTestCase();
void cleanupTestCase(); void cleanupTestCase();
void getSetCheck(); void getSetCheck();
@ -198,19 +202,25 @@ private slots:
void cdBelowRoot(); void cdBelowRoot();
private: private:
QString m_dataPath; const QString m_dataPath;
}; };
tst_QDir::tst_QDir()
: m_dataPath(QFileInfo(QFINDTESTDATA("testData")).absolutePath())
{
}
void tst_QDir::init() void tst_QDir::init()
{ {
// Directory under which testdata can be found.
m_dataPath = QFileInfo(QFINDTESTDATA("testData")).absolutePath();
QVERIFY2(!m_dataPath.isEmpty(), "test data not found");
// Some tests want to use "." as relative path to data. // Some tests want to use "." as relative path to data.
QVERIFY2(QDir::setCurrent(m_dataPath), qPrintable("Could not chdir to " + m_dataPath)); QVERIFY2(QDir::setCurrent(m_dataPath), qPrintable("Could not chdir to " + m_dataPath));
} }
void tst_QDir::initTestCase()
{
QVERIFY2(!m_dataPath.isEmpty(), "test data not found");
}
void tst_QDir::cleanupTestCase() void tst_QDir::cleanupTestCase()
{ {
QDir(QDir::currentPath() + "/tmpdir").removeRecursively(); QDir(QDir::currentPath() + "/tmpdir").removeRecursively();