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;
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 (!QDir::current().mkdir("test"))
qFatal("%s: cannot create directory %s",
Q_FUNC_INFO,
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/test")));
m_dirModelTempDir.reset(new QTemporaryDir);
if (!m_dirModelTempDir->isValid())
qFatal("Cannot create temporary directory \"%s\": %s",
qPrintable(QDir::toNativeSeparators(m_dirModelTempDir->path())),
qPrintable(m_dirModelTempDir->errorString()));
QDir tempDir(m_dirModelTempDir->path());
for (int i = 0; i < 26; ++i) {
QString subdir = QString("test/foo_%1").arg(i);
if (!QDir::current().mkdir(subdir))
qFatal("%s: cannot create directory %s",
Q_FUNC_INFO,
qPrintable(QDir::toNativeSeparators(QDir::currentPath()+"/"+subdir)));
const QString subdir = QString("foo_") + QString::number(i);
if (!tempDir.mkdir(subdir))
qFatal("Cannot create directory %s",
qPrintable(QDir::toNativeSeparators(tempDir.path() + QLatin1Char('/') +subdir)));
}
return dirModel->index(QDir::currentPath()+"/test");
return dirModel->index(tempDir.path());
}
if (QSqlQueryModel *queryModel = qobject_cast<QSqlQueryModel *>(model)) {
@ -382,22 +387,8 @@ QModelIndex ModelsToTest::populateTestArea(QAbstractItemModel *model)
*/
void ModelsToTest::cleanupTestArea(QAbstractItemModel *model)
{
if (qobject_cast<QDirModel *>(model))
{
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")));
}
if (qobject_cast<QDirModel *>(model)) {
m_dirModelTempDir.reset();
} else if (qobject_cast<QSqlQueryModel *>(model)) {
QSqlQuery q("DROP TABLE test");
}