diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2019-04-29 20:24:47 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2019-05-02 18:03:50 +0000 |
commit | 694568d01a1d2480bd57a27ed2f500506f488fcb (patch) | |
tree | 9c510759b6c3a75f6b80204f8bca008dcab7018d | |
parent | 03431c8b352e88753ca66a23fe30c59ae08ab92e (diff) |
Fix qbsConfig test on Macos
It seems, that QSettings is not working properly with SystemScope on
Macos (QTBUG-21062). QSettings::fileName returns a path to a file in a
test directory, not in "/Library/Application Support" as expected. Thus,
canWriteToSystemSettings is true and test fails when real qbs binary
tries to write to the /Library... location
Change-Id: I726360a1daacf4871f944f5afe30089083283dce
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/lib/corelib/tools/settings.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/tools/settings.h | 2 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 6 |
3 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/corelib/tools/settings.cpp b/src/lib/corelib/tools/settings.cpp index f2902aed4..7312cd622 100644 --- a/src/lib/corelib/tools/settings.cpp +++ b/src/lib/corelib/tools/settings.cpp @@ -54,7 +54,7 @@ namespace qbs { using namespace Internal; -static QString defaultSystemSettingsBaseDir() +QString Settings::defaultSystemSettingsBaseDir() { switch (HostOsInfo::hostOs()) { case HostOsInfo::HostOsWindows: { @@ -83,7 +83,7 @@ static QString systemSettingsBaseDir() #ifdef QBS_SYSTEM_SETTINGS_DIR return QLatin1String(QBS_SYSTEM_SETTINGS_DIR); #else - return defaultSystemSettingsBaseDir() + QStringLiteral("/qbs"); + return Settings::defaultSystemSettingsBaseDir() + QStringLiteral("/qbs"); #endif } diff --git a/src/lib/corelib/tools/settings.h b/src/lib/corelib/tools/settings.h index 2748e6890..d4de08490 100644 --- a/src/lib/corelib/tools/settings.h +++ b/src/lib/corelib/tools/settings.h @@ -84,6 +84,8 @@ public: QString fileName() const; QString baseDirectory() const { return m_baseDir; } // As passed into the constructor. + static QString defaultSystemSettingsBaseDir(); + private: QString internalRepresentation(const QString &externalKey) const; QString externalRepresentation(const QString &internalKey) const; diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 2de7cea85..dba77ff60 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -36,6 +36,7 @@ #include <tools/preferences.h> #include <tools/profile.h> #include <tools/qttools.h> +#include <tools/settings.h> #include <tools/shellutils.h> #include <tools/stlutils.h> #include <tools/version.h> @@ -5230,8 +5231,9 @@ void TestBlackbox::qbsConfig() bool canWriteToSystemSettings; QString testSettingsFilePath; { - QSettings testSettings(QSettings::IniFormat, QSettings::SystemScope, - "dummyOrg", "dummyApp"); + QSettings testSettings( + qbs::Settings::defaultSystemSettingsBaseDir() + "/dummyOrg" + "/dummyApp.conf", + QSettings::IniFormat); testSettings.setValue("dummyKey", "dummyValue"); testSettings.sync(); canWriteToSystemSettings = testSettings.status() == QSettings::NoError; |