[gobject-introspection] tests: sync with GTK-Doc test suite @ 02e545371e2132a97458888895cacf57b8c0f83a (2015-06-23)



commit 68ce6d2e48365560921dd751b9bc6a3803b0c37d
Author: Dieter Verfaillie <dieterv optionexplicit be>
Date:   Thu Apr 24 22:45:08 2014 +0200

    tests: sync with GTK-Doc test suite @ 02e545371e2132a97458888895cacf57b8c0f83a (2015-06-23)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=725685

 giscanner/annotationparser.py                      |    7 +-
 tests/scanner/annotationparser/README              |    1 -
 .../gtkdoc/annotations/tester.c.xml                |  387 ++++++++++++++++++-
 .../annotationparser/gtkdoc/bugs/tester.c.xml      |  192 +++++++++
 .../annotationparser/gtkdoc/bugs/tester.h.xml      |   91 +++++
 .../annotationparser/gtkdoc/empty/tester.c.xml     |   50 +++
 .../annotationparser/gtkdoc/fail/tester.h.xml      |   18 +-
 .../annotationparser/gtkdoc/gobject/giface.c.xml   |    3 +-
 .../annotationparser/gtkdoc/gobject/gobject.c.xml  |  422 ++++++++++++++++++-
 .../annotationparser/gtkdoc/gobject/gobject.h.xml  |   64 +++
 .../annotationparser/gtkdoc/gobject/gtypes.h.xml   |   41 ++-
 11 files changed, 1231 insertions(+), 45 deletions(-)
---
diff --git a/giscanner/annotationparser.py b/giscanner/annotationparser.py
index f69ff25..b8f5b76 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 1dbc64e..a65b3e7 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 d28d5d9..1d57cbf 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 09ab977..8bea877 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 5dad3cb..817446f 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 65bda61..830f570 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 069ae71..2aa3a34 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 c295edb..386b707 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 b54a1a7..49a6a1b 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 ec68a7f..27f91b1 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 7331a55..61d7d23 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.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]