[gobject-introspection] tests: Move do_moo to warnlib



commit b714353e38cf72b6cb2754d413b3688a47624028
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sun Feb 3 10:50:21 2013 -0500

    tests: Move do_moo to warnlib
    
    We want to warn on unnamed params in declarations to ensure that
    all functions are bindable. Thus, we need to move a test containing
    unnamed params to WarnLib so it can be tested.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693098

 tests/scanner/Regress-1.0-expected.gir |   50 -------------------------
 tests/scanner/WarnLib-1.0-expected.gir |   64 ++++++++++++++++++++++++++++++++
 tests/scanner/foo.c                    |    6 ---
 tests/scanner/foo.h                    |    4 --
 tests/scanner/warnlib.c                |   13 ++++++
 tests/scanner/warnlib.h                |   23 +++++++++++
 6 files changed, 100 insertions(+), 60 deletions(-)
---
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index 98ad01b..04b1e39 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -1754,22 +1754,6 @@ exposed to language bindings.</doc>
           </parameter>
         </parameters>
       </virtual-method>
-      <virtual-method name="do_moo" invoker="do_moo">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <instance-parameter name="self" transfer-ownership="none">
-            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
-          </instance-parameter>
-          <parameter transfer-ownership="none">
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
       <method name="do_bar" c:identifier="regress_foo_sub_interface_do_bar">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -1799,22 +1783,6 @@ exposed to language bindings.</doc>
           </parameter>
         </parameters>
       </method>
-      <method name="do_moo" c:identifier="regress_foo_sub_interface_do_moo">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <instance-parameter name="self" transfer-ownership="none">
-            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
-          </instance-parameter>
-          <parameter transfer-ownership="none">
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
       <glib:signal name="destroy-event" when="last">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -1851,24 +1819,6 @@ exposed to language bindings.</doc>
           </parameters>
         </callback>
       </field>
-      <field name="do_moo">
-        <callback name="do_moo">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="self" transfer-ownership="none">
-              <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
-            </parameter>
-            <parameter transfer-ownership="none">
-              <type name="gint" c:type="int"/>
-            </parameter>
-            <parameter transfer-ownership="none">
-              <type name="gpointer" c:type="gpointer"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
       <field name="do_baz">
         <callback name="do_baz">
           <return-value transfer-ownership="none">
diff --git a/tests/scanner/WarnLib-1.0-expected.gir b/tests/scanner/WarnLib-1.0-expected.gir
index 9f3b348..3f8be71 100644
--- a/tests/scanner/WarnLib-1.0-expected.gir
+++ b/tests/scanner/WarnLib-1.0-expected.gir
@@ -15,6 +15,70 @@ and/or use gtk-doc annotations.  -->
              shared-library=""
              c:identifier-prefixes="WarnLib"
              c:symbol-prefixes="warnlib_">
+    <interface name="Whatever"
+               c:symbol-prefix="whatever"
+               c:type="WarnLibWhatever"
+               glib:type-name="WarnLibWhatever"
+               glib:get-type="warnlib_whatever_get_type"
+               glib:type-struct="WhateverIface">
+      <virtual-method name="do_moo" invoker="do_moo">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Whatever" c:type="WarnLibWhatever*"/>
+          </instance-parameter>
+          <parameter transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="do_moo" c:identifier="warnlib_whatever_do_moo">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="Whatever" c:type="WarnLibWhatever*"/>
+          </instance-parameter>
+          <parameter transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="WhateverIface"
+            c:type="WarnLibWhateverIface"
+            glib:is-gtype-struct-for="Whatever">
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="do_moo">
+        <callback name="do_moo">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Whatever" c:type="WarnLibWhatever*"/>
+            </parameter>
+            <parameter transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
     <function name="throw_unpaired"
               c:identifier="warnlib_throw_unpaired"
               throws="1">
diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c
index c883ada..4d5090b 100644
--- a/tests/scanner/foo.c
+++ b/tests/scanner/foo.c
@@ -124,12 +124,6 @@ regress_foo_sub_interface_do_bar (RegressFooSubInterface *self)
   REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(self)->do_bar (self);
 }
 
-void
-regress_foo_sub_interface_do_moo (RegressFooSubInterface *self, int x, gpointer y)
-{
-  REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(self)->do_moo (self, x, y);
-}
-
 /**
  * regress_foo_sub_interface_do_baz:
  * @self:
diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h
index 20c92eb..e097560 100644
--- a/tests/scanner/foo.h
+++ b/tests/scanner/foo.h
@@ -76,16 +76,12 @@ struct _RegressFooSubInterfaceIface
 
   void (*do_bar) (RegressFooSubInterface *self);
 
-  /* explicitly test un-named parameters */
-  void (*do_moo) (RegressFooSubInterface *self, int, gpointer);
-
   void (*do_baz) (RegressFooSubInterface *self, GCallback callback, gpointer user_data);
 };
 
 GType                 regress_foo_sub_interface_get_type       (void) G_GNUC_CONST;
 
 void regress_foo_sub_interface_do_bar (RegressFooSubInterface *self);
-void regress_foo_sub_interface_do_moo (RegressFooSubInterface *self, int, gpointer);
 void regress_foo_sub_interface_do_baz (RegressFooSubInterface *self,
                                        GCallback callback,
                                        gpointer user_data);
diff --git a/tests/scanner/warnlib.c b/tests/scanner/warnlib.c
index 4fc8515..940d2b6 100644
--- a/tests/scanner/warnlib.c
+++ b/tests/scanner/warnlib.c
@@ -18,3 +18,16 @@ warnlib_throw_unpaired (GError **error)
   return FALSE;
 }
 
+typedef WarnLibWhateverIface WarnLibWhateverInterface;
+G_DEFINE_INTERFACE (WarnLibWhatever, warnlib_whatever, G_TYPE_OBJECT)
+
+static void
+warnlib_whatever_default_init(WarnLibWhateverIface *iface)
+{
+}
+
+void
+warnlib_whatever_do_moo (WarnLibWhatever *self, int x, gpointer y)
+{
+  WARNLIB_WHATEVER_GET_IFACE(self)->do_moo (self, x, y);
+}
diff --git a/tests/scanner/warnlib.h b/tests/scanner/warnlib.h
index 8aca901..9e448c0 100644
--- a/tests/scanner/warnlib.h
+++ b/tests/scanner/warnlib.h
@@ -10,4 +10,27 @@ GQuark warnlib_unpaired_error_quark (void);
 
 gboolean warnlib_throw_unpaired (GError **error);
 
+/* interface */
+#define WARNLIB_TYPE_WHATEVER              (warnlib_whatever_get_type ())
+#define WARNLIB_WHATEVER(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), WARNLIB_TYPE_WHATEVER, WarnLibWhatever))
+#define WARNLIB_IS_WHATEVER(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), WARNLIB_TYPE_WHATEVER))
+#define WARNLIB_WHATEVER_GET_IFACE(obj)    (G_TYPE_INSTANCE_GET_INTERFACE ((obj), WARNLIB_TYPE_WHATEVER, WarnLibWhateverIface))
+
+typedef struct _WarnLibWhateverIface WarnLibWhateverIface;
+typedef struct _WarnLibWhatever WarnLibWhatever;
+
+struct _WarnLibWhateverIface
+{
+  GTypeInterface parent_iface;
+
+  /* virtual table */
+
+  /* explicitly test un-named parameters */
+  void (*do_moo) (WarnLibWhatever *self, int, gpointer);
+};
+
+void warnlib_whatever_do_moo (WarnLibWhatever *self, int, gpointer);
+
+GType warnlib_whatever_get_type (void) G_GNUC_CONST;
+
 #endif


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]