diff options
author | Topi Reinio <topi.reinio@qt.io> | 2020-03-25 21:52:49 +0100 |
---|---|---|
committer | Topi Reiniƶ <topi.reinio@qt.io> | 2020-03-26 08:56:40 +0000 |
commit | 9a3c1a3ef004bdd948524afc37050a617a6e4823 (patch) | |
tree | 72ac7beb2cceda6c7cd38773a1613dbdc010eb8d /tests | |
parent | 4e35093ea7f6be6caf34b0627fbaffab984a5e0f (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')
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" |