]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
valadoc/tests: Add girwriter test
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 9 Apr 2023 11:29:26 +0000 (13:29 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 19 Apr 2023 11:16:41 +0000 (13:16 +0200)
configure.ac
valadoc/tests/Makefile.am
valadoc/tests/girwriter/GirTest-1.0.gir-expected [new file with mode: 0644]
valadoc/tests/girwriter/Makefile.am [new file with mode: 0644]
valadoc/tests/girwriter/girtest.vala [new file with mode: 0644]

index c9df433f8c82575c85d7dc2326f18493e1a27e9c..e2e31ea37a3921dea92aa708ef2c0205b158fb67 100644 (file)
@@ -292,6 +292,7 @@ AC_CONFIG_FILES([Makefile
            valadoc/doclets/gtkdoc/Makefile
            valadoc/icons/Makefile
            valadoc/tests/Makefile
+           valadoc/tests/girwriter/Makefile
 ])
 
 AC_OUTPUT
index b6e6104c9ea6271bcc6e9ff1df4e59bb137dc575..559642a39e3777e212f197d2dfab19bd0f213d74 100644 (file)
@@ -2,6 +2,10 @@ include $(top_srcdir)/Makefile.common
 
 NULL =
 
+SUBDIRS = \
+       girwriter \
+       $(NULL)
+
 LOG_COMPILER = $(abs_top_srcdir)/build-aux/testrunner.sh
 AM_TESTS_ENVIRONMENT = \
        export UPDATE_EXPECTED=$(UPDATE_EXPECTED); \
diff --git a/valadoc/tests/girwriter/GirTest-1.0.gir-expected b/valadoc/tests/girwriter/GirTest-1.0.gir-expected
new file mode 100644 (file)
index 0000000..4a3620d
--- /dev/null
@@ -0,0 +1,218 @@
+<repository version="1.2" xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+<include name="GObject" version="2.0"/>
+<package name="girtest"/>
+<c:include name="girtest.h"/>
+<namespace name="GirTest" version="1.0" c:prefix="GirTest" c:identifier-prefixes="GirTest" c:symbol-prefixes="gir_test">
+       <enumeration name="EnumTest" c:type="GirTestEnumTest" glib:type-name="GirTestEnumTest" glib:get-type="gir_test_enum_test_get_type">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example enum.&lt;/para&gt;</doc>
+               <member name="value1" c:identifier="GIR_TEST_ENUM_TEST_VALUE1" value="0"/>
+       </enumeration>
+       <enumeration name="ErrorTest" c:type="GirTestErrorTest" glib:type-name="GirTestErrorTest" glib:get-type="gir_test_error_test_get_type" glib:error-domain="gir-test-error-test-quark">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example errordomain.&lt;/para&gt;</doc>
+               <member name="value1" c:identifier="GIR_TEST_ERROR_TEST_VALUE1" value="0"/>
+       </enumeration>
+       <class name="ObjectTest" c:type="GirTestObjectTest" c:symbol-prefix="object_test" glib:type-name="GirTestObjectTest" glib:get-type="gir_test_object_test_get_type" glib:type-struct="ObjectTestClass" parent="GObject.Object">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example class.&lt;/para&gt;</doc>
+               <field name="parent_instance" readable="0" private="1">
+                       <type name="GObject.Object" c:type="GObject"/>
+               </field>
+               <field name="priv" readable="0" private="1">
+                       <type name="ObjectTestPrivate" c:type="GirTestObjectTestPrivate*"/>
+               </field>
+               <constructor name="new" c:identifier="gir_test_object_test_new">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example class constructor.&lt;/para&gt;</doc>
+                       <return-value transfer-ownership="full">
+                               <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                       </return-value>
+                       <parameters>
+                               <parameter name="param" transfer-ownership="none">
+                                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </constructor>
+               <method name="method" c:identifier="gir_test_object_test_method">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example class method.&lt;/para&gt;</doc>
+                       <return-value transfer-ownership="full">
+                               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example return value. &lt;/para&gt;</doc>
+                               <type name="gboolean" c:type="gboolean"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param" transfer-ownership="none">
+                                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <property name="property" writable="1" construct="1">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example property.&lt;/para&gt;</doc>
+                       <type name="gint" c:type="gint"/>
+               </property>
+               <method name="get_property" c:identifier="gir_test_object_test_get_property">
+                       <return-value transfer-ownership="none">
+                               <type name="gint" c:type="gint"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                       </parameters>
+               </method>
+               <method name="set_property" c:identifier="gir_test_object_test_set_property">
+                       <return-value transfer-ownership="none">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="value" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <glib:signal name="some-signal">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example signal.&lt;/para&gt;</doc>
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <parameter name="param" transfer-ownership="none">
+                                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </glib:signal>
+       </class>
+       <record name="ObjectTestClass" c:type="GirTestObjectTestClass" glib:is-gtype-struct-for="ObjectTest">
+               <field name="parent_class" readable="0" private="1">
+                       <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+               </field>
+       </record>
+       <record name="ObjectTestPrivate" c:type="GirTestObjectTestPrivate" disguised="1"/>
+       <interface name="InterfaceTest" c:type="GirTestInterfaceTest" c:symbol-prefix="interface_test" glib:type-name="GirTestInterfaceTest" glib:get-type="gir_test_interface_test_get_type" glib:type-struct="InterfaceTestIface">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example interface.&lt;/para&gt;</doc>
+               <prerequisite name="GObject.Object"/>
+               <method name="method" c:identifier="gir_test_interface_test_method">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example interface method.&lt;/para&gt;</doc>
+                       <return-value transfer-ownership="full">
+                               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example return value. &lt;/para&gt;</doc>
+                               <type name="gboolean" c:type="gboolean"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                               </instance-parameter>
+                               <parameter name="param" transfer-ownership="none">
+                                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <virtual-method name="method" invoker="method">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example interface method.&lt;/para&gt;</doc>
+                       <return-value transfer-ownership="full">
+                               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example return value. &lt;/para&gt;</doc>
+                               <type name="gboolean" c:type="gboolean"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                               </instance-parameter>
+                               <parameter name="param" transfer-ownership="none">
+                                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
+       </interface>
+       <record name="InterfaceTestIface" c:type="GirTestInterfaceTestIface" glib:is-gtype-struct-for="InterfaceTest">
+               <field name="parent_iface" readable="0" private="1">
+                       <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+               </field>
+               <field name="method">
+                       <callback name="method" c:type="method">
+                               <return-value transfer-ownership="full">
+                                       <type name="gboolean" c:type="gboolean"/>
+                               </return-value>
+                               <parameters>
+                                       <parameter name="self" transfer-ownership="none">
+                                               <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                                       </parameter>
+                                       <parameter name="param" transfer-ownership="none">
+                                               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                               <type name="gint" c:type="gint"/>
+                                       </parameter>
+                               </parameters>
+                       </callback>
+               </field>
+       </record>
+       <record name="StructTest" c:type="GirTestStructTest" c:symbol-prefix="struct_test" glib:type-name="GirTestStructTest" glib:get-type="gir_test_struct_test_get_type">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example struct.&lt;/para&gt;</doc>
+               <field name="field" writable="1">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example field.&lt;/para&gt;</doc>
+                       <type name="gint" c:type="gint"/>
+               </field>
+               <method name="init" c:identifier="gir_test_struct_test_init">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example struct constructor.&lt;/para&gt;</doc>
+                       <return-value transfer-ownership="none">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" direction="out" transfer-ownership="none" caller-allocates="1">
+                                       <type name="GirTest.StructTest" c:type="GirTestStructTest*"/>
+                               </instance-parameter>
+                               <parameter name="param" transfer-ownership="none">
+                                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <method name="method" c:identifier="gir_test_struct_test_method">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example struct method.&lt;/para&gt;</doc>
+                       <return-value transfer-ownership="full">
+                               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example return value. &lt;/para&gt;</doc>
+                               <type name="gboolean" c:type="gboolean"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none" nullable="1">
+                                       <type name="GirTest.StructTest" c:type="GirTestStructTest*"/>
+                               </instance-parameter>
+                               <parameter name="param" transfer-ownership="none">
+                                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                       </parameters>
+               </method>
+       </record>
+       <callback name="DelegateTest" c:type="GirTestDelegateTest">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example delegate.&lt;/para&gt;</doc>
+               <return-value transfer-ownership="full">
+                       <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example return value. &lt;/para&gt;</doc>
+                       <type name="gboolean" c:type="gboolean"/>
+               </return-value>
+               <parameters>
+                       <parameter name="param" transfer-ownership="none">
+                               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example parameter. &lt;/para&gt;</doc>
+                               <type name="gint" c:type="gint"/>
+                       </parameter>
+                       <parameter name="user_data" transfer-ownership="none" closure="1">
+                               <type name="gpointer" c:type="void*"/>
+                       </parameter>
+               </parameters>
+       </callback>
+       <constant name="CONSTANT" c:identifier="GIR_TEST_CONSTANT" value="42">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example constant.&lt;/para&gt;</doc>
+               <type name="gint" c:type="gint"/>
+       </constant>
+       <function name="function" c:identifier="gir_test_function">
+               <doc xml:whitespace="preserve">&lt;para&gt;An example comment for an example function.&lt;/para&gt;</doc>
+               <return-value transfer-ownership="full">
+                       <type name="none" c:type="void"/>
+               </return-value>
+       </function>
+</namespace>
+</repository>
diff --git a/valadoc/tests/girwriter/Makefile.am b/valadoc/tests/girwriter/Makefile.am
new file mode 100644 (file)
index 0000000..f4f4a11
--- /dev/null
@@ -0,0 +1,35 @@
+NULL =
+GIRDIR = $$($(PKG_CONFIG) gobject-introspection-1.0 --variable=girdir)
+
+check-girwriter: $(top_builddir)/valadoc/valadoc
+       rm -rf $(builddir)/girtest;
+       G_DEBUG=fatal-warnings $(top_builddir)/valadoc/valadoc \
+               --vapidir $(top_srcdir)/vapi \
+               --directory $(builddir)/girtest \
+               --doclet=$(top_builddir)/valadoc/doclets/html/.libs \
+               --pkg gio-2.0 \
+               --gir GirTest-1.0.gir \
+               $(srcdir)/girtest.vala; \
+       tail -n +3 GirTest-1.0.gir | diff -wu $(srcdir)/GirTest-1.0.gir-expected - || exit 1;
+if HAVE_G_IR_COMPILER
+       $(G_IR_COMPILER) -o GirTest-1.0.typelib GirTest-1.0.gir;
+endif
+if HAVE_JING
+       $(JING) -c -e UTF-8 $(GIRDIR)/gir-1.2.rnc GirTest-1.0.gir || echo "Ignoring above error(s)";
+endif
+       rm -f GirTest-1.0.gir GirTest-1.0.typelib girtest.vapi girtest.c;
+       rm -rf $(builddir)/girtest;
+
+check: check-girwriter
+
+EXTRA_DIST = \
+       girtest.vala \
+       GirTest-1.0.gir-expected \
+       $(NULL)
+
+CLEANFILES = \
+       girtest.c \
+       girtest.vapi \
+       GirTest-1.0.gir \
+       GirTest-1.0.typelib \
+       $(NULL)
diff --git a/valadoc/tests/girwriter/girtest.vala b/valadoc/tests/girwriter/girtest.vala
new file mode 100644 (file)
index 0000000..a294b6d
--- /dev/null
@@ -0,0 +1,106 @@
+[CCode (gir_namespace = "GirTest", gir_version = "1.0")]
+namespace GirTest {
+       /**
+        * An example comment for an example constant.
+        */
+       public const int CONSTANT = 42;
+
+       /**
+        * An example comment for an example function.
+        */
+       public static void function () {
+       }
+
+       /**
+        * An example comment for an example struct.
+        */
+       public struct StructTest {
+               /**
+                * An example comment for an example field.
+                */
+               public int field;
+               /**
+                * An example comment for an example struct constructor.
+                *
+                * @param param An example comment for an example parameter.
+                */
+               public StructTest (int param) {
+               }
+               /**
+                * An example comment for an example struct method.
+                *
+                * @param param An example comment for an example parameter.
+                * @return An example comment for an example return value.
+                */
+               public bool method (int param) {
+                       return true;
+               }
+       }
+
+       /**
+        * An example comment for an example enum.
+        */
+       public enum EnumTest {
+               VALUE1
+       }
+
+       /**
+        * An example comment for an example errordomain.
+        */
+       public errordomain ErrorTest {
+               VALUE1
+       }
+
+       /**
+        * An example comment for an example delegate.
+        *
+        * @param param An example comment for an example parameter.
+        * @return An example comment for an example return value.
+        */
+       public delegate bool DelegateTest (int param);
+
+       /**
+        * An example comment for an example interface.
+        */
+       public interface InterfaceTest : Object {
+               /**
+                * An example comment for an example interface method.
+                *
+                * @param param An example comment for an example parameter.
+                * @return An example comment for an example return value.
+                */
+               public abstract bool method (int param);
+       }
+
+       /**
+        * An example comment for an example class.
+        */
+       public class ObjectTest : Object {
+               /**
+                * An example comment for an example property.
+                */
+               public int property { get; construct set; }
+               /**
+                * An example comment for an example signal.
+                *
+                * @param param An example comment for an example parameter.
+                */
+               public signal void some_signal (int param);
+               /**
+                * An example comment for an example class constructor.
+                *
+                * @param param An example comment for an example parameter.
+                */
+               public ObjectTest (int param) {
+               }
+               /**
+                * An example comment for an example class method.
+                *
+                * @param param An example comment for an example parameter.
+                * @return An example comment for an example return value.
+                */
+               public bool method (int param) {
+                       return true;
+               }
+       }
+}