mirror of https://github.com/qt/qtbase.git
tst_QTemporaryFile: replace custom struct with QScopeGuard
Simplify the code by using QScopeGuard. In particular, this makes clear what "reset()" was supposed to do: dismiss. Every Qt developer knows the semantics of QScopeGuard, but this custom class has to be learned by every reader anew. As a drive-by, fix the spacing inside parentheses. Amends the start of the public history. Pick-to: 6.10 6.9 6.8 6.5 Change-Id: I20b80fe551951a5aba01a8996c4934b574d34fac Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
8c626ad667
commit
7943730389
|
@ -826,37 +826,26 @@ void tst_QTemporaryFile::autoRemoveAfterFailedRename()
|
|||
#if defined(Q_OS_VXWORKS)
|
||||
QSKIP("QTBUG-130066");
|
||||
#endif
|
||||
struct CleanOnReturn
|
||||
{
|
||||
~CleanOnReturn()
|
||||
{
|
||||
|
||||
QString tempName;
|
||||
auto cleaner = qScopeGuard([&] {
|
||||
if (!tempName.isEmpty())
|
||||
QFile::remove(tempName);
|
||||
}
|
||||
|
||||
void reset()
|
||||
{
|
||||
tempName.clear();
|
||||
}
|
||||
|
||||
QString tempName;
|
||||
};
|
||||
|
||||
CleanOnReturn cleaner;
|
||||
});
|
||||
|
||||
{
|
||||
QTemporaryFile file;
|
||||
QVERIFY( file.open() );
|
||||
cleaner.tempName = file.fileName();
|
||||
tempName = file.fileName();
|
||||
|
||||
QVERIFY( QFile::exists(cleaner.tempName) );
|
||||
QVERIFY(QFile::exists(tempName));
|
||||
QVERIFY( !QFileInfo("i-do-not-exist").isDir() );
|
||||
QVERIFY( !file.rename("i-do-not-exist/file.txt") );
|
||||
QVERIFY( QFile::exists(cleaner.tempName) );
|
||||
QVERIFY(QFile::exists(tempName));
|
||||
}
|
||||
|
||||
QVERIFY( !QFile::exists(cleaner.tempName) );
|
||||
cleaner.reset();
|
||||
QVERIFY(!QFile::exists(tempName));
|
||||
cleaner.dismiss(); // would fail: file is known to no longer exist
|
||||
}
|
||||
|
||||
void tst_QTemporaryFile::createNativeFile_data()
|
||||
|
|
Loading…
Reference in New Issue