tst_QFileSystemModel: Stabilize readOnly(), sortPersistentIndex()
The tests start to show flakyness on Linux in 5.10 (rowCount() check failing). This seems to point to a race condition between the files showing up and the file system watchers of QFileSystemModel starting. To fix this, close the file and wait until it shows up in the directory before pointing the QFileSystemModel to it. The tests then no longer rely on the file system watchers. Change-Id: I39cffb4cacf6843e8e4180efb405345307c78dd8 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>bb10
parent
6508fdca1d
commit
58b70c2f1a
|
|
@ -239,13 +239,18 @@ void tst_QFileSystemModel::readOnly()
|
|||
QCOMPARE(model->isReadOnly(), true);
|
||||
QTemporaryFile file(flatDirTestPath + QStringLiteral("/XXXXXX.dat"));
|
||||
QVERIFY2(file.open(), qPrintable(file.errorString()));
|
||||
const QString fileName = file.fileName();
|
||||
file.close();
|
||||
|
||||
const QFileInfo fileInfo(fileName);
|
||||
QTRY_VERIFY(QDir(flatDirTestPath).entryInfoList().contains(fileInfo));
|
||||
QModelIndex root = model->setRootPath(flatDirTestPath);
|
||||
|
||||
QTRY_VERIFY(model->rowCount(root) > 0);
|
||||
QVERIFY(!(model->flags(model->index(file.fileName())) & Qt::ItemIsEditable));
|
||||
QVERIFY(!(model->flags(model->index(fileName)) & Qt::ItemIsEditable));
|
||||
model->setReadOnly(false);
|
||||
QCOMPARE(model->isReadOnly(), false);
|
||||
QVERIFY(model->flags(model->index(file.fileName())) & Qt::ItemIsEditable);
|
||||
QVERIFY(model->flags(model->index(fileName)) & Qt::ItemIsEditable);
|
||||
}
|
||||
|
||||
class CustomFileIconProvider : public QFileIconProvider
|
||||
|
|
@ -729,6 +734,9 @@ void tst_QFileSystemModel::sortPersistentIndex()
|
|||
{
|
||||
QTemporaryFile file(flatDirTestPath + QStringLiteral("/XXXXXX.dat"));
|
||||
QVERIFY2(file.open(), qPrintable(file.errorString()));
|
||||
const QFileInfo fileInfo(file.fileName());
|
||||
file.close();
|
||||
QTRY_VERIFY(QDir(flatDirTestPath).entryInfoList().contains(fileInfo));
|
||||
QModelIndex root = model->setRootPath(flatDirTestPath);
|
||||
QTRY_VERIFY(model->rowCount(root) > 0);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue