summaryrefslogtreecommitdiffstats
path: root/tests/auto/qfile/tst_qfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qfile/tst_qfile.cpp')
-rw-r--r--tests/auto/qfile/tst_qfile.cpp91
1 files changed, 60 insertions, 31 deletions
diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp
index 829e0b3..cb8091b 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=
@@ -127,6 +123,7 @@ private slots:
void permissions();
void setPermissions();
void copy();
+ void copyAfterFail();
void copyRemovesTemporaryFile() const;
void copyShouldntOverwrite();
void link();
@@ -220,8 +217,15 @@ void tst_QFile::cleanup()
// for renameFallback()
QFile::remove("file-rename-destination.txt");
+ // for copyAfterFail()
+ QFile::remove("file-to-be-copied.txt");
+ QFile::remove("existing-file.txt");
+ QFile::remove("copied-file-1.txt");
+ QFile::remove("copied-file-2.txt");
+
// for renameMultiple()
QFile::remove("file-to-be-renamed.txt");
+ QFile::remove("existing-file.txt");
QFile::remove("file-renamed-once.txt");
QFile::remove("file-renamed-twice.txt");
}
@@ -890,6 +894,39 @@ void tst_QFile::copy()
QFile::copy(QDir::currentPath(), QDir::currentPath() + QLatin1String("/test2"));
}
+void tst_QFile::copyAfterFail()
+{
+ QFile file1("file-to-be-copied.txt");
+ QFile file2("existing-file.txt");
+
+ QVERIFY(file1.open(QIODevice::ReadWrite) && "(test-precondition)");
+ QVERIFY(file2.open(QIODevice::ReadWrite) && "(test-precondition)");
+ QVERIFY(!QFile::exists("copied-file-1.txt") && "(test-precondition)");
+ QVERIFY(!QFile::exists("copied-file-2.txt") && "(test-precondition)");
+
+ QVERIFY(!file1.copy("existing-file.txt"));
+ QCOMPARE(file1.error(), QFile::CopyError);
+
+ QVERIFY(file1.copy("copied-file-1.txt"));
+ QVERIFY(!file1.isOpen());
+ QCOMPARE(file1.error(), QFile::NoError);
+
+ QVERIFY(!file1.copy("existing-file.txt"));
+ QCOMPARE(file1.error(), QFile::CopyError);
+
+ QVERIFY(file1.copy("copied-file-2.txt"));
+ QVERIFY(!file1.isOpen());
+ QCOMPARE(file1.error(), QFile::NoError);
+
+ QVERIFY(QFile::exists("copied-file-1.txt"));
+ QVERIFY(QFile::exists("copied-file-2.txt"));
+
+ QVERIFY(QFile::remove("file-to-be-copied.txt") && "(test-cleanup)");
+ QVERIFY(QFile::remove("existing-file.txt") && "(test-cleanup)");
+ QVERIFY(QFile::remove("copied-file-1.txt") && "(test-cleanup)");
+ QVERIFY(QFile::remove("copied-file-2.txt") && "(test-cleanup)");
+}
+
void tst_QFile::copyRemovesTemporaryFile() const
{
const QString newName(QLatin1String("copyRemovesTemporaryFile"));
@@ -990,12 +1027,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());
@@ -1061,19 +1094,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()
@@ -1281,10 +1307,6 @@ void tst_QFile::bufferedRead()
QCOMPARE(file.pos(), qlonglong(2));
}
-#if QT_VERSION <= 0x040100
- QCOMPARE(int(ftell(stdFile)), 2);
-#endif
-
fclose(stdFile);
}
@@ -1604,12 +1626,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);
@@ -1834,10 +1851,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);
@@ -1981,9 +1994,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));
@@ -2117,24 +2128,42 @@ void tst_QFile::renameMultiple()
{
// create the file if it doesn't exist
QFile file("file-to-be-renamed.txt");
+ QFile file2("existing-file.txt");
QVERIFY(file.open(QIODevice::ReadWrite) && "(test-precondition)");
+ QVERIFY(file2.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(QFile::exists("existing-file.txt"));
+ QVERIFY(!file.rename("existing-file.txt"));
+ QCOMPARE(file.error(), QFile::RenameError);
+ QCOMPARE(file.fileName(), QString("file-to-be-renamed.txt"));
+
QVERIFY(file.rename("file-renamed-once.txt"));
+ QVERIFY(!file.isOpen());
QCOMPARE(file.fileName(), QString("file-renamed-once.txt"));
+
+ QVERIFY(QFile::exists("existing-file.txt"));
+ QVERIFY(!file.rename("existing-file.txt"));
+ QCOMPARE(file.error(), QFile::RenameError);
+ QCOMPARE(file.fileName(), QString("file-renamed-once.txt"));
+
QVERIFY(file.rename("file-renamed-twice.txt"));
+ QVERIFY(!file.isOpen());
QCOMPARE(file.fileName(), QString("file-renamed-twice.txt"));
+ QVERIFY(QFile::exists("existing-file.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();
+ file2.remove();
QVERIFY(!QFile::exists("file-renamed-twice.txt"));
+ QVERIFY(!QFile::exists("existing-file.txt"));
}
void tst_QFile::appendAndRead()