summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2023-04-09 13:29:26 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2023-04-19 13:16:41 +0200
commita91031b24d177ca6a61f295b44cf03dd694bf9ef (patch)
tree664746fc5d676cbcbc1efd96edca4546855657fa
parent1862a4ca36c0b3aa79cdca5685a82be4f367e17c (diff)
downloadvala-a91031b24d177ca6a61f295b44cf03dd694bf9ef.tar.gz
valadoc/tests: Add girwriter test
-rw-r--r--configure.ac1
-rw-r--r--valadoc/tests/Makefile.am4
-rw-r--r--valadoc/tests/girwriter/GirTest-1.0.gir-expected218
-rw-r--r--valadoc/tests/girwriter/Makefile.am35
-rw-r--r--valadoc/tests/girwriter/girtest.vala106
5 files changed, 364 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index c9df433f8..e2e31ea37 100644
--- a/configure.ac
+++ b/configure.ac
@@ -292,6 +292,7 @@ AC_CONFIG_FILES([Makefile
valadoc/doclets/gtkdoc/Makefile
valadoc/icons/Makefile
valadoc/tests/Makefile
+ valadoc/tests/girwriter/Makefile
])
AC_OUTPUT
diff --git a/valadoc/tests/Makefile.am b/valadoc/tests/Makefile.am
index b6e6104c9..559642a39 100644
--- a/valadoc/tests/Makefile.am
+++ b/valadoc/tests/Makefile.am
@@ -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
index 000000000..4a3620d55
--- /dev/null
+++ b/valadoc/tests/girwriter/GirTest-1.0.gir-expected
@@ -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
index 000000000..f4f4a11cc
--- /dev/null
+++ b/valadoc/tests/girwriter/Makefile.am
@@ -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
index 000000000..a294b6d82
--- /dev/null
+++ b/valadoc/tests/girwriter/girtest.vala
@@ -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;
+ }
+ }
+}