summaryrefslogtreecommitdiff
path: root/tests/scanner/annotationparser/gi/annotation_attributes.xml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scanner/annotationparser/gi/annotation_attributes.xml')
-rw-r--r--tests/scanner/annotationparser/gi/annotation_attributes.xml477
1 files changed, 477 insertions, 0 deletions
diff --git a/tests/scanner/annotationparser/gi/annotation_attributes.xml b/tests/scanner/annotationparser/gi/annotation_attributes.xml
new file mode 100644
index 00000000..e9d9b429
--- /dev/null
+++ b/tests/scanner/annotationparser/gi/annotation_attributes.xml
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<tests xmlns="http://schemas.gnome.org/gobject-introspection/2013/test">
+
+<test>
+ <input>/**
+ * AnnotationObject: (attributes org.example.test1=horses org.example.test2 org.example.test3=cows)
+ *
+ * This is an object used to test annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.test1</name>
+ <value>horses</value>
+ </option>
+ <option>
+ <name>org.example.test2</name>
+ </option>
+ <option>
+ <name>org.example.test3</name>
+ <value>cows</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.test1=horses org.example.test2 org.example.test3=cows)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Attributes:" tag
+ -->
+ <input>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ *
+ * Attributes: (org.example.test1 horses) (org.example.test2) (org.example.test3 cows)
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.test1</name>
+ <value>horses</value>
+ </option>
+ <option>
+ <name>org.example.test2</name>
+ </option>
+ <option>
+ <name>org.example.test3</name>
+ <value>cows</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.test1 horses) (org.example.test2) (org.example.test3 cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.test1=horses org.example.test2 org.example.test3=cows)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Variation of "Attributes:" tag
+ -->
+ <input>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ *
+ * Attributes: (org.example.test1 horses))
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.test1 horses))
+ ^</message>
+ <message>6: Error: Test: unbalanced parentheses, annotations will be ignored:
+Attributes: (org.example.test1 horses))
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ (attributes) annotation on the identifier together with a
+ deprecated "Attributes:" tag.
+ -->
+ <input>/**
+ * AnnotationObject: (attributes org.example.test1=horses)
+ *
+ * This is an object used to test annotations.
+ *
+ * Attributes: (org.example.test1 horses) (org.example.test2 cows)
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.test1</name>
+ <value>horses</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>6: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.test1 horses) (org.example.test2 cows)
+ ^</message>
+ <message>6: Error: Test: Duplicate "Attributes:" annotation will be ignored:
+ * Attributes: (org.example.test1 horses) (org.example.test2 cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.test1=horses)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated "Attributes:" tag in the wrong location
+ -->
+ <input>/**
+ * AnnotationObject:
+ *
+ * Attributes: (org.example.Test horses) (org.example.test2 cows)
+ *
+ * This is an object used to test annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>org.example.Test</name>
+ <value>horses</value>
+ </option>
+ <option>
+ <name>org.example.test2</name>
+ <value>cows</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.Test horses) (org.example.test2 cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject: (attributes org.example.Test=horses org.example.test2=cows)
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * AnnotationObject:
+ *
+ * Attributes: (org.example.Test horses cows)
+ *
+ * This is an object used to test annotations.
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject</name>
+ </identifier>
+ <description>This is an object used to test annotations.</description>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: GObject-Introspection specific GTK-Doc tag "Attributes" has been deprecated, please use annotations on the identifier instead:
+ * Attributes: (org.example.Test horses cows)
+ ^</message>
+ <message>4: Error: Test: malformed "Attributes:" tag will be ignored:
+ * Attributes: (org.example.Test horses cows)
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject:
+ *
+ * This is an object used to test annotations.
+ */</output>
+</test>
+
+<test>
+ <input>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attributes some.annotation.foo1=val1): a value
+ * @arg2: (attributes some.annotation.foo2=val2): another value
+ * @arg3: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attributes some.annotation.foo3=val3): the return value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject::attribute-signal</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>annotation</name>
+ <description>the annotation object</description>
+ </parameter>
+ <parameter>
+ <name>arg1</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo1</name>
+ <value>val1</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo2</name>
+ <value>val2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>another value</description>
+ </parameter>
+ <parameter>
+ <name>arg3</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>fixed-size</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a third value</description>
+ </parameter>
+ </parameters>
+ <description>This signal tests a signal with attributes.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo3</name>
+ <value>val3</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the return value</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attributes some.annotation.foo1=val1): a value
+ * @arg2: (attributes some.annotation.foo2=val2): another value
+ * @arg3: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attributes some.annotation.foo3=val3): the return value
+ */</output>
+</test>
+
+<test>
+ <!--
+ Deprecated (attribute) annotation.
+ -->
+ <input>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attribute some.annotation.foo1): a value
+ * @arg2: (attribute some.annotation.foo2 val2): another value
+ * @arg3: (attribute x y z): something special
+ * @arg4: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attribute some.annotation.foo3 val3): the return value
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>AnnotationObject::attribute-signal</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>annotation</name>
+ <description>the annotation object</description>
+ </parameter>
+ <parameter>
+ <name>arg1</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo1</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a value</description>
+ </parameter>
+ <parameter>
+ <name>arg2</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo2</name>
+ <value>val2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>another value</description>
+ </parameter>
+ <parameter>
+ <name>arg3</name>
+ <description>something special</description>
+ </parameter>
+ <parameter>
+ <name>arg4</name>
+ <annotations>
+ <annotation>
+ <name>array</name>
+ <options>
+ <option>
+ <name>fixed-size</name>
+ <value>2</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>a third value</description>
+ </parameter>
+ </parameters>
+ <description>This signal tests a signal with attributes.</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>attributes</name>
+ <options>
+ <option>
+ <name>some.annotation.foo3</name>
+ <value>val3</value>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>the return value</description>
+ </tag>
+ </tags>
+ </docblock>
+ <messages>
+ <message>4: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * @arg1: (attribute some.annotation.foo1): a value
+ ^</message>
+ <message>5: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * @arg2: (attribute some.annotation.foo2 val2): another value
+ ^</message>
+ <message>6: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * @arg3: (attribute x y z): something special
+ ^</message>
+ <message>6: Error: Test: malformed "(attribute)" annotation will be ignored:
+ * @arg3: (attribute x y z): something special
+ ^</message>
+ <message>11: Warning: Test: "attribute" annotation has been deprecated, please use "attributes" instead:
+ * Returns: (attribute some.annotation.foo3 val3): the return value
+ ^</message>
+ </messages>
+ </parser>
+ <output>/**
+ * AnnotationObject::attribute-signal:
+ * @annotation: the annotation object
+ * @arg1: (attributes some.annotation.foo1): a value
+ * @arg2: (attributes some.annotation.foo2=val2): another value
+ * @arg3: something special
+ * @arg4: (array fixed-size=2): a third value
+ *
+ * This signal tests a signal with attributes.
+ *
+ * Returns: (attributes some.annotation.foo3=val3): the return value
+ */</output>
+</test>
+
+</tests>