summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDieter Verfaillie <dieterv@optionexplicit.be>2014-04-24 22:45:08 +0200
committerDieter Verfaillie <dieterv@optionexplicit.be>2015-06-24 22:03:56 +0200
commit68ce6d2e48365560921dd751b9bc6a3803b0c37d (patch)
treec1575f6132e45290023e7cc3ed3870e06d0a82a8
parentc7144d0ccc4ddca73c4ff690e147d247aedb2def (diff)
downloadgobject-introspection-68ce6d2e48365560921dd751b9bc6a3803b0c37d.tar.gz
tests: sync with GTK-Doc test suite @ 02e545371e2132a97458888895cacf57b8c0f83a (2015-06-23)
https://bugzilla.gnome.org/show_bug.cgi?id=725685
-rw-r--r--giscanner/annotationparser.py7
-rw-r--r--tests/scanner/annotationparser/README1
-rw-r--r--tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml387
-rw-r--r--tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml192
-rw-r--r--tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml91
-rw-r--r--tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml50
-rw-r--r--tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml18
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml3
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml422
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml64
-rw-r--r--tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml41
11 files changed, 1231 insertions, 45 deletions
diff --git a/giscanner/annotationparser.py b/giscanner/annotationparser.py
index f69ff250..b8f5b763 100644
--- a/giscanner/annotationparser.py
+++ b/giscanner/annotationparser.py
@@ -1103,14 +1103,11 @@ class GtkDocCommentBlockParser(object):
* unexpected introspection behavior, for example missing parameters in the
generated .gir and .typelib files
- .. NOTE:: :class:`GtkDocCommentBlockParser` functionality is heavily based on gtkdoc-mkdb's
- `ScanSourceFile()`_ function and is currently in sync with GTK-Doc
- commit `47abcd5`_.
+ .. NOTE:: :class:`GtkDocCommentBlockParser` functionality is based on gtkdoc-mkdb's
+ `ScanSourceFile()`_ function.
.. _ScanSourceFile():
http://git.gnome.org/browse/gtk-doc/tree/gtkdoc-mkdb.in#n3722
- .. _47abcd5:
- https://git.gnome.org/browse/gtk-doc/commit/?id=47abcd53b8489ebceec9e394676512a181c1f1f6
'''
def parse_comment_blocks(self, comments):
diff --git a/tests/scanner/annotationparser/README b/tests/scanner/annotationparser/README
index 1dbc64e1..a65b3e75 100644
--- a/tests/scanner/annotationparser/README
+++ b/tests/scanner/annotationparser/README
@@ -44,7 +44,6 @@ gtk-doc/*.xml:
GTK-Doc tests originally taken at revision:
http://git.gnome.org/browse/gtk-doc/tree/tests?id=2a6b01253fe41412172a60f26705114b953d0a95
and should be updated regularly to reflect changes in the GTK-Doc project.
- - updated 2013/07/30 to 1846fc7e904f6f56b74c366d205d6bb946eac17e
gobject-introspection/*.xml:
GTK-Doc comment blocks specifically designed to ensure GtkDocCommentBlockParser does the
diff --git a/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml b/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
index d28d5d9b..1d57cbf6 100644
--- a/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/annotations/tester.c.xml
@@ -6,6 +6,7 @@
<input>/**
* SECTION:tester
* @short_description: module for gtk-doc unit test
+ * @stability: stable
*
* This file contains non-sense code for the sole purpose of testing the docs.
*/</input>
@@ -19,6 +20,10 @@
<name>short_description</name>
<description>module for gtk-doc unit test</description>
</parameter>
+ <parameter>
+ <name>stability</name>
+ <description>stable</description>
+ </parameter>
</parameters>
<description>This file contains non-sense code for the sole purpose of testing the docs.</description>
</docblock>
@@ -26,6 +31,7 @@
<output>/**
* SECTION:tester
* @short_description: module for gtk-doc unit test
+ * @stability: stable
*
* This file contains non-sense code for the sole purpose of testing the docs.
*/</output>
@@ -85,7 +91,7 @@
<test>
<input>/**
- * annotation_nullable:
+ * annotation_allow_none:
* @uri: a uri
* @label: (allow-none): an optional string, which is used in ways too
* complicated to describe in a single line, making it necessary to wrap it
@@ -98,7 +104,7 @@
<parser>
<docblock>
<identifier>
- <name>annotation_nullable</name>
+ <name>annotation_allow_none</name>
</identifier>
<parameters>
<parameter>
@@ -140,7 +146,7 @@
</docblock>
</parser>
<output>/**
- * annotation_nullable:
+ * annotation_allow_none:
* @uri: a uri
* @label: (allow-none): an optional string, which is used in ways too
* complicated to describe in a single line, making it necessary to wrap it
@@ -154,6 +160,75 @@
<test>
<input>/**
+ * annotation_nullable:
+ * @uri: a uri
+ * @label: (nullable): an optional string, which is used in ways too
+ * complicated to describe in a single line, making it necessary to wrap it
+ *
+ * Document optional parameters.
+ *
+ * Returns: (transfer full) (nullable): Returns stuff which you have to
+ * free after use, whose description is also rather long
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_nullable</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>uri</name>
+ <description>a uri</description>
+ </parameter>
+ <parameter>
+ <name>label</name>
+ <annotations>
+ <annotation>
+ <name>nullable</name>
+ </annotation>
+ </annotations>
+ <description>an optional string, which is used in ways too
+ complicated to describe in a single line, making it necessary to wrap it</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>nullable</name>
+ </annotation>
+ </annotations>
+ <description>Returns stuff which you have to
+ free after use, whose description is also rather long</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_nullable:
+ * @uri: a uri
+ * @label: (nullable): an optional string, which is used in ways too
+ * complicated to describe in a single line, making it necessary to wrap it
+ *
+ * Document optional parameters.
+ *
+ * Returns: (transfer full) (nullable): Returns stuff which you have to
+ * free after use, whose description is also rather long
+ */</output>
+</test>
+
+<test>
+ <input>/**
* annotation_elementtype:
* @list: (element-type GObject): list of #GObject instances to search
*
@@ -353,6 +428,180 @@
<test>
<input>/**
+ * annotation_outparams_optional:
+ * @list: (out) (transfer none) (optional): a pointer to take a list, or %NULL
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_outparams_optional</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>none</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>optional</name>
+ </annotation>
+ </annotations>
+ <description>a pointer to take a list, or %NULL</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_outparams_optional:
+ * @list: (out) (transfer none) (optional): a pointer to take a list, or %NULL
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_outparams_nullable:
+ * @list: (out) (transfer none) (nullable): a pointer to take a list; but %NULL
+ * may also be returned
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_outparams_nullable</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>none</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>nullable</name>
+ </annotation>
+ </annotations>
+ <description>a pointer to take a list; but %NULL
+may also be returned</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_outparams_nullable:
+ * @list: (out) (transfer none) (nullable): a pointer to take a list; but %NULL
+ * may also be returned
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_outparams_optional_nullable:
+ * @list: (out) (transfer none) (optional) (nullable): a pointer to take a
+ * list, or %NULL; but %NULL may also be returned in @list — isn’t that cool?
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_outparams_optional_nullable</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>list</name>
+ <annotations>
+ <annotation>
+ <name>out</name>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>none</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>optional</name>
+ </annotation>
+ <annotation>
+ <name>nullable</name>
+ </annotation>
+ </annotations>
+ <description>a pointer to take a
+list, or %NULL; but %NULL may also be returned in @list — isn’t that cool?</description>
+ </parameter>
+ </parameters>
+ <description>Document optional parameters.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <description>%TRUE for success</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_outparams_optional_nullable:
+ * @list: (out) (transfer none) (optional) (nullable): a pointer to take a
+ * list, or %NULL; but %NULL may also be returned in @list — isn’t that cool?
+ *
+ * Document optional parameters.
+ *
+ * Returns: %TRUE for success
+ */</output>
+</test>
+
+<test>
+ <input>/**
* annotation_skip: (skip)
* @list: a pointer to take a list
*
@@ -479,4 +728,136 @@
*/</output>
</test>
+<test>
+ <input>/**
+ * annotation_rename_to: (rename-to annotation_scope)
+ *
+ * Documentation for this function.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_rename_to</name>
+ <annotations>
+ <annotation>
+ <name>rename-to</name>
+ <options>
+ <option>
+ <name>annotation_scope</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Documentation for this function.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_rename_to: (rename-to annotation_scope)
+ *
+ * Documentation for this function.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * stability_unstable:
+ *
+ * An experimental function.
+ *
+ * Stability: unstable
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>stability_unstable</name>
+ </identifier>
+ <description>An experimental function.</description>
+ <tags>
+ <tag>
+ <name>stability</name>
+ <value>Unstable</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * stability_unstable:
+ *
+ * An experimental function.
+ *
+ * Stability: Unstable
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_multiline_on_function: (rename-to annotation_scope)
+ * (skip)
+ *
+ * Documentation for this function.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_multiline_on_function</name>
+ <annotations>
+ <annotation>
+ <name>rename-to</name>
+ <options>
+ <option>
+ <name>annotation_scope</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Documentation for this function.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_multiline_on_function: (rename-to annotation_scope) (skip)
+ *
+ * Documentation for this function.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * annotation_multiline_on_function2:
+ * (rename-to annotation_scope)(skip)
+ *
+ * Documentation for this function.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>annotation_multiline_on_function2</name>
+ <annotations>
+ <annotation>
+ <name>rename-to</name>
+ <options>
+ <option>
+ <name>annotation_scope</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>skip</name>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>Documentation for this function.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * annotation_multiline_on_function2: (rename-to annotation_scope) (skip)
+ *
+ * Documentation for this function.
+ */</output>
+</test>
+
</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml b/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
index 09ab9773..8bea8772 100644
--- a/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/bugs/tester.c.xml
@@ -973,6 +973,8 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
* bug_624001a:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</input>
<parser>
<docblock>
@@ -980,12 +982,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
<name>bug_624001a</name>
</identifier>
<description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description>Use main() instead.</description>
+ </tag>
+ </tags>
</docblock>
</parser>
<output>/**
* bug_624001a:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</output>
</test>
@@ -994,6 +1004,8 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
* bug_624001b:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</input>
<parser>
<docblock>
@@ -1001,12 +1013,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
<name>bug_624001b</name>
</identifier>
<description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description>Use main() instead.</description>
+ </tag>
+ </tags>
</docblock>
</parser>
<output>/**
* bug_624001b:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</output>
</test>
@@ -1015,6 +1035,8 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
* bug_624001c:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</input>
<parser>
<docblock>
@@ -1022,12 +1044,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
<name>bug_624001c</name>
</identifier>
<description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description>Use main() instead.</description>
+ </tag>
+ </tags>
</docblock>
</parser>
<output>/**
* bug_624001c:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</output>
</test>
@@ -1036,6 +1066,8 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
* bug_624001d:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</input>
<parser>
<docblock>
@@ -1043,12 +1075,20 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
<name>bug_624001d</name>
</identifier>
<description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description>Use main() instead.</description>
+ </tag>
+ </tags>
</docblock>
</parser>
<output>/**
* bug_624001d:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</output>
</test>
@@ -1057,6 +1097,8 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
* bug_624001e:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
*/</input>
<parser>
<docblock>
@@ -1064,12 +1106,41 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
<name>bug_624001e</name>
</identifier>
<description>http://bugzilla.gnome.org/show_bug.cgi?id=624001</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <description>Use main() instead.</description>
+ </tag>
+ </tags>
</docblock>
</parser>
<output>/**
* bug_624001e:
*
* http://bugzilla.gnome.org/show_bug.cgi?id=624001
+ *
+ * Deprecated: Use main() instead.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * bug_711598:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=711598
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_711598</name>
+ </identifier>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=711598</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_711598:
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=711598
*/</output>
</test>
@@ -1105,4 +1176,125 @@ http://bugzilla.gnome.org/show_bug.cgi?id=380824</description>
*/</output>
</test>
+<test>
+ <input>/**
+ * bug_741941:
+ * @object: the object
+ * @par: parameter
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=741941
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_741941</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>object</name>
+ <description>the object</description>
+ </parameter>
+ <parameter>
+ <name>par</name>
+ <description>parameter</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=741941</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_741941:
+ * @object: the object
+ * @par: parameter
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=741941
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * bug_732689:
+ * @spec: the string specifying the color.
+ *
+ * Parses a textual specification of a color and fill in the
+ * <structfield>red</structfield>, <structfield>green</structfield>,
+ * and <structfield>blue</structfield> fields of a color.
+ **/]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_732689</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>spec</name>
+ <description>the string specifying the color.</description>
+ </parameter>
+ </parameters>
+ <description><![CDATA[Parses a textual specification of a color and fill in the
+<structfield>red</structfield>, <structfield>green</structfield>,
+and <structfield>blue</structfield> fields of a color.]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * bug_732689:
+ * @spec: the string specifying the color.
+ *
+ * Parses a textual specification of a color and fill in the
+ * <structfield>red</structfield>, <structfield>green</structfield>,
+ * and <structfield>blue</structfield> fields of a color.
+ */]]></output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * bug_749142:
+ *
+ * The message's structure contains one field:
+ * <itemizedlist>
+ * <listitem><para>int timeout: the timeout.</para></listitem>
+ * </itemizedlist>
+ *
+ * <refsect3>
+ * <title>Example usage</title>
+ * |[
+ * echo "Hello" | foo
+ * ]|
+ * </refsect3>
+ **/]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_749142</name>
+ </identifier>
+ <description><![CDATA[The message's structure contains one field:
+<itemizedlist>
+<listitem><para>int timeout: the timeout.</para></listitem>
+</itemizedlist>
+
+<refsect3>
+<title>Example usage</title>
+|[
+echo "Hello" | foo
+]|
+</refsect3>]]></description>
+ </docblock>
+ </parser>
+ <output><![CDATA[/**
+ * bug_749142:
+ *
+ * The message's structure contains one field:
+ * <itemizedlist>
+ * <listitem><para>int timeout: the timeout.</para></listitem>
+ * </itemizedlist>
+ *
+ * <refsect3>
+ * <title>Example usage</title>
+ * |[
+ * echo "Hello" | foo
+ * ]|
+ * </refsect3>
+ */]]></output>
+</test>
+
</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml b/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
index 5dad3cb8..817446f2 100644
--- a/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/bugs/tester.h.xml
@@ -165,6 +165,35 @@
<test>
<input>/**
+ * bug_411739_rettype:
+ * @test: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=411739
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>bug_411739_rettype</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>test</name>
+ <description>field</description>
+ </parameter>
+ </parameters>
+ <description>http://bugzilla.gnome.org/show_bug.cgi?id=411739</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * bug_411739_rettype:
+ * @test: field
+ *
+ * http://bugzilla.gnome.org/show_bug.cgi?id=411739
+ */</output>
+</test>
+
+<test>
+ <input>/**
* Bug446648:
* @BUG_446648_FOO: field
*
@@ -922,4 +951,66 @@ but not if we remove the blank line before "int b";</description>
*/</output>
</test>
+<test>
+ <input>/**
+ * BUG_731417_DEPRECATED:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=731417
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>BUG_731417_DEPRECATED</name>
+ </identifier>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=731417</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * BUG_731417_DEPRECATED:
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=731417
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * Bug730658:
+ * @BUG_730658_CAN_READ: Can read
+ * @BUG_730658_CAN_WRITE: Can write
+ * @BUG_730658_IS_DEPRECATED: Is deprecated
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=730658
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>Bug730658</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>BUG_730658_CAN_READ</name>
+ <description>Can read</description>
+ </parameter>
+ <parameter>
+ <name>BUG_730658_CAN_WRITE</name>
+ <description>Can write</description>
+ </parameter>
+ <parameter>
+ <name>BUG_730658_IS_DEPRECATED</name>
+ <description>Is deprecated</description>
+ </parameter>
+ </parameters>
+ <description>https://bugzilla.gnome.org/show_bug.cgi?id=730658</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * Bug730658:
+ * @BUG_730658_CAN_READ: Can read
+ * @BUG_730658_CAN_WRITE: Can write
+ * @BUG_730658_IS_DEPRECATED: Is deprecated
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=730658
+ */</output>
+</test>
+
</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml b/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
index 65bda61f..830f5700 100644
--- a/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/empty/tester.c.xml
@@ -69,4 +69,54 @@ returns nothing.]]></description>
*/</output>
</test>
+<test>
+ <input>/**
+ * GtkDocTestIf:
+ *
+ * test object
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkDocTestIf</name>
+ </identifier>
+ <description>test object</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkDocTestIf:
+ *
+ * test object
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkDocTestIfInterface:
+ * @parent: parent interface type.
+ *
+ * test interface
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkDocTestIfInterface</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>parent</name>
+ <description>parent interface type.</description>
+ </parameter>
+ </parameters>
+ <description>test interface</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkDocTestIfInterface:
+ * @parent: parent interface type.
+ *
+ * test interface
+ */</output>
+</test>
+
</tests>
diff --git a/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml b/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
index 069ae71a..2aa3a34d 100644
--- a/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/fail/tester.h.xml
@@ -3,7 +3,7 @@
<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
<test>
-<input>/**
+ <input>/**
* MACRO_NO_ITEM_DOCS:
*
* Here we document the macro but not the parameters.
@@ -24,7 +24,7 @@
</test>
<test>
-<input>/**
+ <input>/**
* MACRO_INCOMPLETE_DOCS:
* @a: a value
*
@@ -53,7 +53,7 @@
</test>
<test>
-<input>/**
+ <input>/**
* MACRO_UNUSED_DOCS:
* @a: a value
* @b: a value
@@ -94,7 +94,7 @@
</test>
<test>
-<input>/**
+ <input>/**
* EnumNoItemDocs:
*
* Here we document the enum but not the values.
@@ -118,7 +118,7 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
</test>
<test>
-<input>/**
+ <input>/**
* EnumIncompleteDocs:
* @ENUM_INCOMPLETE_DOCS_1: a value
*
@@ -147,7 +147,7 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
</test>
<test>
-<input>/**
+ <input>/**
* EnumUnusedDocs:
* @ENUM_UNUSED_DOCS_1: a value
* @ENUM_UNUSED_DOCS_2: a value
@@ -188,7 +188,7 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
</test>
<test>
-<input>/**
+ <input>/**
* StructNoItemDocs:
*
* Here we document the struct but not the values.
@@ -209,7 +209,7 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
</test>
<test>
-<input>/**
+ <input>/**
* StructIncompleteDocs:
* @a: a value
*
@@ -238,7 +238,7 @@ http://bugzilla.gnome.org/show_bug.cgi?id=568711</description>
</test>
<test>
-<input>/**
+ <input>/**
* StructUnusedDocs:
* @a: a value
* @b: a value
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml b/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
index c295edbc..386b7072 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/giface.c.xml
@@ -128,6 +128,7 @@ or \# or even \@.]]></description>
* Configure a new instance
*
* Returns: %TRUE for sucess or %FALSE in case of an error
+ *
* Since: 0.1
*/</input>
<parser>
@@ -166,7 +167,7 @@ or \# or even \@.]]></description>
</test>
<test>
- <input>/**
+ <input> /**
* GtkdocIface::itest:
* @self: myself
*
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
index b54a1a74..49a6a1b3 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.c.xml
@@ -10,6 +10,22 @@
* @see_also: #GtkdocIface
* @Image: object.png
*
+ * > Two line
+ * > quote
+ *
+ * Offsets are time values to be added to local
+ * time to get Coordinated Universal Time (UTC) and should be
+ * <literal>"[±]hh[[:]mm[:ss]]"</literal>. Dates are either
+ * <literal>"Jn"</literal> (Julian day with n between 1 and 365, leap
+ * years not counted), <literal>"n"</literal> (zero-based Julian day
+ * with n between 0 and 365) or <literal>"Mm.w.d"</literal> (day d
+ * (0 <= d <= 6) of week w (1 <= w <= 5) of month m (1 <= m <= 12), day
+ * 0 is a Sunday). Times are in local wall clock time, the default is
+ * 02:00:00.
+ *
+ * <literal>lang_COUNTRY@MODIFIER</literal>
+ * <literal>lang_COUNTRY\@MODIFIER</literal>
+ *
* This file contains non-sense code for the sole purpose of testing the docs.
* We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest
* signal.
@@ -24,11 +40,15 @@
* GObject *myobj;
*
* myobj = gtkdoc_object_new();
- * // do somehing
+ * // do something
* g_object_unref (myobj);
* ]|
*
- * # Examples #
+ * # Examples # {#examples}
+ *
+ * Here are a few examples.
+ *
+ * ## Example 1 ##
*
* You can also change parameters:
* <informalexample>
@@ -36,12 +56,89 @@
* </informalexample>
*
* This example serves two main purposes:
- * - testing conversion (long description
- * follows here)
+ *
+ * - `test`ing conversion (`long description
+ * follows here`)
+ *
* - catching bugs
+ *
+ * [GTK](http://www.gtk.org) ![Some image](home.png)
+ *
* - having an example
*
- * Nothing more to say.
+ * # Discussion
+ *
+ * This is a section with a heading without a trailing hash mark.
+ *
+ * > Do not confuse the GtkUIManager UI Definitions described here with
+ * > the similarly named <link linkend="BUILDER-UI">GtkBuilder UI
+ * > Definitions</link>.
+ *
+ * > Single line quote
+ *
+ * <orderedlist>
+ * <listitem><para>
+ * This list is here to ensure the parsing of the above list
+ * </para></listitem>
+ * <listitem><para>
+ * Doesn't change it.
+ * </para></listitem>
+ * </orderedlist>
+ *
+ * This example serves two main purposes:
+ *
+ * * testing alternate list syntax
+ *
+ * Don't match this as a link [ style | binding ][ : <replaceable>priority</replaceable> ]
+ *
+ * * not sure if we want this one
+ *
+ * A link <http://en.wikipedia.org/wiki/MOS_Technology_SID#Technical_details>
+ *
+ * <refsect3><title>An embedded docbook section</title>
+ * <para>Some stuff</para>
+ *
+ * - A list
+ *
+ * - that is not recognised as markdown
+ *
+ * </refsect3>
+ *
+ * # Coda # {#this-is-an-id-tag}
+ *
+ * - One
+ * - Two
+ * - Three
+ *
+ * 1. This is a ordered list
+ *
+ * 1. This is a code block in a list:
+ * |[{{!-- language="C" --!}}
+ * GObject *myobj;
+ *
+ * myobj = gtkdoc_object_new();
+ * // do something
+ * g_object_unref (myobj);
+ * ]|
+ * And another:
+ * |[{{!-- language="C" --!}}
+ * GObject *myobj;
+ *
+ * myobj = gtkdoc_object_new();
+ * /&ast; do something &ast;/
+ * g_object_unref (myobj);
+ * ]|
+ *
+ * 1. Really
+ *
+ * Has a paragraph with a [link to the examples][examples].
+ *
+ * 1. Is
+ *
+ * Nothing more to say. Except one more link:
+ *
+ * <http://www.gnome.org/>
+ *
*/]]></input>
<parser>
<docblock>
@@ -66,7 +163,23 @@
<description>object.png</description>
</parameter>
</parameters>
- <description><![CDATA[This file contains non-sense code for the sole purpose of testing the docs.
+ <description><![CDATA[> Two line
+> quote
+
+Offsets are time values to be added to local
+time to get Coordinated Universal Time (UTC) and should be
+<literal>"[±]hh[[:]mm[:ss]]"</literal>. Dates are either
+<literal>"Jn"</literal> (Julian day with n between 1 and 365, leap
+years not counted), <literal>"n"</literal> (zero-based Julian day
+with n between 0 and 365) or <literal>"Mm.w.d"</literal> (day d
+(0 <= d <= 6) of week w (1 <= w <= 5) of month m (1 <= m <= 12), day
+0 is a Sunday). Times are in local wall clock time, the default is
+02:00:00.
+
+<literal>lang_COUNTRY@MODIFIER</literal>
+<literal>lang_COUNTRY\@MODIFIER</literal>
+
+This file contains non-sense code for the sole purpose of testing the docs.
We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest
signal.
@@ -80,11 +193,15 @@ whole lifecycle usualy looks like shown in this example:
GObject *myobj;
myobj = gtkdoc_object_new();
-// do somehing
+// do something
g_object_unref (myobj);
]|
-# Examples #
+# Examples # {#examples}
+
+Here are a few examples.
+
+## Example 1 ##
You can also change parameters:
<informalexample>
@@ -92,12 +209,88 @@ You can also change parameters:
</informalexample>
This example serves two main purposes:
-- testing conversion (long description
- follows here)
+
+- `test`ing conversion (`long description
+ follows here`)
+
- catching bugs
+
+ [GTK](http://www.gtk.org) ![Some image](home.png)
+
- having an example
-Nothing more to say.]]></description>
+# Discussion
+
+This is a section with a heading without a trailing hash mark.
+
+> Do not confuse the GtkUIManager UI Definitions described here with
+> the similarly named <link linkend="BUILDER-UI">GtkBuilder UI
+> Definitions</link>.
+
+> Single line quote
+
+<orderedlist>
+<listitem><para>
+This list is here to ensure the parsing of the above list
+</para></listitem>
+<listitem><para>
+Doesn't change it.
+</para></listitem>
+</orderedlist>
+
+This example serves two main purposes:
+
+* testing alternate list syntax
+
+ Don't match this as a link [ style | binding ][ : <replaceable>priority</replaceable> ]
+
+* not sure if we want this one
+
+ A link <http://en.wikipedia.org/wiki/MOS_Technology_SID#Technical_details>
+
+<refsect3><title>An embedded docbook section</title>
+<para>Some stuff</para>
+
+- A list
+
+- that is not recognised as markdown
+
+</refsect3>
+
+# Coda # {#this-is-an-id-tag}
+
+- One
+- Two
+- Three
+
+1. This is a ordered list
+
+1. This is a code block in a list:
+ |[{{!-- language="C" --!}}
+ GObject *myobj;
+
+ myobj = gtkdoc_object_new();
+ // do something
+ g_object_unref (myobj);
+ ]|
+ And another:
+ |[{{!-- language="C" --!}}
+ GObject *myobj;
+
+ myobj = gtkdoc_object_new();
+ /&ast; do something &ast;/
+ g_object_unref (myobj);
+ ]|
+
+1. Really
+
+ Has a paragraph with a [link to the examples][examples].
+
+1. Is
+
+Nothing more to say. Except one more link:
+
+<http://www.gnome.org/>]]></description>
</docblock>
</parser>
<output><![CDATA[/**
@@ -107,6 +300,22 @@ Nothing more to say.]]></description>
* @see_also: #GtkdocIface
* @Image: object.png
*
+ * > Two line
+ * > quote
+ *
+ * Offsets are time values to be added to local
+ * time to get Coordinated Universal Time (UTC) and should be
+ * <literal>"[±]hh[[:]mm[:ss]]"</literal>. Dates are either
+ * <literal>"Jn"</literal> (Julian day with n between 1 and 365, leap
+ * years not counted), <literal>"n"</literal> (zero-based Julian day
+ * with n between 0 and 365) or <literal>"Mm.w.d"</literal> (day d
+ * (0 <= d <= 6) of week w (1 <= w <= 5) of month m (1 <= m <= 12), day
+ * 0 is a Sunday). Times are in local wall clock time, the default is
+ * 02:00:00.
+ *
+ * <literal>lang_COUNTRY@MODIFIER</literal>
+ * <literal>lang_COUNTRY\@MODIFIER</literal>
+ *
* This file contains non-sense code for the sole purpose of testing the docs.
* We can link to the #GtkdocObject:otest property and the #GtkdocObject::otest
* signal.
@@ -121,11 +330,15 @@ Nothing more to say.]]></description>
* GObject *myobj;
*
* myobj = gtkdoc_object_new();
- * // do somehing
+ * // do something
* g_object_unref (myobj);
* ]|
*
- * # Examples #
+ * # Examples # {#examples}
+ *
+ * Here are a few examples.
+ *
+ * ## Example 1 ##
*
* You can also change parameters:
* <informalexample>
@@ -133,12 +346,88 @@ Nothing more to say.]]></description>
* </informalexample>
*
* This example serves two main purposes:
- * - testing conversion (long description
- * follows here)
+ *
+ * - `test`ing conversion (`long description
+ * follows here`)
+ *
* - catching bugs
+ *
+ * [GTK](http://www.gtk.org) ![Some image](home.png)
+ *
* - having an example
*
- * Nothing more to say.
+ * # Discussion
+ *
+ * This is a section with a heading without a trailing hash mark.
+ *
+ * > Do not confuse the GtkUIManager UI Definitions described here with
+ * > the similarly named <link linkend="BUILDER-UI">GtkBuilder UI
+ * > Definitions</link>.
+ *
+ * > Single line quote
+ *
+ * <orderedlist>
+ * <listitem><para>
+ * This list is here to ensure the parsing of the above list
+ * </para></listitem>
+ * <listitem><para>
+ * Doesn't change it.
+ * </para></listitem>
+ * </orderedlist>
+ *
+ * This example serves two main purposes:
+ *
+ * * testing alternate list syntax
+ *
+ * Don't match this as a link [ style | binding ][ : <replaceable>priority</replaceable> ]
+ *
+ * * not sure if we want this one
+ *
+ * A link <http://en.wikipedia.org/wiki/MOS_Technology_SID#Technical_details>
+ *
+ * <refsect3><title>An embedded docbook section</title>
+ * <para>Some stuff</para>
+ *
+ * - A list
+ *
+ * - that is not recognised as markdown
+ *
+ * </refsect3>
+ *
+ * # Coda # {#this-is-an-id-tag}
+ *
+ * - One
+ * - Two
+ * - Three
+ *
+ * 1. This is a ordered list
+ *
+ * 1. This is a code block in a list:
+ * |[{{!-- language="C" --!}}
+ * GObject *myobj;
+ *
+ * myobj = gtkdoc_object_new();
+ * // do something
+ * g_object_unref (myobj);
+ * ]|
+ * And another:
+ * |[{{!-- language="C" --!}}
+ * GObject *myobj;
+ *
+ * myobj = gtkdoc_object_new();
+ * /&ast; do something &ast;/
+ * g_object_unref (myobj);
+ * ]|
+ *
+ * 1. Really
+ *
+ * Has a paragraph with a [link to the examples][examples].
+ *
+ * 1. Is
+ *
+ * Nothing more to say. Except one more link:
+ *
+ * <http://www.gnome.org/>
*/]]></output>
</test>
@@ -155,6 +444,7 @@ Nothing more to say.]]></description>
* =========
*
* All the internal details go here or not:
+ *
* - single item list
*/</input>
<parser>
@@ -182,6 +472,7 @@ Internals
=========
All the internal details go here or not:
+
- single item list</description>
</docblock>
</parser>
@@ -197,11 +488,47 @@ All the internal details go here or not:
* =========
*
* All the internal details go here or not:
+ *
* - single item list
*/</output>
</test>
<test>
+ <input>/**
+ * SECTION:object3
+ * @title: GtkdocObject3
+ * @short_description: class that is mostly undocumented
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>SECTION:object3</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>title</name>
+ <description>GtkdocObject3</description>
+ </parameter>
+ <parameter>
+ <name>short_description</name>
+ <description>class that is mostly undocumented</description>
+ </parameter>
+ </parameters>
+ <description>This file contains non-sense code for the sole purpose of testing the docs.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * SECTION:object3
+ * @title: GtkdocObject3
+ * @short_description: class that is mostly undocumented
+ *
+ * This file contains non-sense code for the sole purpose of testing the docs.
+ */</output>
+</test>
+
+<test>
<input><![CDATA[/**
* gtkdoc_object_new:
*
@@ -417,6 +744,45 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
<test>
<input>/**
+ * gtkdoc_object_do_not_use:
+ * @self: the object
+ *
+ * Test a deprecation without additional message.
+ *
+ * Deprecated: 3.10
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>gtkdoc_object_do_not_use</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>the object</description>
+ </parameter>
+ </parameters>
+ <description>Test a deprecation without additional message.</description>
+ <tags>
+ <tag>
+ <name>deprecated</name>
+ <value>3.10</value>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * gtkdoc_object_do_not_use:
+ * @self: the object
+ *
+ * Test a deprecation without additional message.
+ *
+ * Deprecated: 3.10
+ */</output>
+</test>
+
+<test>
+ <input> /**
* GtkdocObject::otest:
* @self: myself
*
@@ -445,7 +811,7 @@ complex algorithm (http://en.wikipedia.org/wiki/Algorithm).
</test>
<test>
- <input>/**
+ <input> /**
* GtkdocObject::dep-otest:
* @self: myself
*
@@ -520,7 +886,7 @@ otest_callback (GObject *o,
</test>
<test>
- <input>/**
+ <input> /**
* GtkdocObject::strings-changed:
*
* Something has happened.
@@ -541,7 +907,7 @@ otest_callback (GObject *o,
</test>
<test>
- <input>/**
+ <input> /**
* GtkdocObject::variant-changed:
*
* Something has happened.
@@ -562,8 +928,8 @@ otest_callback (GObject *o,
</test>
<test>
- <input>/**
- * GtkdocObject:otest:
+ <input> /**
+ * GtkdocObject:otest: (type GList(GtkdocObject2))
*
* Since: 0.1
*/</input>
@@ -571,6 +937,16 @@ otest_callback (GObject *o,
<docblock>
<identifier>
<name>GtkdocObject:otest</name>
+ <annotations>
+ <annotation>
+ <name>type</name>
+ <options>
+ <option>
+ <name>GList(GtkdocObject2)</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
</identifier>
<tags>
<tag>
@@ -581,14 +957,14 @@ otest_callback (GObject *o,
</docblock>
</parser>
<output> /**
- * GtkdocObject:otest:
+ * GtkdocObject:otest: (type GList(GtkdocObject2))
*
* Since: 0.1
*/</output>
</test>
<test>
- <input>/**
+ <input> /**
* GtkdocObject:dep-otest:
*
* Deprecated: use #GtkdocObject:otest property
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
index ec68a7f0..27f91b11 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gobject.h.xml
@@ -122,6 +122,70 @@
<test>
<input>/**
+ * GtkdocHelperStruct:
+ * @a: field
+ *
+ * GtkdocHelperStruct
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocHelperStruct</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <description>field</description>
+ </parameter>
+ </parameters>
+ <description>GtkdocHelperStruct</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocHelperStruct:
+ * @a: field
+ *
+ * GtkdocHelperStruct
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * GtkdocHelperEnum:
+ * @GTKDOC_HELPER_ENUM_A: enum a
+ * @GTKDOC_HELPER_ENUM_B: enum b
+ *
+ * GtkdocHelperEnum
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocHelperEnum</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>GTKDOC_HELPER_ENUM_A</name>
+ <description>enum a</description>
+ </parameter>
+ <parameter>
+ <name>GTKDOC_HELPER_ENUM_B</name>
+ <description>enum b</description>
+ </parameter>
+ </parameters>
+ <description>GtkdocHelperEnum</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocHelperEnum:
+ * @GTKDOC_HELPER_ENUM_A: enum a
+ * @GTKDOC_HELPER_ENUM_B: enum b
+ *
+ * GtkdocHelperEnum
+ */</output>
+</test>
+
+<test>
+ <input>/**
* GTKDOC_OBJECT_MACRO_DUMMY:
* @parameter_1: first arg
* @parameter_2: second arg
diff --git a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
index 7331a556..61d7d231 100644
--- a/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
+++ b/tests/scanner/annotationparser/gtkdoc/gobject/gtypes.h.xml
@@ -7,7 +7,7 @@
* GtkdocEnum:
* @GTKDOC_ENUM_V1: first
* @GTKDOC_ENUM_V2: second
- * Since: 0.10
+ * Since: 0.5
*
* Enum values for the #GtkdocEnum type.
*/</input>
@@ -24,7 +24,7 @@
<parameter>
<name>GTKDOC_ENUM_V2</name>
<description>second
- Since: 0.10</description>
+ Since: 0.5</description>
</parameter>
</parameters>
<description>Enum values for the #GtkdocEnum type.</description>
@@ -34,7 +34,7 @@
* GtkdocEnum:
* @GTKDOC_ENUM_V1: first
* @GTKDOC_ENUM_V2: second
- * Since: 0.10
+ * Since: 0.5
*
* Enum values for the #GtkdocEnum type.
*/</output>
@@ -42,6 +42,41 @@
<test>
<input>/**
+ * GtkdocEnum2:
+ * @GTKDOC_ENUM2_V1: first
+ * @GTKDOC_ENUM2_V2: second
+ *
+ * Enum values for the #GtkdocEnum2 type.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>GtkdocEnum2</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>GTKDOC_ENUM2_V1</name>
+ <description>first</description>
+ </parameter>
+ <parameter>
+ <name>GTKDOC_ENUM2_V2</name>
+ <description>second</description>
+ </parameter>
+ </parameters>
+ <description>Enum values for the #GtkdocEnum2 type.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * GtkdocEnum2:
+ * @GTKDOC_ENUM2_V1: first
+ * @GTKDOC_ENUM2_V2: second
+ *
+ * Enum values for the #GtkdocEnum2 type.
+ */</output>
+</test>
+
+<test>
+ <input>/**
* GtkdocPlainOldData:
* @n: Some integer member.
* @x: Some floating point member.