diff options
Diffstat (limited to 'tests/auto/qfile')
-rw-r--r-- | tests/auto/qfile/rename-fallback.qrc | 5 | ||||
-rw-r--r-- | tests/auto/qfile/test/test.pro | 2 | ||||
-rw-r--r-- | tests/auto/qfile/tst_qfile.cpp | 78 |
3 files changed, 53 insertions, 32 deletions
diff --git a/tests/auto/qfile/rename-fallback.qrc b/tests/auto/qfile/rename-fallback.qrc new file mode 100644 index 0000000..c8a894a --- /dev/null +++ b/tests/auto/qfile/rename-fallback.qrc @@ -0,0 +1,5 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource> + <file>rename-fallback.qrc</file> +</qresource> +</RCC> diff --git a/tests/auto/qfile/test/test.pro b/tests/auto/qfile/test/test.pro index 2293bd7..68f4c05 100644 --- a/tests/auto/qfile/test/test.pro +++ b/tests/auto/qfile/test/test.pro @@ -17,7 +17,7 @@ QT = core network DEFINES += SRCDIR=\\\"$$PWD/../\\\" } -RESOURCES += ../qfile.qrc +RESOURCES += ../qfile.qrc ../rename-fallback.qrc TARGET = ../tst_qfile diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 48902c7..98e1859 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -76,10 +76,6 @@ #include "../network-settings.h" -#if QT_VERSION < 0x040200 -#define symLinkTarget readLink -#endif - Q_DECLARE_METATYPE(QFile::FileError) //TESTED_CLASS= @@ -169,6 +165,8 @@ private slots: void rename_data(); void rename(); void renameWithAtEndSpecialFile() const; + void renameFallback(); + void renameMultiple(); void appendAndRead(); void miscWithUncPathAsCurrentDir(); void standarderror(); @@ -214,6 +212,14 @@ void tst_QFile::cleanup() { // TODO: Add cleanup code here. // This will be executed immediately after each test is run. + + // for renameFallback() + QFile::remove("file-rename-destination.txt"); + + // for renameMultiple() + QFile::remove("file-to-be-renamed.txt"); + QFile::remove("file-renamed-once.txt"); + QFile::remove("file-renamed-twice.txt"); } void tst_QFile::initTestCase() @@ -980,12 +986,8 @@ void tst_QFile::link() #ifdef Q_OS_WIN // on windows links are always absolute QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath()); #else -#if QT_VERSION < 0x040101 - QCOMPARE(info2.symLinkTarget(), info1.filePath()); -#else QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath()); #endif -#endif #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) QString wd = getWorkingDirectoryForLink(info2.absoluteFilePath()); @@ -1051,19 +1053,12 @@ void tst_QFile::readBrokenLink() #ifdef Q_OS_WIN // on windows links are alway absolute QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath()); #else -#if QT_VERSION < 0x040101 - QCOMPARE(info2.symLinkTarget(), info1.filePath()); -#else QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath()); #endif -#endif QVERIFY(QFile::remove(info2.absoluteFilePath())); - -#if QT_VERSION >= 0x040101 QVERIFY(QFile::link("ole/..", "myLink2.lnk")); QCOMPARE(QFileInfo("myLink2.lnk").symLinkTarget(), QDir::currentPath()); -#endif } void tst_QFile::readTextFile_data() @@ -1271,10 +1266,6 @@ void tst_QFile::bufferedRead() QCOMPARE(file.pos(), qlonglong(2)); } -#if QT_VERSION <= 0x040100 - QCOMPARE(int(ftell(stdFile)), 2); -#endif - fclose(stdFile); } @@ -1594,12 +1585,7 @@ void tst_QFile::longFileName() } { QFile file(fileName); -#if QT_VERSION < 0x040100 -# ifdef Q_OS_WIN - QEXPECT_FAIL("244 chars", "Fixed in 4.1", Continue); - QEXPECT_FAIL("244 chars to absolutepath", "Fixed in 4.1", Continue); -# endif -#elif defined(Q_WS_WIN) +#if defined(Q_WS_WIN) #if !defined(Q_OS_WINCE) QT_WA({ if (false) ; }, { QEXPECT_FAIL("244 chars", "Full pathname must be less than 260 chars", Abort); @@ -1824,10 +1810,6 @@ void tst_QFile::removeOpenFile() void tst_QFile::fullDisk() { -#if QT_VERSION < 0x040102 - QSKIP("Fixed for 4.1.2", SkipAll); -#endif - QFile file("/dev/full"); if (!file.exists()) QSKIP("/dev/full doesn't exist on this system", SkipAll); @@ -1971,9 +1953,7 @@ void tst_QFile::virtualFile() // read all: data = f.readAll(); QVERIFY(f.pos() != 0); -#if QT_VERSION >= 0x040200 QVERIFY(!data.isEmpty()); -#endif // seeking QVERIFY(f.seek(1)); @@ -2091,6 +2071,42 @@ void tst_QFile::renameWithAtEndSpecialFile() const QVERIFY(QFile::rename(newName, originalName)); } +void tst_QFile::renameFallback() +{ + // Using a resource file both to trigger QFile::rename's fallback handling + // and as a *read-only* source whose move should fail. + QFile file(":/rename-fallback.qrc"); + QVERIFY(file.exists() && "(test-precondition)"); + QFile::remove("file-rename-destination.txt"); + + QVERIFY(!file.rename("file-rename-destination.txt")); + QVERIFY(!QFile::exists("file-rename-destination.txt")); +} + +void tst_QFile::renameMultiple() +{ + // create the file if it doesn't exist + QFile file("file-to-be-renamed.txt"); + QVERIFY(file.open(QIODevice::ReadWrite) && "(test-precondition)"); + + // any stale files from previous test failures? + QFile::remove("file-renamed-once.txt"); + QFile::remove("file-renamed-twice.txt"); + + // begin testing + QVERIFY(file.rename("file-renamed-once.txt")); + QCOMPARE(file.fileName(), QString("file-renamed-once.txt")); + QVERIFY(file.rename("file-renamed-twice.txt")); + QCOMPARE(file.fileName(), QString("file-renamed-twice.txt")); + + QVERIFY(!QFile::exists("file-to-be-renamed.txt")); + QVERIFY(!QFile::exists("file-renamed-once.txt")); + QVERIFY(QFile::exists("file-renamed-twice.txt")); + + file.remove(); + QVERIFY(!QFile::exists("file-renamed-twice.txt")); +} + void tst_QFile::appendAndRead() { QFile writeFile(QLatin1String("appendfile.txt")); |