summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-10-09 09:43:23 +0200
committerFriedemann Kleint <Friedemann.Kleint@digia.com>2014-10-17 14:55:45 +0200
commit0368b24a7f53c945b582097cc8ad22a053856d22 (patch)
treebca43e19e6cab7d18f3e016b9b4ada923daf8d31 /tests
parent1b8c5f450ba7dc3be04149020ec788a8ca03e47f (diff)
QSettings: Prevent assert when passing empty keys.
[ChangeLog][Important behavior changes][QSettings] QSettings::value() now returns an invalid QVariant when passing an empty key. The code path ran into an assert, which was only noticeable in debug builds. Task-number: QTBUG-41812 Change-Id: I5cc32be3aa267a132e9d6639ecd6cb0bbafc15b0 Reviewed-by: Stéphane Fabry, Cutesoft <stephane.fabry@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qsettings/tst_qsettings.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
index 77a60997a6..3e68e4859f 100644
--- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
+++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
@@ -118,6 +118,7 @@ private slots:
void testUpdateRequestEvent();
void testThreadSafety();
void testEmptyData();
+ void testEmptyKey();
void testResourceFiles();
void testRegistryShortRootNames();
void trailingWhitespace();
@@ -2025,6 +2026,16 @@ void tst_QSettings::testEmptyData()
QFile::remove(filename);
}
+void tst_QSettings::testEmptyKey()
+{
+ QSettings settings;
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::value: Empty key passed");
+ const QVariant value = settings.value(QString());
+ QCOMPARE(value, QVariant());
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::setValue: Empty key passed");
+ settings.setValue(QString(), value);
+}
+
void tst_QSettings::testResourceFiles()
{
QSettings settings(":/resourcefile.ini", QSettings::IniFormat);