summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml3
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testcpp.index2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp18
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h2
-rw-r--r--tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp34
10 files changed, 55 insertions, 22 deletions
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml b/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml
index ad6a4f30f..76025b06e 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml
+++ b/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml
@@ -63,13 +63,14 @@
<db:para>An inline function, documented using the \fn QDoc command.</db:para>
</db:section>
<db:section xml:id="someFunction">
-<db:title>Test::int someFunction(int <db:emphasis>v</db:emphasis>)</db:title>
+<db:title>Test::int someFunction(int <db:emphasis>v</db:emphasis> = 0)</db:title>
<db:methodsynopsis>
<db:type>int</db:type>
<db:methodname>someFunction</db:methodname>
<db:methodparam>
<db:type>int</db:type>
<db:parameter>v</db:parameter>
+<db:initializer>0</db:initializer>
</db:methodparam>
<db:synopsisinfo db:role="meta">plain</db:synopsisinfo>
<db:synopsisinfo db:role="signature">int someFunction(int v)</db:synopsisinfo>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
index d2726cc57..7ae77ec5a 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml
@@ -39,7 +39,7 @@
<description/>
</function>
<function name="someFunction" fullname="TestQDoc::Test::someFunction" href="testqdoc-test.html#someFunction" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="int" signature="int someFunction(int v)">
- <parameter type="int" name="v" default=""/>
+ <parameter type="int" name="v" default="0"/>
<description>
<para>Function that takes a parameter <argument>v</argument>. Also returns the value of <argument>v</argument>.</para>
</description>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html
index 52a10f706..0d4283a8f 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html
@@ -34,7 +34,7 @@
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
</table></div>
@@ -68,7 +68,7 @@
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionint -->
-<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i>)</h3>
+<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i> = 0)</h3>
<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
<p>This function was introduced in Test 1.0.</p>
<!-- @@@someFunction -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html
index 3fc1f2bc7..864205274 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html
@@ -40,7 +40,7 @@
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
</table></div>
@@ -85,7 +85,7 @@
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionint -->
-<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i>)</h3>
+<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i> = 0)</h3>
<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
<!-- @@@someFunction -->
<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html
index 4ec52916a..75643dede 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html
@@ -34,7 +34,7 @@
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
</table></div>
@@ -73,7 +73,7 @@
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionint -->
-<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i>)</h3>
+<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i> = 0)</h3>
<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
<!-- @@@someFunction -->
<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index
index ae997fa52..ae3b4a875 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index
@@ -22,7 +22,7 @@
<parameter type="bool" name="b" default=""/>
</function>
<function name="someFunction" fullname="TestQDoc::Test::someFunction" href="testqdoc-test.html#someFunction" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="int" signature="int someFunction(int v)">
- <parameter type="int" name="v" default=""/>
+ <parameter type="int" name="v" default="0"/>
</function>
<function name="someFunctionDefaultArg" fullname="TestQDoc::Test::someFunctionDefaultArg" href="testqdoc-test.html#someFunctionDefaultArg" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void someFunctionDefaultArg(int i, bool b)">
<parameter type="int" name="i" default=""/>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
index 84c0c4fe3..49066d0e6 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
@@ -34,7 +34,7 @@
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
</table></div>
@@ -68,7 +68,7 @@
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionint -->
-<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i>)</h3>
+<h3 class="fn" id="someFunction"><a name="someFunction"></a><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span> <i>v</i> = 0)</h3>
<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
<!-- @@@someFunction -->
<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool -->
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
index 17045eed5..31b910fae 100644
--- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
+++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp
@@ -124,13 +124,7 @@ void Test::someFunctionDefaultArg(int i, bool b = false)
return;
}
-/*!
- Function that takes a parameter \a v.
- Also returns the value of \a v.
-\if defined(test_ignoresince)
- \since Test 1.0
-\endif
-*/
+// Documented below with an \fn command. Unnecessary but we support it, and it's used.
int Test::someFunction(int v)
{
return v;
@@ -143,6 +137,16 @@ int Test::someFunction(int v)
*/
/*!
+ \fn int Test::someFunction(int v = 0)
+
+ Function that takes a parameter \a v.
+ Also returns the value of \a v.
+\if defined(test_ignoresince)
+ \since Test 1.0
+\endif
+*/
+
+/*!
Function that must be reimplemented.
*/
void Test::virtualFun()
diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h
index 4ae33a404..cb812375b 100644
--- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h
+++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h
@@ -41,7 +41,7 @@ public:
OmittedValue = 99
};
#endif
- int someFunction(int v);
+ int someFunction(int v = 0);
void someFunctionDefaultArg(int i, bool b);
void obsoleteMember();
void anotherObsoleteMember();
diff --git a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
index 40fcdfcac..f8abee1b4 100644
--- a/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
+++ b/tests/auto/qdoc/generatedoutput/tst_generatedoutput.cpp
@@ -34,6 +34,9 @@ class tst_generatedOutput : public QObject
{
Q_OBJECT
+public:
+ void setRegenerate() { m_regen = true; }
+
private slots:
void initTestCase();
void init();
@@ -73,6 +76,8 @@ private slots:
private:
QScopedPointer<QTemporaryDir> m_outputDir;
QString m_qdoc;
+ QDir m_expectedDir;
+ bool m_regen = false;
void runQDocProcess(const QStringList &arguments);
void compareLineByLine(const QStringList &expectedFiles);
@@ -87,6 +92,7 @@ void tst_generatedOutput::initTestCase()
const auto binpath = QLibraryInfo::location(QLibraryInfo::BinariesPath);
const auto extension = QSysInfo::productType() == "windows" ? ".exe" : "";
m_qdoc = binpath + QLatin1String("/qdoc") + extension;
+ m_expectedDir.setPath(QFINDTESTDATA(".") + QLatin1String("/expected_output"));
}
void tst_generatedOutput::init()
@@ -125,8 +131,8 @@ void tst_generatedOutput::runQDocProcess(const QStringList &arguments)
void tst_generatedOutput::compareLineByLine(const QStringList &expectedFiles)
{
for (const auto &file : expectedFiles) {
- QString expected(QFINDTESTDATA("/expected_output/" + file));
- QString actual(m_outputDir->path() + "/" + file);
+ QString expected(m_expectedDir.filePath(file));
+ QString actual(m_outputDir->filePath(file));
QFile expectedFile(expected);
if (!expectedFile.open(QIODevice::ReadOnly))
@@ -168,6 +174,19 @@ void tst_generatedOutput::testAndCompare(const char *input, const char *outNames
for (auto &expectedOut : expectedOuts)
expectedOut = QString(outputPathPrefix) + "/" + expectedOut;
+ if (m_regen) {
+ QVERIFY(m_expectedDir.mkpath(m_expectedDir.path()));
+ for (const auto &file : qAsConst(expectedOuts)) {
+ QFileInfo fileInfo(m_expectedDir.filePath(file));
+ fileInfo.dir().remove(fileInfo.fileName()); // Allowed to fail
+ QVERIFY(m_expectedDir.mkpath(fileInfo.dir().path()));
+ QVERIFY(QFile::copy(m_outputDir->filePath(file),
+ fileInfo.filePath()));
+ }
+ QSKIP("Regenerated expected output only.");
+ return;
+ }
+
compareLineByLine(expectedOuts);
}
@@ -400,6 +419,15 @@ void tst_generatedOutput::nestedMacro()
"nestedmacro/testcpp-module.html");
}
-QTEST_APPLESS_MAIN(tst_generatedOutput)
+int main(int argc, char *argv[])
+{
+ tst_generatedOutput tc;
+ // Re-populate expected data and skip tests if option -regenerate is set
+ if (argc == 2 && QByteArray(argv[1]) == "-regenerate") {
+ tc.setRegenerate();
+ --argc;
+ }
+ return QTest::qExec(&tc, argc, argv);
+}
#include "tst_generatedoutput.moc"