[glib/glib-2-58: 1/3] gdbus-codegen: test generating autocleanups
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/glib-2-58: 1/3] gdbus-codegen: test generating autocleanups
- Date: Tue, 6 Nov 2018 10:43:50 +0000 (UTC)
commit 9b4eddff0c976c50e0ea0db78a3023168d76be4d
Author: Will Thompson <will willthompson co uk>
Date: Fri Oct 26 13:49:54 2018 +0100
gdbus-codegen: test generating autocleanups
This is the most degenerate possible test but it does exercise this code
path.
(Tweaked by Philip Withnall <withnall endlessm com> to also add the flag
to the autotools build.)
gio/tests/Makefile.am | 1 +
gio/tests/gdbus-test-codegen.c | 41 +++++++++++++++++++++++++++++++++++++++++
gio/tests/meson.build | 1 +
3 files changed, 43 insertions(+)
---
diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am
index 1f0bed7b6..628459dd7 100644
--- a/gio/tests/Makefile.am
+++ b/gio/tests/Makefile.am
@@ -501,6 +501,7 @@ gdbus-test-codegen-generated.h: test-codegen.xml Makefile $(top_builddir)/gio/gd
--interface-prefix org.project. \
--generate-c-code gdbus-test-codegen-generated \
--c-generate-object-manager \
+ --c-generate-autocleanup all \
--c-namespace Foo_iGen \
--generate-docbook gdbus-test-codegen-generated-doc \
--annotate "org.project.Bar" Key1 Value1 \
diff --git a/gio/tests/gdbus-test-codegen.c b/gio/tests/gdbus-test-codegen.c
index 1c4e83c4c..a51cf1846 100644
--- a/gio/tests/gdbus-test-codegen.c
+++ b/gio/tests/gdbus-test-codegen.c
@@ -2385,6 +2385,46 @@ test_property_naming (void)
/* ---------------------------------------------------------------------------------------------------- */
+/* autocleanups
+ *
+ * - check that g_autoptr() works for all generated types, if supported by the
+ * current compiler
+ */
+
+static void
+test_autocleanups (void)
+{
+#ifdef g_autoptr
+ g_autoptr(FooiGenBar) bar = NULL;
+ g_autoptr(FooiGenBarProxy) bar_proxy = NULL;
+ g_autoptr(FooiGenBarSkeleton) bar_skeleton = NULL;
+ g_autoptr(FooiGenObjectProxy) object_proxy = NULL;
+ g_autoptr(FooiGenObjectSkeleton) object_skeleton = NULL;
+ g_autoptr(FooiGenObjectManagerClient) object_manager_client = NULL;
+
+ (void) bar;
+ (void) bar_proxy;
+ (void) bar_skeleton;
+ (void) object_proxy;
+ (void) object_skeleton;
+ (void) object_manager_client;
+#elif GLIB_CHECK_VERSION(2, 38, 0)
+ /* This file is compiled twice, once without GLib version guards and once
+ * with
+ *
+ * -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36
+ * -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36
+ *
+ * g_test_skip() was added in 2.38.
+ */
+ g_test_skip ("g_autoptr() not supported on this compiler");
+#else
+ /* Let's just say it passed. */
+#endif
+}
+
+/* ---------------------------------------------------------------------------------------------------- */
+
int
main (int argc,
char *argv[])
@@ -2395,6 +2435,7 @@ main (int argc,
g_test_add_func ("/gdbus/codegen/interface_stability", test_interface_stability);
g_test_add_func ("/gdbus/codegen/object-manager", test_object_manager);
g_test_add_func ("/gdbus/codegen/property-naming", test_property_naming);
+ g_test_add_func ("/gdbus/codegen/autocleanups", test_autocleanups);
return session_bus_run ();
}
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 1556464b7..252008d82 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -185,6 +185,7 @@ if host_machine.system() != 'windows'
'--output-directory', '@OUTDIR@',
'--generate-c-code', 'gdbus-test-codegen-generated',
'--c-generate-object-manager',
+ '--c-generate-autocleanup', 'all',
'--c-namespace', 'Foo_iGen',
'--generate-docbook', 'gdbus-test-codegen-generated-doc',
'--annotate', 'org.project.Bar', 'Key1', 'Value1',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]