From f7a167223bd654bccb3c5bee7750eb86e6692d7a Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 21 Dec 2015 15:59:13 +0100 Subject: tst_QTemporaryDir::nonWritableCurrentDir: Add a check for write protection. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /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 --- .../corelib/io/qtemporarydir/tst_qtemporarydir.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'tests/auto/corelib/io') 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"); -- cgit v1.2.3