diff --git a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp index 563e4c2a83..fbc21d7a05 100644 --- a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp @@ -1905,9 +1905,24 @@ void tst_QFileInfo::isWritable() tempfile.write("This file is generated by the QFileInfo autotest."); tempfile.close(); + // isWritable returns true when file is writable QVERIFY(QFileInfo("tempfile.txt").isWritable()); + + QFile::setPermissions("tempfile.txt", + QFileDevice::ReadOwner | QFileDevice::ReadUser | QFileDevice::ReadGroup); + + // isWritable returns false when read-only, unless root + bool isRoot = false; +#if defined (Q_OS_UNIX) + isRoot = (geteuid() == 0); +#endif + QCOMPARE(QFileInfo("tempfile.txt").isWritable(), isRoot); + tempfile.remove(); + // isWritable returns false when file does not exist + QVERIFY(!QFileInfo("tempfile.txt").isWritable()); + #if defined(Q_OS_WIN) QFileInfo fi("c:\\pagefile.sys"); QVERIFY2(fi.exists(), msgDoesNotExist(fi.absoluteFilePath()).constData());