aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <ABBAPOH@gmail.com>2019-04-29 20:24:47 +0200
committerIvan Komissarov <ABBAPOH@gmail.com>2019-05-02 18:03:50 +0000
commit694568d01a1d2480bd57a27ed2f500506f488fcb (patch)
tree9c510759b6c3a75f6b80204f8bca008dcab7018d
parent03431c8b352e88753ca66a23fe30c59ae08ab92e (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.cpp4
-rw-r--r--src/lib/corelib/tools/settings.h2
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp6
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;