From 0368b24a7f53c945b582097cc8ad22a053856d22 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 9 Oct 2014 09:43:23 +0200 Subject: QSettings: Prevent assert when passing empty keys. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [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 Reviewed-by: Thiago Macieira --- tests/auto/corelib/io/qsettings/tst_qsettings.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/auto/corelib/io/qsettings') 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); -- cgit v1.2.3