summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r--tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp9
-rw-r--r--tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp4
-rw-r--r--tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp3
3 files changed, 12 insertions, 4 deletions
diff --git a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp
index a1f9ca0b87..c5dafb1a29 100644
--- a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp
+++ b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp
@@ -1889,10 +1889,11 @@ void tst_QFileInfo::isWritable()
#if defined (Q_OS_QNX) // On QNX /etc is usually on a read-only filesystem
QVERIFY(!QFileInfo("/etc/passwd").isWritable());
#elif defined (Q_OS_UNIX) && !defined(Q_OS_VXWORKS) // VxWorks does not have users/groups
- if (::getuid() == 0)
- QVERIFY(QFileInfo("/etc/passwd").isWritable());
- else
- QVERIFY(!QFileInfo("/etc/passwd").isWritable());
+ for (const char *attempt : { "/etc/passwd", "/etc/machine-id", "/proc/version" }) {
+ if (access(attempt, F_OK) == -1)
+ continue;
+ QCOMPARE(QFileInfo(attempt).isWritable(), ::access(attempt, W_OK) == 0);
+ }
#endif
}
diff --git a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
index 8e500d7c8e..361d18054b 100644
--- a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
+++ b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
@@ -136,6 +136,10 @@ void tst_QSaveFile::retryTransactionalWrite()
{
#ifndef Q_OS_UNIX
QSKIP("This test is Unix only");
+#else
+ // root can open the read-only file for writing...
+ if (geteuid() == 0)
+ QSKIP("This test does not work as the root user");
#endif
QTemporaryDir dir;
QVERIFY2(dir.isValid(), qPrintable(dir.errorString()));
diff --git a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
index 00417fffa0..cdf79760f6 100644
--- a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
+++ b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
@@ -517,6 +517,9 @@ void tst_QTemporaryFile::openOnRootDrives()
QTemporaryFile file(driveInfo.filePath() + "XXXXXX.txt");
file.setAutoRemove(true);
QVERIFY(file.open());
+
+ QFileInfo fi(file.fileName());
+ QCOMPARE(fi.absoluteDir(), driveInfo.filePath());
}
}
#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)