tst_QItemModel: Use a QTemporaryDir for test data of QDirModel.

Change-Id: I5943c6656da93d36e1955ac038bf656831da0c5c
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
This commit is contained in:
Friedemann Kleint 2015-11-25 09:18:19 +01:00
parent fb69a09a24
commit 884e3bdd5d

View File

@ -78,6 +78,9 @@ public:
QList<test> tests; QList<test> tests;
static void setupDatabase(); static void setupDatabase();
private:
QScopedPointer<QTemporaryDir> m_dirModelTempDir;
}; };
@ -306,18 +309,20 @@ QModelIndex ModelsToTest::populateTestArea(QAbstractItemModel *model)
} }
if (QDirModel *dirModel = qobject_cast<QDirModel *>(model)) { if (QDirModel *dirModel = qobject_cast<QDirModel *>(model)) {
if (!QDir::current().mkdir("test")) m_dirModelTempDir.reset(new QTemporaryDir);
qFatal("%s: cannot create directory %s", if (!m_dirModelTempDir->isValid())
Q_FUNC_INFO, qFatal("Cannot create temporary directory \"%s\": %s",
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/test"))); qPrintable(QDir::toNativeSeparators(m_dirModelTempDir->path())),
qPrintable(m_dirModelTempDir->errorString()));
QDir tempDir(m_dirModelTempDir->path());
for (int i = 0; i < 26; ++i) { for (int i = 0; i < 26; ++i) {
QString subdir = QString("test/foo_%1").arg(i); const QString subdir = QString("foo_") + QString::number(i);
if (!QDir::current().mkdir(subdir)) if (!tempDir.mkdir(subdir))
qFatal("%s: cannot create directory %s", qFatal("Cannot create directory %s",
Q_FUNC_INFO, qPrintable(QDir::toNativeSeparators(tempDir.path() + QLatin1Char('/') +subdir)));
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/"+subdir)));
} }
return dirModel->index(QDir::currentPath()+"/test"); return dirModel->index(tempDir.path());
} }
if (QSqlQueryModel *queryModel = qobject_cast<QSqlQueryModel *>(model)) { if (QSqlQueryModel *queryModel = qobject_cast<QSqlQueryModel *>(model)) {
@ -382,22 +387,8 @@ QModelIndex ModelsToTest::populateTestArea(QAbstractItemModel *model)
*/ */
void ModelsToTest::cleanupTestArea(QAbstractItemModel *model) void ModelsToTest::cleanupTestArea(QAbstractItemModel *model)
{ {
if (qobject_cast<QDirModel *>(model)) if (qobject_cast<QDirModel *>(model)) {
{ m_dirModelTempDir.reset();
if (QDir(QDir::currentPath()+"/test").exists())
{
for (int i = 0; i < 26; ++i) {
QString subdir(QString("test/foo_%1").arg(i));
if (!QDir::current().rmdir(subdir))
qFatal("%s: cannot remove directory %s",
Q_FUNC_INFO,
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/"+subdir)));
}
if (!QDir::current().rmdir("test"))
qFatal("%s: cannot remove directory %s",
Q_FUNC_INFO,
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/test")));
}
} else if (qobject_cast<QSqlQueryModel *>(model)) { } else if (qobject_cast<QSqlQueryModel *>(model)) {
QSqlQuery q("DROP TABLE test"); QSqlQuery q("DROP TABLE test");
} }