diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2023-04-09 13:29:26 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2023-04-19 13:16:41 +0200 |
commit | a91031b24d177ca6a61f295b44cf03dd694bf9ef (patch) | |
tree | 664746fc5d676cbcbc1efd96edca4546855657fa | |
parent | 1862a4ca36c0b3aa79cdca5685a82be4f367e17c (diff) | |
download | vala-a91031b24d177ca6a61f295b44cf03dd694bf9ef.tar.gz |
valadoc/tests: Add girwriter test
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | valadoc/tests/Makefile.am | 4 | ||||
-rw-r--r-- | valadoc/tests/girwriter/GirTest-1.0.gir-expected | 218 | ||||
-rw-r--r-- | valadoc/tests/girwriter/Makefile.am | 35 | ||||
-rw-r--r-- | valadoc/tests/girwriter/girtest.vala | 106 |
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"><para>An example comment for an example enum.</para></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"><para>An example comment for an example errordomain.</para></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"><para>An example comment for an example class.</para></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"><para>An example comment for an example class constructor.</para></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"><para>An example comment for an example parameter. </para></doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </constructor> + <method name="method" c:identifier="gir_test_object_test_method"> + <doc xml:whitespace="preserve"><para>An example comment for an example class method.</para></doc> + <return-value transfer-ownership="full"> + <doc xml:whitespace="preserve"><para>An example comment for an example return value. </para></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"><para>An example comment for an example parameter. </para></doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <property name="property" writable="1" construct="1"> + <doc xml:whitespace="preserve"><para>An example comment for an example property.</para></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"><para>An example comment for an example signal.</para></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"><para>An example comment for an example parameter. </para></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"><para>An example comment for an example interface.</para></doc> + <prerequisite name="GObject.Object"/> + <method name="method" c:identifier="gir_test_interface_test_method"> + <doc xml:whitespace="preserve"><para>An example comment for an example interface method.</para></doc> + <return-value transfer-ownership="full"> + <doc xml:whitespace="preserve"><para>An example comment for an example return value. </para></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"><para>An example comment for an example parameter. </para></doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <virtual-method name="method" invoker="method"> + <doc xml:whitespace="preserve"><para>An example comment for an example interface method.</para></doc> + <return-value transfer-ownership="full"> + <doc xml:whitespace="preserve"><para>An example comment for an example return value. </para></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"><para>An example comment for an example parameter. </para></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"><para>An example comment for an example parameter. </para></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"><para>An example comment for an example struct.</para></doc> + <field name="field" writable="1"> + <doc xml:whitespace="preserve"><para>An example comment for an example field.</para></doc> + <type name="gint" c:type="gint"/> + </field> + <method name="init" c:identifier="gir_test_struct_test_init"> + <doc xml:whitespace="preserve"><para>An example comment for an example struct constructor.</para></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"><para>An example comment for an example parameter. </para></doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="method" c:identifier="gir_test_struct_test_method"> + <doc xml:whitespace="preserve"><para>An example comment for an example struct method.</para></doc> + <return-value transfer-ownership="full"> + <doc xml:whitespace="preserve"><para>An example comment for an example return value. </para></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"><para>An example comment for an example parameter. </para></doc> + <type name="gint" c:type="gint"/> + </parameter> + </parameters> + </method> + </record> + <callback name="DelegateTest" c:type="GirTestDelegateTest"> + <doc xml:whitespace="preserve"><para>An example comment for an example delegate.</para></doc> + <return-value transfer-ownership="full"> + <doc xml:whitespace="preserve"><para>An example comment for an example return value. </para></doc> + <type name="gboolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="param" transfer-ownership="none"> + <doc xml:whitespace="preserve"><para>An example comment for an example parameter. </para></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"><para>An example comment for an example constant.</para></doc> + <type name="gint" c:type="gint"/> + </constant> + <function name="function" c:identifier="gir_test_function"> + <doc xml:whitespace="preserve"><para>An example comment for an example function.</para></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; + } + } +} |