diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-12-21 15:59:13 +0100 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com> | 2015-12-22 10:59:03 +0000 |
commit | f7a167223bd654bccb3c5bee7750eb86e6692d7a (patch) | |
tree | 96cfb6e89680a298edd2895469e5b28eed8cef46 /tests/auto/corelib/io | |
parent | 26237f0a2d8db80024b601f676bbce54d483e672 (diff) |
tst_QTemporaryDir::nonWritableCurrentDir: Add a check for write protection.
/home has been observed to be writable on some CI machines.
Add checks verifying existence and correct permissions.
Change-Id: Ie0f952e20d0d8eb0b57234eea2e2ecb78f5a7b58
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r-- | tests/auto/corelib/io/qtemporarydir/tst_qtemporarydir.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/tests/auto/corelib/io/qtemporarydir/tst_qtemporarydir.cpp b/tests/auto/corelib/io/qtemporarydir/tst_qtemporarydir.cpp index 58a3db9615..621e215d60 100644 --- a/tests/auto/corelib/io/qtemporarydir/tst_qtemporarydir.cpp +++ b/tests/auto/corelib/io/qtemporarydir/tst_qtemporarydir.cpp @@ -229,6 +229,13 @@ void tst_QTemporaryDir::autoRemove() void tst_QTemporaryDir::nonWritableCurrentDir() { #ifdef Q_OS_UNIX + +# if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK) + const char nonWritableDir[] = "/data"; +# else + const char nonWritableDir[] = "/home"; +# endif + if (::geteuid() == 0) QSKIP("not valid running this test as root"); @@ -240,13 +247,13 @@ void tst_QTemporaryDir::nonWritableCurrentDir() } QString dir; }; - ChdirOnReturn cor(QDir::currentPath()); -#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK) - QDir::setCurrent("/data"); -#else - QDir::setCurrent("/home"); -#endif + const QFileInfo nonWritableDirFi = QFileInfo(QLatin1String(nonWritableDir)); + QVERIFY(nonWritableDirFi.isDir()); + QVERIFY(!nonWritableDirFi.isWritable()); + + ChdirOnReturn cor(QDir::currentPath()); + QVERIFY(QDir::setCurrent(nonWritableDirFi.absoluteFilePath())); // QTemporaryDir("tempXXXXXX") is probably a bad idea in any app // where the current dir could anything... QTemporaryDir dir("tempXXXXXX"); |