tst_QTemporaryFile: Run in temporary directory.

The test leaks a file (named qt_...xxx) in QDir::tempPath(). Moreover,
when tests fail, it can happen that more files are leaked and subsequent
runs do not recover since the check for non-existence of those files fails.

Change-Id: Iaea6d09ee7c271903a1b9c63e263c19f9e90bba9
Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
Friedemann Kleint 2016-06-02 11:31:23 +02:00
parent 23bed9f820
commit 95f1f6f719

View File

@ -34,6 +34,7 @@
#include <QtTest/QtTest> #include <QtTest/QtTest>
#include <qcoreapplication.h> #include <qcoreapplication.h>
#include <qstring.h> #include <qstring.h>
#include <qtemporarydir.h>
#include <qtemporaryfile.h> #include <qtemporaryfile.h>
#include <qfile.h> #include <qfile.h>
#include <qdir.h> #include <qdir.h>
@ -86,13 +87,15 @@ private slots:
void QTBUG_4796(); void QTBUG_4796();
void guaranteeUnique(); void guaranteeUnique();
private: private:
QTemporaryDir m_temporaryDir;
QString m_previousCurrent; QString m_previousCurrent;
}; };
void tst_QTemporaryFile::initTestCase() void tst_QTemporaryFile::initTestCase()
{ {
QVERIFY2(m_temporaryDir.isValid(), qPrintable(m_temporaryDir.errorString()));
m_previousCurrent = QDir::currentPath(); m_previousCurrent = QDir::currentPath();
QDir::setCurrent(QDir::tempPath()); QVERIFY(QDir::setCurrent(m_temporaryDir.path()));
// For QTBUG_4796 // For QTBUG_4796
QVERIFY(QDir("test-XXXXXX").exists() || QDir().mkdir("test-XXXXXX")); QVERIFY(QDir("test-XXXXXX").exists() || QDir().mkdir("test-XXXXXX"));
@ -119,9 +122,6 @@ void tst_QTemporaryFile::initTestCase()
void tst_QTemporaryFile::cleanupTestCase() void tst_QTemporaryFile::cleanupTestCase()
{ {
// From QTBUG_4796
QVERIFY(QDir().rmdir("test-XXXXXX"));
QDir::setCurrent(m_previousCurrent); QDir::setCurrent(m_previousCurrent);
} }