summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/io/qloggingregistry.cpp6
-rw-r--r--tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp10
2 files changed, 15 insertions, 1 deletions
diff --git a/src/corelib/io/qloggingregistry.cpp b/src/corelib/io/qloggingregistry.cpp
index 23f1ffbd16..d79de3f0e8 100644
--- a/src/corelib/io/qloggingregistry.cpp
+++ b/src/corelib/io/qloggingregistry.cpp
@@ -224,7 +224,11 @@ void QLoggingSettingsParser::setContent(QTextStream &stream)
const QStringRef value = line.midRef(equalPos + 1);
bool enabled = (value.compare(QLatin1String("true"),
Qt::CaseInsensitive) == 0);
- _rules.append(QLoggingRule(pattern, enabled));
+ QLoggingRule rule(pattern, enabled);
+ if (rule.flags != QLoggingRule::Invalid)
+ _rules.append(rule);
+ else
+ warnMsg("Ignoring malformed logging rule: '%s'", line.toUtf8().constData());
}
}
}
diff --git a/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp b/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp
index 4318396bd4..32ce91dc6a 100644
--- a/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp
+++ b/tests/auto/corelib/io/qloggingregistry/tst_qloggingregistry.cpp
@@ -302,6 +302,16 @@ private slots:
QVERIFY(!cat.isWarningEnabled());
}
+
+ void QLoggingRegistry_checkErrors()
+ {
+ QLoggingSettingsParser parser;
+ QString warnMsg = QString("Ignoring malformed logging rule: '***=false'");
+ QTest::ignoreMessage(QtWarningMsg, warnMsg.toLocal8Bit().constData());
+ parser.setContent("[Rules]\n"
+ "***=false\n");
+ QVERIFY(parser.rules().isEmpty());
+ }
};
QTEST_MAIN(tst_QLoggingRegistry)