summaryrefslogtreecommitdiffstats
path: root/src/qdoc/qdoc/tests/qdoccommandlineparser/tst_qdoccommandlineparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/qdoc/tests/qdoccommandlineparser/tst_qdoccommandlineparser.cpp')
-rw-r--r--src/qdoc/qdoc/tests/qdoccommandlineparser/tst_qdoccommandlineparser.cpp161
1 files changed, 161 insertions, 0 deletions
diff --git a/src/qdoc/qdoc/tests/qdoccommandlineparser/tst_qdoccommandlineparser.cpp b/src/qdoc/qdoc/tests/qdoccommandlineparser/tst_qdoccommandlineparser.cpp
new file mode 100644
index 000000000..e78de0425
--- /dev/null
+++ b/src/qdoc/qdoc/tests/qdoccommandlineparser/tst_qdoccommandlineparser.cpp
@@ -0,0 +1,161 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include "qdoc/qdoccommandlineparser.h"
+
+#include <QtCore/qstringlist.h>
+#include <QtTest/QtTest>
+
+class tst_QDocCommandLineParser : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void defaultConstructor();
+ void process();
+ void argumentsFromCommandLineAndFile();
+};
+
+void tst_QDocCommandLineParser::defaultConstructor()
+{
+ QDocCommandLineParser parser;
+
+ QVERIFY2(parser.applicationDescription() == QStringLiteral("Qt documentation generator"),
+ "The application description is incorrect.");
+}
+
+void tst_QDocCommandLineParser::process()
+{
+ const QStringList arguments =
+ QStringLiteral("/src/qt5/qtbase/bin/qdoc "
+ "-outputdir "
+ "/src/qt5/qtbase/doc/qtgamepad "
+ "-installdir "
+ "/src/qt5/qtbase/doc "
+ "/src/qt5/qtgamepad/src/gamepad/doc/qtgamepad.qdocconf "
+ "-prepare "
+ "-indexdir "
+ "/src/qt5/qtbase/doc "
+ "-no-link-errors "
+ "-I. "
+ "-I/src/qt5/qtbase/include "
+ "-I/src/qt5/qtbase/include/QtGamepad "
+ "-I/src/qt5/qtbase/include/QtGamepad/5.14.0 "
+ "-I/src/qt5/qtbase/include/QtGamepad/5.14.0/QtGamepad "
+ "-I/src/qt5/qtbase/include/QtCore/5.14.0 "
+ "-I/src/qt5/qtbase/include/QtCore/5.14.0/QtCore "
+ "-I/src/qt5/qtbase/include/QtGui "
+ "-I/src/qt5/qtbase/include/QtCore "
+ "-I.moc "
+ "-isystem "
+ "/usr/include/libdrm "
+ "-I/src/qt5/qtbase/mkspecs/linux-g++"
+ ).split(QString(" "));
+ const QStringList expectedIncludePaths =
+ QStringLiteral(". "
+ "/src/qt5/qtbase/include "
+ "/src/qt5/qtbase/include/QtGamepad "
+ "/src/qt5/qtbase/include/QtGamepad/5.14.0 "
+ "/src/qt5/qtbase/include/QtGamepad/5.14.0/QtGamepad "
+ "/src/qt5/qtbase/include/QtCore/5.14.0 "
+ "/src/qt5/qtbase/include/QtCore/5.14.0/QtCore "
+ "/src/qt5/qtbase/include/QtGui "
+ "/src/qt5/qtbase/include/QtCore "
+ ".moc "
+ "/src/qt5/qtbase/mkspecs/linux-g++"
+ ).split(QString(" "));
+ const QStringList expectedSystemIncludePath(QStringLiteral("/usr/include/libdrm"));
+
+ QDocCommandLineParser parser;
+ parser.process(arguments);
+
+ QVERIFY(parser.isSet(parser.outputDirOption));
+ QCOMPARE(parser.value(parser.outputDirOption), QStringLiteral("/src/qt5/qtbase/doc/qtgamepad"));
+ QVERIFY(parser.isSet(parser.installDirOption));
+ QCOMPARE(parser.value(parser.installDirOption), QStringLiteral("/src/qt5/qtbase/doc"));
+ QVERIFY(parser.isSet(parser.prepareOption));
+ QVERIFY(parser.isSet(parser.indexDirOption));
+ QCOMPARE(parser.value(parser.indexDirOption), QStringLiteral("/src/qt5/qtbase/doc"));
+ QVERIFY(parser.isSet(parser.noLinkErrorsOption));
+ QVERIFY(parser.isSet(parser.includePathOption));
+ QCOMPARE(parser.values(parser.includePathOption), expectedIncludePaths);
+ QVERIFY(parser.isSet(parser.includePathSystemOption));
+ QCOMPARE(parser.values(parser.includePathSystemOption), expectedSystemIncludePath);
+
+ QVERIFY(!parser.isSet(parser.timestampsOption));
+ QVERIFY(!parser.isSet(parser.dependsOption));
+ QVERIFY(!parser.isSet(parser.highlightingOption));
+ QVERIFY(!parser.isSet(parser.showInternalOption));
+ QVERIFY(!parser.isSet(parser.redirectDocumentationToDevNullOption));
+ QVERIFY(!parser.isSet(parser.noExamplesOption));
+ QVERIFY(!parser.isSet(parser.autoLinkErrorsOption));
+ QVERIFY(!parser.isSet(parser.debugOption));
+ QVERIFY(!parser.isSet(parser.generateOption));
+ QVERIFY(!parser.isSet(parser.logProgressOption));
+ QVERIFY(!parser.isSet(parser.singleExecOption));
+ QVERIFY(!parser.isSet(parser.frameworkOption));
+
+ const QStringList expectedPositionalArgument = {
+ QStringLiteral("/src/qt5/qtgamepad/src/gamepad/doc/qtgamepad.qdocconf")
+ };
+ QCOMPARE(parser.positionalArguments(), expectedPositionalArgument);
+}
+
+void tst_QDocCommandLineParser::argumentsFromCommandLineAndFile()
+{
+ const QString atFilePath("@" + QFINDTESTDATA("tst_arguments.txt"));
+ const QStringList arguments { "/src/qt5/qtbase/bin/qdoc", atFilePath };
+
+ QDocCommandLineParser parser;
+ parser.process(arguments);
+
+ const QStringList expectedIncludePaths =
+ QStringLiteral(". "
+ "/src/qt5/qtbase/include "
+ "/src/qt5/qtbase/include/QtGamepad "
+ "/src/qt5/qtbase/include/QtGamepad/5.14.0 "
+ "/src/qt5/qtbase/include/QtGamepad/5.14.0/QtGamepad "
+ "/src/qt5/qtbase/include/QtCore/5.14.0 "
+ "/src/qt5/qtbase/include/QtCore/5.14.0/QtCore "
+ "/src/qt5/qtbase/include/QtGui "
+ "/src/qt5/qtbase/include/QtCore "
+ ".moc "
+ "/src/qt5/qtbase/mkspecs/linux-g++"
+ ).split(QString(" "));
+ const QStringList expectedSystemIncludePath(QStringLiteral("/usr/include/libdrm"));
+ const QStringList expectedPositionalArgument = {
+ QStringLiteral("/src/qt5/qtgamepad/src/gamepad/doc/qtgamepad.qdocconf")
+ };
+
+ QVERIFY(parser.isSet(parser.outputDirOption));
+ QCOMPARE(parser.value(parser.outputDirOption), QStringLiteral("/src/qt5/qtbase/doc/qtgamepad"));
+ QVERIFY(parser.isSet(parser.installDirOption));
+ QCOMPARE(parser.value(parser.installDirOption), QStringLiteral("/src/qt5/qtbase/doc"));
+ QVERIFY(parser.isSet(parser.prepareOption));
+ QVERIFY(parser.isSet(parser.indexDirOption));
+ QCOMPARE(parser.value(parser.indexDirOption), QStringLiteral("/src/qt5/qtbase/doc"));
+ QVERIFY(parser.isSet(parser.noLinkErrorsOption));
+ QVERIFY(parser.isSet(parser.includePathOption));
+ QCOMPARE(parser.values(parser.includePathOption), expectedIncludePaths);
+ QVERIFY(parser.isSet(parser.includePathSystemOption));
+ QCOMPARE(parser.values(parser.includePathSystemOption), expectedSystemIncludePath);
+
+ QVERIFY(!parser.isSet(parser.timestampsOption));
+ QVERIFY(!parser.isSet(parser.dependsOption));
+ QVERIFY(!parser.isSet(parser.highlightingOption));
+ QVERIFY(!parser.isSet(parser.showInternalOption));
+ QVERIFY(!parser.isSet(parser.redirectDocumentationToDevNullOption));
+ QVERIFY(!parser.isSet(parser.noExamplesOption));
+ QVERIFY(!parser.isSet(parser.autoLinkErrorsOption));
+ QVERIFY(!parser.isSet(parser.debugOption));
+ QVERIFY(!parser.isSet(parser.generateOption));
+ QVERIFY(!parser.isSet(parser.logProgressOption));
+ QVERIFY(!parser.isSet(parser.singleExecOption));
+ QVERIFY(!parser.isSet(parser.frameworkOption));
+
+ QCOMPARE(parser.positionalArguments(), expectedPositionalArgument);
+}
+
+QTEST_APPLESS_MAIN(tst_QDocCommandLineParser)
+
+#include "tst_qdoccommandlineparser.moc"