summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io/qtemporaryfile
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/io/qtemporaryfile')
-rw-r--r--tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
index 46c0e19c9e..c713eb51d4 100644
--- a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
+++ b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
@@ -256,7 +256,16 @@ void tst_QTemporaryFile::autoRemove()
void tst_QTemporaryFile::nonWritableCurrentDir()
{
#ifdef Q_OS_UNIX
- QString cwd = QDir::currentPath();
+ struct ChdirOnReturn
+ {
+ ChdirOnReturn(const QString& d) : dir(d) {}
+ ~ChdirOnReturn() {
+ QDir::setCurrent(dir);
+ }
+ QString dir;
+ };
+ ChdirOnReturn cor(QDir::currentPath());
+
QDir::setCurrent("/");
// QTemporaryFile("tempXXXXXX") is probably a bad idea in any app
// where the current dir could anything...
@@ -265,7 +274,6 @@ void tst_QTemporaryFile::nonWritableCurrentDir()
file.setAutoRemove(true);
QVERIFY(!file.open());
fileName = file.fileName();
- QDir::setCurrent(cwd);
#endif
}