summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@theqtcompany.com>2015-03-23 16:03:57 +0100
committerKai Koehne <kai.koehne@theqtcompany.com>2015-04-08 07:48:17 +0000
commita60571b3700e80f44705ebc4bab9628cf852891c (patch)
treecb607c2f2ec71d1d719ac20efdc2270249bb379e /tests
parenta715c6ceb8cd59b44f75a08cd6a7095f2ceac04d (diff)
QSaveFile: Fix permissions on creation
QSaveFile is intended to be a replacement for QFile, and should use the same permissions for newly created files. QTemporaryFile however creates new files with 0600 mask by default. Fix this by making the mode_t argument QTemporaryFileEngine uses configurable, and using 0666 for QSaveFile (like we do in QFile). [ChangeLog][Important behavior changes] Files created by QSaveFile do now have the same rights as files created by QFile. This also fixes a regression in QSettings: In the Qt 5.4 series, new files created by QSettings were only readable by the current user. Task-number: QTBUG-44086 Change-Id: Ie1cc20e9f25c6e72e1bc9176490c419c27c5fc82 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
index 2c86f0f19c..5796636b92 100644
--- a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
+++ b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp
@@ -119,6 +119,14 @@ void tst_QSaveFile::transactionalWrite()
QFile reader(targetFile);
QVERIFY(reader.open(QIODevice::ReadOnly));
QCOMPARE(QString::fromLatin1(reader.readAll()), QString::fromLatin1("Hello"));
+
+ // check that permissions are the same as for QFile
+ const QString otherFile = dir.path() + QString::fromLatin1("/otherfile");
+ QFile::remove(otherFile);
+ QFile other(otherFile);
+ other.open(QIODevice::WriteOnly);
+ other.close();
+ QCOMPARE(QFile::permissions(targetFile), QFile::permissions(otherFile));
}
void tst_QSaveFile::saveTwice()