summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2020-03-25 21:52:49 +0100
committerTopi Reiniƶ <topi.reinio@qt.io>2020-03-26 08:56:40 +0000
commit9a3c1a3ef004bdd948524afc37050a617a6e4823 (patch)
tree72ac7beb2cceda6c7cd38773a1613dbdc010eb8d /tests
parent4e35093ea7f6be6caf34b0627fbaffab984a5e0f (diff)
qdoc: Ensure macros as a macro parameter are expanded
QDoc allows macros to be nested, and macro parameters can also be other macros, but in one code path the parameter was read verbatim, i.e. not expanded. This is an unnecessary restriction so remove it. Fixes: QTBUG-83085 Change-Id: I6dc7c2f7586a65bee78096fb50685262dad2ffe3 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html43
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/configs/nestedmacro.qdocconf9
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp4
-rw-r--r--tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp8
4 files changed, 64 insertions, 0 deletions
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html b/tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html
new file mode 100644
index 000000000..6ab4d245b
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+<!-- testcpp.cpp -->
+ <title>QDoc Test C++ Classes | TestCPP</title>
+</head>
+<body>
+<div class="sidebar">
+<div class="toc">
+<h3><a name="toc">Contents</a></h3>
+<ul>
+<li class="level1"><a href="#namespaces">Namespaces</a></li>
+<li class="level1"><a href="#classes">Classes</a></li>
+<li class="level1"><a href="#details">Detailed Description</a></li>
+</ul>
+</div>
+<div class="sidebar-content" id="sidebar-content"></div></div>
+<h1 class="title">QDoc Test C++ Classes</h1>
+<span class="subtitle"></span>
+<!-- $$$TestCPP-brief -->
+<p>A test module page. <a href="#details">More...</a></p>
+<!-- @@@TestCPP -->
+<a name="namespaces"></a>
+<h2 id="namespaces">Namespaces</h2>
+<div class="table"><table class="annotated">
+<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc.html">TestQDoc</a></p></td><td class="tblDescr"><p>A namespace</p></td></tr>
+</table></div>
+<a name="classes"></a>
+<h2 id="classes">Classes</h2>
+<div class="table"><table class="annotated">
+<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
+<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
+</table></div>
+<!-- $$$TestCPP-description -->
+<a name="details"></a>
+<div class="descr">
+<h2 id="details">Detailed Description</h2>
+<p><b>This module was introduced in version 5.15.</b></p>
+</div>
+<!-- @@@TestCPP -->
+</body>
+</html>
diff --git a/tests/auto/qdoc/generatedoutput/testdata/configs/nestedmacro.qdocconf b/tests/auto/qdoc/generatedoutput/testdata/configs/nestedmacro.qdocconf
new file mode 100644
index 000000000..64475be7e
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/configs/nestedmacro.qdocconf
@@ -0,0 +1,9 @@
+include(testcpp.qdocconf)
+defines += test_nestedmacro
+
+macro.ver = "5.15.0"
+macro.ver.match = "^(\\d+\\.\\d+)"
+macro.versionnote.HTML = "<p><b>This \1 was introduced in version \2.</b></p>\n"
+
+HTML.nosubdirs = true
+HTML.outputsubdir = nestedmacro
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
index 8422494ac..17045eed5 100644
--- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
+++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
@@ -36,6 +36,10 @@ namespace TestQDoc {
\brief A test module page.
\testnoautolist
+
+\if defined(test_nestedmacro)
+ \versionnote {module} {\ver}
+\endif
*/
/*!
diff --git a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
index b3c69af71..7bf8b3210 100644
--- a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
+++ b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
@@ -68,6 +68,7 @@ private slots:
void preparePhase();
void generatePhase();
void noAutoList();
+ void nestedMacro();
private:
QScopedPointer<QTemporaryDir> m_outputDir;
@@ -391,6 +392,13 @@ void tst_generatedOutput::noAutoList()
"noautolist-docbook/qdoc-test-qmlmodule.xml");
}
+
+void tst_generatedOutput::nestedMacro()
+{
+ testAndCompare("testdata/configs/nestedmacro.qdocconf",
+ "nestedmacro/testcpp-module.html");
+}
+
QTEST_APPLESS_MAIN(tst_generatedOutput)
#include "tst_generatedoutput.moc"