summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp')
-rw-r--r--tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp b/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp
index ce30710f7f..dcc93eaa86 100644
--- a/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp
+++ b/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp
@@ -77,6 +77,7 @@ private slots:
void testStdinArgument();
void testSingleDashWordOptionModes_data();
void testSingleDashWordOptionModes();
+ void testCpp11StyleInitialization();
// QProcess-based tests using qcommandlineparser_test_helper
void testVersionOption();
@@ -450,6 +451,27 @@ void tst_QCommandLineParser::testSingleDashWordOptionModes()
QCOMPARE(parser.unknownOptionNames(), QStringList());
}
+void tst_QCommandLineParser::testCpp11StyleInitialization()
+{
+#if defined(Q_COMPILER_INITIALIZER_LISTS) && defined(Q_COMPILER_UNIFORM_INIT)
+ QCoreApplication app(empty_argc, empty_argv);
+
+ QCommandLineParser parser;
+ // primarily check that this compiles:
+ parser.addOptions({
+ { "a", "The A option." },
+ { { "v", "verbose" }, "The verbose option." },
+ { { "i", "infile" }, "The input file.", "value" },
+ });
+ // but do a very basic functionality test, too:
+ QVERIFY(parser.parse({"tst_QCommandLineParser", "-a", "-vvv", "--infile=in.txt"}));
+ QCOMPARE(parser.optionNames(), (QStringList{"a", "v", "v", "v", "infile"}));
+ QCOMPARE(parser.value("infile"), QString("in.txt"));
+#else
+ QSKIP("This test requires C++11 uniform initialization support in the compiler.");
+#endif
+}
+
void tst_QCommandLineParser::testVersionOption()
{
#ifdef QT_NO_PROCESS