summaryrefslogtreecommitdiff
path: root/tests/scanner/annotationparser/gi/annotation_element_type.xml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scanner/annotationparser/gi/annotation_element_type.xml')
-rw-r--r--tests/scanner/annotationparser/gi/annotation_element_type.xml272
1 files changed, 272 insertions, 0 deletions
diff --git a/tests/scanner/annotationparser/gi/annotation_element_type.xml b/tests/scanner/annotationparser/gi/annotation_element_type.xml
new file mode 100644
index 00000000..65b3dd09
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_element_type.xml
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * foo_test_array:
+ * @a: (element-type):
+ * @b: (element-type x y z):
+ *
+ * Returns: (element-type utf8) (transfer container): returns %NULL.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_test_array</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>a</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ </annotation>
+ </annotations>
+ </parameter>
+ <parameter>
+ <name>b</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>x</name>
+ </option>
+ <option>
+ <name>y</name>
+ </option>
+ <option>
+ <name>z</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </parameter>
+ </parameters>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>container</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>returns %NULL.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>3: Warning: Test: "element-type" annotation takes at least one option, none given</message>
+ <message>4: Warning: Test: "element-type" annotation takes at most 2 options, 3 given</message>
+ </messages>
+ </parser>
+ <output>/**
+ * foo_test_array:
+ * @a: (element-type):
+ * @b: (element-type x y z):
+ *
+ * Returns: (element-type utf8) (transfer container): returns %NULL.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * RegressTestObj::sig-with-hash-prop:
+ * @self: an object
+ * @hash: (element-type utf8 GObject.Value):
+ *
+ * This test signal is like TelepathyGlib's
+ * TpAccount::status-changed
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>RegressTestObj::sig-with-hash-prop</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>self</name>
+ <description>an object</description>
+ </parameter>
+ <parameter>
+ <name>hash</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ <option>
+ <name>GObject.Value</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </parameter>
+ </parameters>
+ <description>This test signal is like TelepathyGlib's
+ TpAccount::status-changed</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * RegressTestObj::sig-with-hash-prop:
+ * @self: an object
+ * @hash: (element-type utf8 GObject.Value):
+ *
+ * This test signal is like TelepathyGlib's
+ * TpAccount::status-changed
+ */</output>
+</test>
+
+<test>
+ <input><![CDATA[/**
+ * regress_test_ghash_nested_everything_return2:
+ *
+ * Another way of specifying nested parameterized types: using the
+ * element-type annotation.
+ *
+ * Return value: (element-type utf8 GLib.HashTable<utf8,utf8>) (transfer full):
+ */]]></input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>regress_test_ghash_nested_everything_return2</name>
+ </identifier>
+ <description>Another way of specifying nested parameterized types: using the
+element-type annotation.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8</name>
+ </option>
+ <option>
+ <name>GLib.HashTable(utf8,utf8)</name>
+ </option>
+ </options>
+ </annotation>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * regress_test_ghash_nested_everything_return2:
+ *
+ * Another way of specifying nested parameterized types: using the
+ * element-type annotation.
+ *
+ * Returns: (element-type utf8 GLib.HashTable(utf8,utf8)) (transfer full):
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type invalid utf8=invalid GLib.HashTable(utf8,utf8)): returns %NULL.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_test_array</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>invalid utf8=invalid GLib.HashTable(utf8,utf8)</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>returns %NULL.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * Returns: (element-type invalid utf8=invalid GLib.HashTable(utf8,utf8)): returns %NULL.
+ ^</message>
+ </messages>
+ </parser>
+ <output> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type invalid utf8=invalid GLib.HashTable(utf8,utf8)): returns %NULL.
+ */</output>
+</test>
+
+<test>
+ <input> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>foo_test_array</name>
+ </identifier>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>element-type</name>
+ <options>
+ <option>
+ <name>utf8=invalid GLib.HashTable(utf8,utf8) invalid</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>returns %NULL.</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: invalid annotation options: expected a "list" but received "key=value pairs":
+ * Returns: (element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.
+ ^</message>
+ </messages>
+ </parser>
+ <output> /**
+ * foo_test_array:
+ *
+ * Returns: (element-type utf8=invalid GLib.HashTable(utf8,utf8) invalid): returns %NULL.
+ */</output>
+</test>
+
+</tests>