summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2018-12-01 18:02:52 -0600
committerThiago Macieira <thiago.macieira@intel.com>2018-12-07 18:53:34 +0000
commit962bded90f0ffb7390b4a2a1a5a895156aa5f541 (patch)
tree150c0112739cf6dd540813c7c744d973d6efec6d /tests/auto
parent9d4406f49af21a57b6df3ee8f42f682a04bd2edd (diff)
Fix QSettings parsing of spaces after comment lines
[ChangeLog][QtCore][QSettings] Fixed QSettings parsing of blank spaces after comment lines in INI-style configuration files. Fixes: QTBUG-72007 Change-Id: Idd0c85a4e7b64f9c9c7dfffd156c5b219f3b5c0a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/io/qsettings/qsettings.qrc1
-rw-r--r--tests/auto/corelib/io/qsettings/tst_qsettings.cpp29
-rw-r--r--tests/auto/corelib/io/qsettings/withcomments.ini19
3 files changed, 49 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qsettings/qsettings.qrc b/tests/auto/corelib/io/qsettings/qsettings.qrc
index c664a6f68c..db1d8c663f 100644
--- a/tests/auto/corelib/io/qsettings/qsettings.qrc
+++ b/tests/auto/corelib/io/qsettings/qsettings.qrc
@@ -7,5 +7,6 @@
<file>resourcefile5.ini</file>
<file>resourcefile6.plist</file>
<file>bom.ini</file>
+ <file>withcomments.ini</file>
</qresource>
</RCC>
diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
index 5357194406..8b69518ef7 100644
--- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
+++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
@@ -187,6 +187,7 @@ private slots:
void bom();
void embeddedZeroByte_data();
void embeddedZeroByte();
+ void spaceAfterComment();
void testXdg();
private:
@@ -764,6 +765,34 @@ void tst_QSettings::embeddedZeroByte()
}
}
+void tst_QSettings::spaceAfterComment()
+{
+ QSettings settings(QFINDTESTDATA("withcomments.ini"), QSettings::IniFormat);
+ QCOMPARE(settings.status(), QSettings::NoError);
+
+ QStringList groups = settings.childGroups();
+ QVERIFY(groups.contains("Regular"));
+ QVERIFY(groups.contains("WithSpaces"));
+ QVERIFY(groups.contains("WithTab"));
+ QVERIFY(groups.contains("SpacedGroup"));
+
+ settings.beginGroup("Regular");
+ QCOMPARE(settings.value("bar"), QVariant(2));
+ settings.endGroup();
+
+ settings.beginGroup("WithSpaces");
+ QCOMPARE(settings.value("bar"), QVariant(4));
+ settings.endGroup();
+
+ settings.beginGroup("WithTab");
+ QCOMPARE(settings.value("bar"), QVariant(6));
+ settings.endGroup();
+
+ settings.beginGroup("SpacedGroup");
+ QCOMPARE(settings.value("bar"), QVariant(7));
+ settings.endGroup();
+}
+
void tst_QSettings::testErrorHandling_data()
{
QTest::addColumn<int>("filePerms"); // -1 means file should not exist
diff --git a/tests/auto/corelib/io/qsettings/withcomments.ini b/tests/auto/corelib/io/qsettings/withcomments.ini
new file mode 100644
index 0000000000..d2de3a356b
--- /dev/null
+++ b/tests/auto/corelib/io/qsettings/withcomments.ini
@@ -0,0 +1,19 @@
+; -*- conf -*-
+; If you edit this file, make sure, that "WithSpaces" has spaces and that
+; "WithTab" has one tab
+
+[Regular]
+;bar = 1
+bar = 2
+
+[WithSpaces]
+;bar = 3
+ bar = 4
+
+[WithTab]
+;bar = 5
+ bar = 6
+
+; [SpacedGroup]
+ [SpacedGroup]
+ bar = 7