diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2014-08-12 12:03:23 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2014-08-15 09:52:13 +0800 |
commit | eab36c0001e22c0ee66246ae9a0b8018b2325c96 (patch) | |
tree | 394acebd1032cf193e1f7404f4a5a780623068bc /tests | |
parent | 28b01ad77f18f2df09878d59c3c0ed7e877badd4 (diff) | |
download | gobject-introspection-eab36c0001e22c0ee66246ae9a0b8018b2325c96.tar.gz |
tests/scanner: Decorate Symbols for Export
This updates the test headers and sources to decorate the symbols with the
macro that can be used to export the symbols, and include config.h first in
the c-sources so that the macro can be defined with the compiler directive
to export the symbols. Update the CFLAGS as well so that the header that
defines the export decoration macro can be found.
https://bugzilla.gnome.org/show_bug.cgi?id=732669
Diffstat (limited to 'tests')
-rw-r--r-- | tests/scanner/Makefile.am | 10 | ||||
-rw-r--r-- | tests/scanner/annotation.c | 2 | ||||
-rw-r--r-- | tests/scanner/annotation.h | 94 | ||||
-rw-r--r-- | tests/scanner/barapp.c | 2 | ||||
-rw-r--r-- | tests/scanner/barapp.h | 9 | ||||
-rw-r--r-- | tests/scanner/drawable.c | 2 | ||||
-rw-r--r-- | tests/scanner/drawable.h | 11 | ||||
-rw-r--r-- | tests/scanner/foo.c | 2 | ||||
-rw-r--r-- | tests/scanner/foo.h | 145 | ||||
-rw-r--r-- | tests/scanner/gettype.c | 2 | ||||
-rw-r--r-- | tests/scanner/gettype.h | 11 | ||||
-rw-r--r-- | tests/scanner/gtkfrob.c | 2 | ||||
-rw-r--r-- | tests/scanner/gtkfrob.h | 2 | ||||
-rw-r--r-- | tests/scanner/regress.c | 2 | ||||
-rw-r--r-- | tests/scanner/regress.h | 419 | ||||
-rw-r--r-- | tests/scanner/sletter.c | 1 | ||||
-rw-r--r-- | tests/scanner/sletter.h | 7 | ||||
-rw-r--r-- | tests/scanner/typedefs.c | 2 | ||||
-rw-r--r-- | tests/scanner/typedefs.h | 12 | ||||
-rw-r--r-- | tests/scanner/utility.c | 2 | ||||
-rw-r--r-- | tests/scanner/utility.h | 7 | ||||
-rw-r--r-- | tests/scanner/warnlib.h | 7 |
22 files changed, 752 insertions, 1 deletions
diff --git a/tests/scanner/Makefile.am b/tests/scanner/Makefile.am index 8b20141c..92ab12a3 100644 --- a/tests/scanner/Makefile.am +++ b/tests/scanner/Makefile.am @@ -20,8 +20,9 @@ EXTRA_LTLIBRARIES = \ $(NULL) CLEANFILES += $(EXTRA_LTLIBRARIES) +GI_SCANNER_CFLAGS = -I$(top_srcdir)/tests AM_CPPFLAGS = -I$(top_srcdir)/girepository -AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) +AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) $(GI_SCANNER_CFLAGS) # -rpath needed to force libtool to build a shared library for a check_LTLIBRARIES # target. See http://lists.gnu.org/archive/html/automake/2005-10/msg00107.html AM_LDFLAGS = -rpath /unused -avoid-version @@ -82,6 +83,7 @@ EXTRA_DIST = $(EXPECTEDGIRS) SLetter-1.0.gir: $(top_builddir)/Gio-2.0.gir libsletter.la SLetter_1_0_gir_LIBS = libsletter.la +SLetter_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS) SLetter_1_0_gir_INCLUDES = Gio-2.0 SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES) SLetter_1_0_gir_SCANNERFLAGS = --identifier-prefix=S --c-include="sletter.h" --warn-error @@ -100,6 +102,7 @@ GIRS += Regress-1.0.gir WarnLib-1.0.gir: $(top_builddir)/Gio-2.0.gir libwarnlib.la WarnLib_1_0_gir_LIBS = libwarnlib.la +WarnLib_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS) WarnLib_1_0_gir_INCLUDES = Gio-2.0 WarnLib_1_0_gir_FILES = $(libwarnlib_la_SOURCES) WarnLib_1_0_gir_SCANNERFLAGS = --c-include="warnlib.h" --symbol-prefix=warnlib_ @@ -108,6 +111,7 @@ GIRS += WarnLib-1.0.gir Utility-1.0.gir: libutility.la Utility_1_0_gir_PACKAGES = gobject-2.0 Utility_1_0_gir_LIBS = libutility.la +Utility_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS) Utility_1_0_gir_INCLUDES = GObject-2.0 Utility_1_0_gir_FILES = $(libutility_la_SOURCES) Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" --warn-error @@ -117,6 +121,7 @@ GIRS += Utility-1.0.gir GtkFrob-1.0.gir: libgtkfrob.la GtkFrob_1_0_gir_PACKAGES = gobject-2.0 GtkFrob_1_0_gir_LIBS = libgtkfrob.la +GtkFrob_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS) GtkFrob_1_0_gir_INCLUDES = GObject-2.0 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES) GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error @@ -127,6 +132,7 @@ GIRS += GtkFrob-1.0.gir GetType-1.0.gir: libgettype.la GetType_1_0_gir_PACKAGES = gobject-2.0 GetType_1_0_gir_LIBS = libgettype.la +GetType_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS) GetType_1_0_gir_INCLUDES = GObject-2.0 GetType_1_0_gir_FILES = $(libgettype_la_SOURCES) GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype @@ -135,6 +141,7 @@ GIRS += GetType-1.0.gir Typedefs-1.0.gir: libtypedefs.la Typedefs_1_0_gir_PACKAGES = gobject-2.0 Typedefs_1_0_gir_LIBS = libtypedefs.la +Typedefs_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS) Typedefs_1_0_gir_INCLUDES = GObject-2.0 Typedefs_1_0_gir_FILES = $(libtypedefs_la_SOURCES) Typedefs_1_0_gir_SCANNERFLAGS = --c-include="typedefs.h" --identifier-prefix=Typedefs --symbol-prefix=typedefs @@ -151,6 +158,7 @@ barapp_LDFLAGS = -export-dynamic Bar-1.0.gir: barapp Bar_1_0_gir_PACKAGES = gobject-2.0 Bar_1_0_gir_PROGRAM = ./barapp +Bar_1_0_gir_CFLAGS = $(GI_SCANNER_CFLAGS) Bar_1_0_gir_INCLUDES = GObject-2.0 Bar_1_0_gir_FILES = $(barapp_SOURCES) Bar_1_0_gir_SCANNERFLAGS = --accept-unprefixed diff --git a/tests/scanner/annotation.c b/tests/scanner/annotation.c index 30dc72ef..173db974 100644 --- a/tests/scanner/annotation.c +++ b/tests/scanner/annotation.c @@ -1,4 +1,6 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#include "config.h" + #include "annotation.h" char backslash_parsing_tester = '\\'; diff --git a/tests/scanner/annotation.h b/tests/scanner/annotation.h index b0cbe42d..07894dfc 100644 --- a/tests/scanner/annotation.h +++ b/tests/scanner/annotation.h @@ -1,6 +1,8 @@ #ifndef __REGRESS_ANNOTATION_OBJECT_H__ #define __REGRESS_ANNOTATION_OBJECT_H__ +#include "gitestmacros.h" + #include <glib-object.h> typedef enum /*< flags,prefix=ANN >*/ @@ -58,95 +60,177 @@ struct _RegressAnnotationObjectClass GObjectClass parent_class; }; +_GI_TEST_EXTERN GType regress_annotation_object_get_type (void); +_GI_TEST_EXTERN gint regress_annotation_object_method (RegressAnnotationObject *object); + +_GI_TEST_EXTERN gint regress_annotation_object_out (RegressAnnotationObject *object, int *outarg); + +_GI_TEST_EXTERN GObject* regress_annotation_object_create_object(RegressAnnotationObject *object); + +_GI_TEST_EXTERN GObject* regress_annotation_object_allow_none (RegressAnnotationObject *object, const gchar *somearg); + +_GI_TEST_EXTERN GObject* regress_annotation_object_notrans (RegressAnnotationObject *object); + +_GI_TEST_EXTERN gint regress_annotation_object_inout (RegressAnnotationObject *object, int *inoutarg); + +_GI_TEST_EXTERN gint regress_annotation_object_inout2 (RegressAnnotationObject *object, int *inoutarg); + +_GI_TEST_EXTERN gint regress_annotation_object_inout3 (RegressAnnotationObject *object, int *inoutarg); + +_GI_TEST_EXTERN gint regress_annotation_object_in (RegressAnnotationObject *object, int *inarg); + +_GI_TEST_EXTERN gint regress_annotation_object_calleeowns (RegressAnnotationObject *object, GObject **toown); + +_GI_TEST_EXTERN gint regress_annotation_object_calleesowns (RegressAnnotationObject *object, GObject **toown1, GObject **toown2); + +_GI_TEST_EXTERN GList* regress_annotation_object_get_strings (RegressAnnotationObject *object); + +_GI_TEST_EXTERN GHashTable*regress_annotation_object_get_hash (RegressAnnotationObject *object); + +_GI_TEST_EXTERN void regress_annotation_object_with_voidp (RegressAnnotationObject *object, void *data); + +_GI_TEST_EXTERN GSList* regress_annotation_object_get_objects (RegressAnnotationObject *object); + +_GI_TEST_EXTERN void regress_annotation_object_use_buffer (RegressAnnotationObject *object, guchar *bytes); + +_GI_TEST_EXTERN void regress_annotation_object_compute_sum (RegressAnnotationObject *object, int *nums); + +_GI_TEST_EXTERN void regress_annotation_object_compute_sum_n(RegressAnnotationObject *object, int *nums, int n_nums); + +_GI_TEST_EXTERN void regress_annotation_object_compute_sum_nz(RegressAnnotationObject *object, int *nums, int n_nums); + +_GI_TEST_EXTERN void regress_annotation_object_parse_args (RegressAnnotationObject *object, int *argc, char ***argv); + +_GI_TEST_EXTERN gboolean regress_annotation_object_string_out (RegressAnnotationObject *object, char **str_out); + +_GI_TEST_EXTERN void regress_annotation_object_foreach (RegressAnnotationObject *object, RegressAnnotationForeachFunc func, gpointer user_data); + +_GI_TEST_EXTERN void regress_annotation_object_set_data (RegressAnnotationObject *object, const guchar *data, gsize length); + +_GI_TEST_EXTERN void regress_annotation_object_set_data2 (RegressAnnotationObject *object, const gchar *data, gsize length); + +_GI_TEST_EXTERN void regress_annotation_object_set_data3 (RegressAnnotationObject *object, gpointer data, gsize length); + +_GI_TEST_EXTERN GObject* regress_annotation_object_do_not_use (RegressAnnotationObject *object); + +_GI_TEST_EXTERN void regress_annotation_object_watch (RegressAnnotationObject *object, RegressAnnotationForeachFunc func, gpointer user_data); + +_GI_TEST_EXTERN void regress_annotation_object_watch_full (RegressAnnotationObject *object, RegressAnnotationForeachFunc func, gpointer user_data, GDestroyNotify destroy); + +_GI_TEST_EXTERN void regress_annotation_object_hidden_self (gpointer object); + +_GI_TEST_EXTERN void regress_annotation_init (int *argc, char ***argv); + +_GI_TEST_EXTERN char ** regress_annotation_return_array (int *length); + +_GI_TEST_EXTERN void regress_annotation_versioned (void); + +_GI_TEST_EXTERN char ** regress_annotation_string_zero_terminated (void); + +_GI_TEST_EXTERN void regress_annotation_string_zero_terminated_out (char ***out); + +_GI_TEST_EXTERN void regress_annotation_string_array_length (guint n_properties, const gchar * const properties[]); + +_GI_TEST_EXTERN void regress_annotation_object_extra_annos (RegressAnnotationObject *object); + +_GI_TEST_EXTERN void regress_annotation_custom_destroy (RegressAnnotationCallback callback, RegressAnnotationNotifyFunc destroy, gpointer data); + +_GI_TEST_EXTERN char * regress_annotation_get_source_file (void); + +_GI_TEST_EXTERN void regress_annotation_set_source_file (const char *fname); + +_GI_TEST_EXTERN gint regress_annotation_attribute_func (RegressAnnotationObject *object, const gchar *data); + +_GI_TEST_EXTERN void regress_annotation_invalid_regress_annotation (int foo); /** @@ -174,14 +258,24 @@ struct RegressAnnotationFields gulong len; }; + +_GI_TEST_EXTERN void regress_annotation_ptr_array (GPtrArray *array); + +_GI_TEST_EXTERN GObject * regress_annotation_test_parsing_bug630862 (void); + +_GI_TEST_EXTERN void regress_annotation_space_after_comment_bug631690 (void); + +_GI_TEST_EXTERN gchar* regress_annotation_return_filename (void); + +_GI_TEST_EXTERN GObject * regress_annotation_transfer_floating(void); /* This one we can handle properly */ diff --git a/tests/scanner/barapp.c b/tests/scanner/barapp.c index ed391204..6189531e 100644 --- a/tests/scanner/barapp.c +++ b/tests/scanner/barapp.c @@ -1,4 +1,6 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#include "config.h" + #include "barapp.h" #include <girepository.h> diff --git a/tests/scanner/barapp.h b/tests/scanner/barapp.h index 12c39a5f..8694ddbe 100644 --- a/tests/scanner/barapp.h +++ b/tests/scanner/barapp.h @@ -1,6 +1,8 @@ #include <glib-object.h> +#include "gitestmacros.h" + #define BAR_TYPE_BAZ (bar_baz_get_type ()) #define BAR_BAZ(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BAR_TYPE_BAZ, BarBaz)) #define BAR_IS_BAZ(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BAR_TYPE_BAZ)) @@ -18,9 +20,14 @@ struct BarBazClass GObjectClass parent_class; }; +_GI_TEST_EXTERN GType bar_baz_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN void bar_app_func (void); + +_GI_TEST_EXTERN void bar_app_func2 (int x, double y); @@ -45,6 +52,8 @@ struct MutterWindowClass GObjectClass parent_class; }; +_GI_TEST_EXTERN GType mutter_window_get_type (void) G_GNUC_CONST; +_GI_TEST_EXTERN void mutter_window_func (MutterWindow *window, guint v); diff --git a/tests/scanner/drawable.c b/tests/scanner/drawable.c index e378286b..9c58bfed 100644 --- a/tests/scanner/drawable.c +++ b/tests/scanner/drawable.c @@ -1,4 +1,6 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#include "config.h" + #include "drawable.h" G_DEFINE_ABSTRACT_TYPE (RegressTestInheritDrawable, regress_test_inherit_drawable, G_TYPE_OBJECT); diff --git a/tests/scanner/drawable.h b/tests/scanner/drawable.h index 58383589..adf08da2 100644 --- a/tests/scanner/drawable.h +++ b/tests/scanner/drawable.h @@ -3,6 +3,8 @@ #include <glib-object.h> +#include "gitestmacros.h" + typedef struct _RegressTestInheritDrawable RegressTestInheritDrawable; typedef struct _RegressTestInheritDrawableClass RegressTestInheritDrawableClass; @@ -16,11 +18,20 @@ struct _RegressTestInheritDrawableClass GObjectClass parent_class; }; +_GI_TEST_EXTERN GType regress_test_inherit_drawable_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN void regress_test_inherit_drawable_do_foo (RegressTestInheritDrawable *drawable, int x); + +_GI_TEST_EXTERN void regress_test_inherit_drawable_get_origin (RegressTestInheritDrawable *drawable, int *x, int *y); + +_GI_TEST_EXTERN void regress_test_inherit_drawable_get_size (RegressTestInheritDrawable *drawable, guint *width, guint *height); + +_GI_TEST_EXTERN void regress_test_inherit_drawable_do_foo_maybe_throw (RegressTestInheritDrawable *drawable, int x, GError **error); typedef struct _RegressTestInheritPixmapObjectClass RegressTestInheritPixmapObjectClass; diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c index 52b9054e..66b29845 100644 --- a/tests/scanner/foo.c +++ b/tests/scanner/foo.c @@ -1,3 +1,5 @@ +#include "config.h" + #include "foo.h" /* A hidden type not exposed publicly, similar to GUPNP's XML wrapper diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h index e097560e..02d9b7c8 100644 --- a/tests/scanner/foo.h +++ b/tests/scanner/foo.h @@ -3,6 +3,8 @@ #include <glib-object.h> #include <gio/gio.h> /* GAsyncReadyCallback */ + +#include "gitestmacros.h" #include "utility.h" #define REGRESS_FOO_SUCCESS_INT 0x1138 @@ -58,10 +60,16 @@ struct _RegressFooInterfaceIface void (*do_regress_foo) (RegressFooInterface *self, int x); }; + +_GI_TEST_EXTERN GType regress_foo_interface_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN void regress_foo_interface_do_regress_foo (RegressFooInterface *iface, int x); + +_GI_TEST_EXTERN void regress_foo_interface_static_method (int x); struct _RegressFooSubInterfaceIface @@ -79,9 +87,15 @@ struct _RegressFooSubInterfaceIface void (*do_baz) (RegressFooSubInterface *self, GCallback callback, gpointer user_data); }; + +_GI_TEST_EXTERN GType regress_foo_sub_interface_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN void regress_foo_sub_interface_do_bar (RegressFooSubInterface *self); + +_GI_TEST_EXTERN void regress_foo_sub_interface_do_baz (RegressFooSubInterface *self, GCallback callback, gpointer user_data); @@ -106,35 +120,67 @@ struct _RegressFooObjectClass GCallback _reserved[4]; }; + +_GI_TEST_EXTERN gint regress_foo_init (void); + +_GI_TEST_EXTERN GType regress_foo_object_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN RegressFooObject* regress_foo_object_new (void); + +_GI_TEST_EXTERN UtilityObject* regress_foo_object_external_type (RegressFooObject *object); + +_GI_TEST_EXTERN GObject* regress_foo_object_new_as_super (void); + +_GI_TEST_EXTERN void regress_foo_object_various (RegressFooObject *object, void *data, GType some_type); + +_GI_TEST_EXTERN void regress_foo_object_take_all (RegressFooObject *object, int x, ...); typedef gpointer RegressFooObjectCookie; + +_GI_TEST_EXTERN RegressFooObjectCookie regress_foo_object_new_cookie (RegressFooObject *object, const char *target); + +_GI_TEST_EXTERN void regress_foo_object_is_it_time_yet (RegressFooObject *object, time_t time); + +_GI_TEST_EXTERN const char * regress_foo_object_get_name (RegressFooObject *object); + +_GI_TEST_EXTERN char * regress_foo_object_dup_name (RegressFooObject *object); + +_GI_TEST_EXTERN void regress_foo_object_handle_glyph (RegressFooObject *object, UtilityGlyph glyph); + +_GI_TEST_EXTERN gboolean regress_foo_object_virtual_method (RegressFooObject *object, int first_param); + +_GI_TEST_EXTERN void regress_foo_object_read (RegressFooObject *object, int offset, int length); + +_GI_TEST_EXTERN int regress_foo_object_static_meth (void); + +_GI_TEST_EXTERN void regress_foo_object_skipped_method (RegressFooObject *object); struct _RegressFooSubobject @@ -147,17 +193,31 @@ struct _RegressFooSubobjectClass RegressFooObjectClass parent_class; }; + +_GI_TEST_EXTERN GType regress_foo_subobject_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN RegressFooSubobject* regress_foo_subobject_new (void); + +_GI_TEST_EXTERN RegressFooObject * regress_foo_object_get_default (void); + +_GI_TEST_EXTERN GType regress_foo_buffer_get_type (void); + +_GI_TEST_EXTERN void regress_foo_buffer_some_method (RegressFooBuffer *buffer); + +_GI_TEST_EXTERN GType regress_foo_other_object_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN RegressFooObject * regress_foo_not_a_constructor_new (void); typedef enum @@ -167,10 +227,16 @@ typedef enum REGRESS_FOO_ENUM_DELTA } RegressFooEnumType; + +_GI_TEST_EXTERN GType regress_foo_enum_type_get_type (void); + +_GI_TEST_EXTERN int regress_foo_enum_type_method (RegressFooEnumType regress_foo_enum); + +_GI_TEST_EXTERN RegressFooEnumType regress_foo_enum_type_returnv (int x); typedef enum @@ -180,6 +246,8 @@ typedef enum REGRESS_FOO_FLAGS_THIRD = 1 << 2 } RegressFooFlagsType; + +_GI_TEST_EXTERN GType regress_foo_flags_type_get_type (void); typedef enum @@ -213,18 +281,34 @@ typedef enum typedef struct _RegressFooBoxed RegressFooBoxed; + +_GI_TEST_EXTERN GType regress_foo_boxed_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN RegressFooBoxed* regress_foo_boxed_new (void); + +_GI_TEST_EXTERN void regress_foo_boxed_method (RegressFooBoxed* boxed); /* This one tests capitalization handling with respect to DBus */ typedef struct _RegressFooDBusData RegressFooDBusData; + +_GI_TEST_EXTERN GType regress_foo_dbus_data_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN void regress_foo_dbus_data_method (RegressFooDBusData* dbusdata); /* FIXME: Scanner does not support this yet + +_GI_TEST_EXTERN const char *REGRESS_FOO_CONSTANT_STR = "regress_foo-constant-str"; + +_GI_TEST_EXTERN const int REGRESS_FOO_CONSTANT_INT = 10; + +_GI_TEST_EXTERN const float REGRESS_FOO_CONSTANT_FLOAT = 10; */ @@ -255,14 +339,20 @@ struct _RegressFooRectangle gint height; }; + +_GI_TEST_EXTERN void regress_foo_method_external_references (UtilityObject *object, UtilityEnumType e, UtilityFlagType f, UtilityStruct s); + +_GI_TEST_EXTERN void regress_foo_rectangle_add(RegressFooRectangle *r1, const RegressFooRectangle *r2); + +_GI_TEST_EXTERN RegressFooRectangle * regress_foo_rectangle_new (int x, int y, int width, int height); @@ -301,10 +391,16 @@ struct _RegressFooBRect double y; }; + +_GI_TEST_EXTERN GType regress_foo_brect_get_type (void); + +_GI_TEST_EXTERN RegressFooBRect *regress_foo_brect_new (double x, double y); + +_GI_TEST_EXTERN void regress_foo_brect_add (RegressFooBRect *b1, RegressFooBRect *b2); typedef union _RegressFooBUnion RegressFooBUnion; @@ -338,36 +434,69 @@ struct _RegressFooThingWithArray guchar *data; } ; + +_GI_TEST_EXTERN RegressFooBUnion *regress_foo_bunion_new (void); + +_GI_TEST_EXTERN GType regress_foo_bunion_get_type (void); + +_GI_TEST_EXTERN int regress_foo_bunion_get_contained_type (RegressFooBUnion *bunion); + +_GI_TEST_EXTERN void regress_foo_test_unsigned_qualifier (unsigned int unsigned_param); + +_GI_TEST_EXTERN void regress_foo_test_unsigned_type (unsigned unsigned_param); + +_GI_TEST_EXTERN void regress_foo_test_string_array (char **array); + +_GI_TEST_EXTERN void regress_foo_test_string_array_with_g (gchar **array); + +_GI_TEST_EXTERN GArray *regress_foo_test_array (void); + +_GI_TEST_EXTERN const char * regress_foo_test_const_char_retval (void); + +_GI_TEST_EXTERN const RegressFooStruct * regress_foo_test_const_struct_retval (void); + +_GI_TEST_EXTERN void regress_foo_test_const_char_param (const char * param); + +_GI_TEST_EXTERN void regress_foo_test_const_struct_param (const RegressFooStruct * param); typedef void (*RegressFooVarargsCallback) (const char * param, ...); + +_GI_TEST_EXTERN void regress_foo_test_varargs_callback (gint i, RegressFooVarargsCallback callback); + +_GI_TEST_EXTERN void regress_foo_test_varargs_callback2 (RegressFooVarargsCallback callback); + +_GI_TEST_EXTERN void regress_foo_test_varargs_callback3 (RegressFooVarargsCallback callback, RegressFooVarargsCallback callback2); /* Make sure callbacks get the right scope by default */ +_GI_TEST_EXTERN void regress_foo_async_ready_callback(GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); + +_GI_TEST_EXTERN void regress_foo_destroy_notify_callback(RegressFooCallback callback, gpointer data, GDestroyNotify destroy); @@ -377,8 +506,12 @@ typedef enum { REGRESS_FOO_ERROR_BAD, REGRESS_FOO_ERROR_UGLY } RegressFooError; + +_GI_TEST_EXTERN GType regress_foo_error_get_type (void); + +_GI_TEST_EXTERN GQuark regress_foo_error_quark (void); typedef enum @@ -400,7 +533,11 @@ typedef enum } RegressFooASingle; /* Should be skipped */ + +_GI_TEST_EXTERN void regress_foo_some_variant (guint x, va_list args); + +_GI_TEST_EXTERN void regress_foo_some_variant_ptr (guint x, va_list *args); /** @@ -424,14 +561,22 @@ struct _RegressFooForeignStruct int regress_foo; }; + +_GI_TEST_EXTERN RegressFooForeignStruct* regress_foo_foreign_struct_new (void); + +_GI_TEST_EXTERN RegressFooForeignStruct* regress_foo_foreign_struct_copy (RegressFooForeignStruct *original); /* This one should be a global, not a method on UtilityObject since * it's a separate namespace. */ + +_GI_TEST_EXTERN void regress_foo_object_a_global_method (UtilityObject *obj); + +_GI_TEST_EXTERN RegressFooOtherObject * regress_foo_object_append_new_stack_layer (RegressFooObject *obj, int x); #endif /* __REGRESS_FOO_OBJECT_H__ */ diff --git a/tests/scanner/gettype.c b/tests/scanner/gettype.c index a3c2d6be..fac94a4d 100644 --- a/tests/scanner/gettype.c +++ b/tests/scanner/gettype.c @@ -1,3 +1,5 @@ +#include "config.h" + #include "gettype.h" G_DEFINE_TYPE (GetTypeObject, gettype_object, G_TYPE_OBJECT); diff --git a/tests/scanner/gettype.h b/tests/scanner/gettype.h index 755f091c..5adab579 100644 --- a/tests/scanner/gettype.h +++ b/tests/scanner/gettype.h @@ -3,6 +3,8 @@ #include <glib-object.h> +#include "gitestmacros.h" + #define GETTYPE_TYPE_OBJECT (gettype_object_get_type ()) #define GETTYPE_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GETTYPE_TYPE_OBJECT, GetTypeObject)) #define GETTYPE_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GETTYPE_TYPE_OBJECT)) @@ -19,11 +21,20 @@ struct _GetTypeObjectClass GObjectClass parent_class; }; +_GI_TEST_EXTERN GType gettype_object_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN GetTypeObject* gettype_object_new (void); + +_GI_TEST_EXTERN GType gettype_object_nonmeta1_get_type (GetTypeObject *obj); + +_GI_TEST_EXTERN gboolean gettype_object_nonmeta2_get_type (void); + +_GI_TEST_EXTERN gboolean gettype_object_nonmeta_get_gtype (void); #endif /* __GETTYPE_OBJECT_H__ */ diff --git a/tests/scanner/gtkfrob.c b/tests/scanner/gtkfrob.c index d1c2312c..fa085613 100644 --- a/tests/scanner/gtkfrob.c +++ b/tests/scanner/gtkfrob.c @@ -1,4 +1,6 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#include "config.h" + #include "gtkfrob.h" void diff --git a/tests/scanner/gtkfrob.h b/tests/scanner/gtkfrob.h index 06a282d1..fb079748 100644 --- a/tests/scanner/gtkfrob.h +++ b/tests/scanner/gtkfrob.h @@ -3,9 +3,11 @@ #include <glib-object.h> +#include "gitestmacros.h" /* A global function */ +_GI_TEST_EXTERN void gtk_frob_language_manager_get_default (void); #endif /* __GTKFROB_H__ */ diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c index e60b8e17..48d9e931 100644 --- a/tests/scanner/regress.c +++ b/tests/scanner/regress.c @@ -1,4 +1,6 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#include "config.h" + #include <string.h> #include <stdlib.h> #include <glib-object.h> diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h index 3bbcb991..74a95b72 100644 --- a/tests/scanner/regress.h +++ b/tests/scanner/regress.h @@ -10,146 +10,344 @@ #include <string.h> #include <stdlib.h> +#include "gitestmacros.h" + +_GI_TEST_EXTERN void regress_set_abort_on_error (gboolean abort_on_error); /* basic types */ +_GI_TEST_EXTERN gboolean regress_test_boolean (gboolean in); + +_GI_TEST_EXTERN gboolean regress_test_boolean_true (gboolean in); + +_GI_TEST_EXTERN gboolean regress_test_boolean_false (gboolean in); + +_GI_TEST_EXTERN gint8 regress_test_int8 (gint8 in); + +_GI_TEST_EXTERN guint8 regress_test_uint8 (guint8 in); + +_GI_TEST_EXTERN gint16 regress_test_int16 (gint16 in); + +_GI_TEST_EXTERN guint16 regress_test_uint16 (guint16 in); + +_GI_TEST_EXTERN gint32 regress_test_int32 (gint32 in); + +_GI_TEST_EXTERN guint32 regress_test_uint32 (guint32 in); + +_GI_TEST_EXTERN gint64 regress_test_int64 (gint64 in); + +_GI_TEST_EXTERN guint64 regress_test_uint64 (guint64 in); + +_GI_TEST_EXTERN gshort regress_test_short (gshort in); + +_GI_TEST_EXTERN gushort regress_test_ushort (gushort in); + +_GI_TEST_EXTERN gint regress_test_int (gint in); + +_GI_TEST_EXTERN guint regress_test_uint (guint in); + +_GI_TEST_EXTERN glong regress_test_long (glong in); + +_GI_TEST_EXTERN gulong regress_test_ulong (gulong in); + +_GI_TEST_EXTERN gssize regress_test_ssize (gssize in); + +_GI_TEST_EXTERN gsize regress_test_size (gsize in); + +_GI_TEST_EXTERN gfloat regress_test_float (gfloat in); + +_GI_TEST_EXTERN gdouble regress_test_double (gdouble in); + +_GI_TEST_EXTERN gunichar regress_test_unichar (gunichar in); + +_GI_TEST_EXTERN time_t regress_test_timet (time_t in); + +_GI_TEST_EXTERN GType regress_test_gtype (GType in); /* utf8 */ +_GI_TEST_EXTERN const char *regress_test_utf8_const_return (void); + +_GI_TEST_EXTERN char *regress_test_utf8_nonconst_return (void); + +_GI_TEST_EXTERN void regress_test_utf8_const_in (const char *in); + +_GI_TEST_EXTERN void regress_test_utf8_out (char **out); + +_GI_TEST_EXTERN void regress_test_utf8_inout (char **inout); + +_GI_TEST_EXTERN GSList *regress_test_filename_return (void); + +_GI_TEST_EXTERN void regress_test_utf8_null_in (char *in); + +_GI_TEST_EXTERN void regress_test_utf8_null_out (char **char_out); /* in arguments after out arguments */ +_GI_TEST_EXTERN void regress_test_int_out_utf8 (int *length, const char *in); /* multiple output arguments */ + +_GI_TEST_EXTERN void regress_test_multi_double_args (gdouble in, gdouble *one, gdouble *two); + +_GI_TEST_EXTERN void regress_test_utf8_out_out (char **out0, char **out1); + +_GI_TEST_EXTERN char *regress_test_utf8_out_nonconst_return (char **out); /* non-basic-types */ /* array */ +_GI_TEST_EXTERN gboolean regress_test_strv_in (char **arr); + +_GI_TEST_EXTERN int regress_test_array_int_in (int n_ints, int *ints); + +_GI_TEST_EXTERN void regress_test_array_int_out (int *n_ints, int **ints); + +_GI_TEST_EXTERN void regress_test_array_int_inout (int *n_ints, int **ints); + +_GI_TEST_EXTERN int regress_test_array_gint8_in (int n_ints, gint8 *ints); + +_GI_TEST_EXTERN int regress_test_array_gint16_in (int n_ints, gint16 *ints); + +_GI_TEST_EXTERN gint32 regress_test_array_gint32_in (int n_ints, gint32 *ints); + +_GI_TEST_EXTERN gint64 regress_test_array_gint64_in (int n_ints, gint64 *ints); + +_GI_TEST_EXTERN char *regress_test_array_gtype_in (int n_types, GType *types); + +_GI_TEST_EXTERN char **regress_test_strv_out_container (void); + +_GI_TEST_EXTERN char **regress_test_strv_out (void); + +_GI_TEST_EXTERN const char * const * regress_test_strv_out_c (void); + +_GI_TEST_EXTERN void regress_test_strv_outarg (char ***retp); + +_GI_TEST_EXTERN int regress_test_array_fixed_size_int_in (int *ints); + +_GI_TEST_EXTERN void regress_test_array_fixed_size_int_out (int **ints); + +_GI_TEST_EXTERN int *regress_test_array_fixed_size_int_return (void); /* transfer tests */ +_GI_TEST_EXTERN int *regress_test_array_int_full_out(int *len); + +_GI_TEST_EXTERN int *regress_test_array_int_none_out(int *len); + +_GI_TEST_EXTERN void regress_test_array_int_null_in (int *arr, int len); + +_GI_TEST_EXTERN void regress_test_array_int_null_out (int **arr, int *len); /* interface */ /* GList */ +_GI_TEST_EXTERN const GList *regress_test_glist_nothing_return (void); + +_GI_TEST_EXTERN GList *regress_test_glist_nothing_return2 (void); + +_GI_TEST_EXTERN GList *regress_test_glist_container_return (void); + +_GI_TEST_EXTERN GList *regress_test_glist_everything_return (void); + +_GI_TEST_EXTERN void regress_test_glist_nothing_in (const GList *in); + +_GI_TEST_EXTERN void regress_test_glist_nothing_in2 (GList *in); + +_GI_TEST_EXTERN void regress_test_glist_null_in(GSList *in); + +_GI_TEST_EXTERN void regress_test_glist_null_out(GSList **out_list); /* GSList */ +_GI_TEST_EXTERN const GSList *regress_test_gslist_nothing_return (void); + +_GI_TEST_EXTERN GSList *regress_test_gslist_nothing_return2 (void); + +_GI_TEST_EXTERN GSList *regress_test_gslist_container_return (void); + +_GI_TEST_EXTERN GSList *regress_test_gslist_everything_return (void); + +_GI_TEST_EXTERN void regress_test_gslist_nothing_in (const GSList *in); + +_GI_TEST_EXTERN void regress_test_gslist_nothing_in2 (GSList *in); + +_GI_TEST_EXTERN void regress_test_gslist_null_in(GSList *in); + +_GI_TEST_EXTERN void regress_test_gslist_null_out(GSList **out_list); /* GHashTable */ +_GI_TEST_EXTERN const GHashTable *regress_test_ghash_null_return (void); + +_GI_TEST_EXTERN const GHashTable *regress_test_ghash_nothing_return (void); + +_GI_TEST_EXTERN GHashTable *regress_test_ghash_nothing_return2 (void); + +_GI_TEST_EXTERN GHashTable *regress_test_ghash_gvalue_return (void); + +_GI_TEST_EXTERN void regress_test_ghash_gvalue_in (GHashTable *hash); + +_GI_TEST_EXTERN GHashTable *regress_test_ghash_container_return (void); + +_GI_TEST_EXTERN GHashTable *regress_test_ghash_everything_return (void); + +_GI_TEST_EXTERN void regress_test_ghash_null_in (const GHashTable *in); + +_GI_TEST_EXTERN void regress_test_ghash_null_out (const GHashTable **out); + +_GI_TEST_EXTERN void regress_test_ghash_nothing_in (const GHashTable *in); + +_GI_TEST_EXTERN void regress_test_ghash_nothing_in2 (GHashTable *in); + +_GI_TEST_EXTERN GHashTable *regress_test_ghash_nested_everything_return (void); + +_GI_TEST_EXTERN GHashTable *regress_test_ghash_nested_everything_return2 (void); /* GPtrArray */ +_GI_TEST_EXTERN GPtrArray *regress_test_garray_container_return (void); + +_GI_TEST_EXTERN GPtrArray *regress_test_garray_full_return (void); /* error? */ /* closure */ +_GI_TEST_EXTERN int regress_test_closure (GClosure *closure); + +_GI_TEST_EXTERN int regress_test_closure_one_arg (GClosure *closure, int arg); + +_GI_TEST_EXTERN GVariant *regress_test_closure_variant (GClosure *closure, GVariant* arg); /* value */ +_GI_TEST_EXTERN int regress_test_int_value_arg(const GValue *v); + +_GI_TEST_EXTERN const GValue *regress_test_value_return(int i); /* foreign structs */ #ifndef _GI_DISABLE_CAIRO +_GI_TEST_EXTERN cairo_t *regress_test_cairo_context_full_return (void); + +_GI_TEST_EXTERN void regress_test_cairo_context_none_in (cairo_t *context); + +_GI_TEST_EXTERN cairo_surface_t *regress_test_cairo_surface_none_return (void); + +_GI_TEST_EXTERN cairo_surface_t *regress_test_cairo_surface_full_return (void); + +_GI_TEST_EXTERN void regress_test_cairo_surface_none_in (cairo_surface_t *surface); + +_GI_TEST_EXTERN void regress_test_cairo_surface_full_out (cairo_surface_t **surface); #endif /* versioning (deprecated, since, stability) */ +_GI_TEST_EXTERN void regress_test_versioning (void); + +_GI_TEST_EXTERN GVariant *regress_test_gvariant_i (void); + +_GI_TEST_EXTERN GVariant *regress_test_gvariant_s (void); + +_GI_TEST_EXTERN GVariant *regress_test_gvariant_asv (void); + +_GI_TEST_EXTERN GVariant *regress_test_gvariant_v (void); + +_GI_TEST_EXTERN GVariant *regress_test_gvariant_as (void); /* enums / flags */ @@ -184,10 +382,15 @@ typedef enum REGRESS_TEST_FLAG3 = 1 << 2, } RegressTestFlags; +_GI_TEST_EXTERN GType regress_test_enum_get_type (void) G_GNUC_CONST; #define REGRESS_TEST_TYPE_ENUM (regress_test_enum_get_type ()) + +_GI_TEST_EXTERN GType regress_test_enum_unsigned_get_type (void) G_GNUC_CONST; #define REGRESS_TEST_TYPE_ENUM_UNSIGNED (regress_test_enum_unsigned_get_type ()) + +_GI_TEST_EXTERN GType regress_test_flags_get_type (void) G_GNUC_CONST; #define REGRESS_TEST_TYPE_FLAGS (regress_test_flags_get_type ()) @@ -209,9 +412,14 @@ typedef enum REGRESS_TEST_EVALUE3 = '0' } RegressTestEnumNoGEnum; +_GI_TEST_EXTERN const gchar * regress_test_enum_param(RegressTestEnum e); + +_GI_TEST_EXTERN const gchar * regress_test_unsigned_enum_param(RegressTestEnumUnsigned e); + +_GI_TEST_EXTERN void regress_global_get_flags_out (RegressTestFlags *v); /* error domains */ @@ -223,7 +431,10 @@ typedef enum REGRESS_TEST_ERROR_CODE3 = 3 } RegressTestError; +_GI_TEST_EXTERN GType regress_test_error_get_type (void); + +_GI_TEST_EXTERN GQuark regress_test_error_quark (void); /* Test weird names, with and without @@ -236,7 +447,10 @@ typedef enum REGRESS_TEST_ABC_ERROR_CODE3 = 3 } RegressTestABCError; +_GI_TEST_EXTERN GType regress_test_abc_error_get_type (void); + +_GI_TEST_EXTERN GQuark regress_test_abc_error_quark (void); typedef enum @@ -250,7 +464,10 @@ typedef enum The difference is intentional, although it is mainly meant for capitalization problems. */ +_GI_TEST_EXTERN GType regress_test_unconventional_error_get_type (void); + +_GI_TEST_EXTERN GQuark regress_test_unconventional_error_quark (void); typedef enum @@ -260,6 +477,7 @@ typedef enum REGRESS_TEST_DEF_ERROR_CODE2 = 2 } RegressTestDEFError; +_GI_TEST_EXTERN GQuark regress_test_def_error_quark (void); /* the scanner used to have problem @@ -273,6 +491,7 @@ typedef enum REGRESS_ATEST_ERROR_CODE2 = 2 } RegressATestError; +_GI_TEST_EXTERN GQuark regress_atest_error_quark (void); @@ -305,8 +524,11 @@ struct _RegressTestStructA RegressTestEnum some_enum; }; +_GI_TEST_EXTERN void regress_test_struct_a_clone (RegressTestStructA *a, RegressTestStructA *a_out); + +_GI_TEST_EXTERN void regress_test_struct_a_parse (RegressTestStructA *a_out, const gchar *string); struct _RegressTestStructB @@ -315,6 +537,7 @@ struct _RegressTestStructB RegressTestStructA nested_a; }; +_GI_TEST_EXTERN void regress_test_struct_b_clone (RegressTestStructB *b, RegressTestStructB *b_out); @@ -386,10 +609,17 @@ struct _RegressTestSimpleBoxedA }; /* Intentionally uses _get_gtype */ +_GI_TEST_EXTERN GType regress_test_simple_boxed_a_get_gtype (void); + +_GI_TEST_EXTERN RegressTestSimpleBoxedA *regress_test_simple_boxed_a_copy (RegressTestSimpleBoxedA *a); + +_GI_TEST_EXTERN gboolean regress_test_simple_boxed_a_equals (RegressTestSimpleBoxedA *a, RegressTestSimpleBoxedA *other_a); + +_GI_TEST_EXTERN const RegressTestSimpleBoxedA *regress_test_simple_boxed_a_const_return (void); @@ -399,7 +629,11 @@ struct _RegressTestSimpleBoxedB RegressTestSimpleBoxedA nested_a; }; + +_GI_TEST_EXTERN GType regress_test_simple_boxed_b_get_type (void); + +_GI_TEST_EXTERN RegressTestSimpleBoxedB *regress_test_simple_boxed_b_copy (RegressTestSimpleBoxedB *b); /* opaque boxed */ @@ -416,17 +650,34 @@ struct _RegressTestBoxed RegressTestBoxedPrivate *priv; }; +_GI_TEST_EXTERN GType regress_test_boxed_get_type (void); + +_GI_TEST_EXTERN RegressTestBoxed *regress_test_boxed_new (void); + +_GI_TEST_EXTERN RegressTestBoxed *regress_test_boxed_new_alternative_constructor1 (int i); + +_GI_TEST_EXTERN RegressTestBoxed *regress_test_boxed_new_alternative_constructor2 (int i, int j); + +_GI_TEST_EXTERN RegressTestBoxed *regress_test_boxed_new_alternative_constructor3 (char *s); + +_GI_TEST_EXTERN RegressTestBoxed *regress_test_boxed_copy (RegressTestBoxed *boxed); + +_GI_TEST_EXTERN gboolean regress_test_boxed_equals (RegressTestBoxed *boxed, RegressTestBoxed *other); + +_GI_TEST_EXTERN void regress_test_boxeds_not_a_method (RegressTestBoxed *boxed); + +_GI_TEST_EXTERN void regress_test_boxeds_not_a_static (void); typedef struct _RegressTestBoxedB RegressTestBoxedB; @@ -437,8 +688,14 @@ struct _RegressTestBoxedB glong some_long; }; + +_GI_TEST_EXTERN GType regress_test_boxed_b_get_type (void); + +_GI_TEST_EXTERN RegressTestBoxedB *regress_test_boxed_b_new (gint8 some_int8, glong some_long); + +_GI_TEST_EXTERN RegressTestBoxedB *regress_test_boxed_b_copy (RegressTestBoxedB *boxed); typedef struct _RegressTestBoxedC RegressTestBoxedC; @@ -449,17 +706,30 @@ struct _RegressTestBoxedC guint another_thing; }; +_GI_TEST_EXTERN GType regress_test_boxed_c_get_type (void); + +_GI_TEST_EXTERN RegressTestBoxedC *regress_test_boxed_c_new (void); typedef struct _RegressTestBoxedD RegressTestBoxedD; + +_GI_TEST_EXTERN GType regress_test_boxed_d_get_type (void); + +_GI_TEST_EXTERN RegressTestBoxedD *regress_test_boxed_d_new (const char *a_string, int a_int); + +_GI_TEST_EXTERN RegressTestBoxedD *regress_test_boxed_d_copy (RegressTestBoxedD *boxed); + +_GI_TEST_EXTERN void regress_test_boxed_d_free (RegressTestBoxedD *boxed); + +_GI_TEST_EXTERN int regress_test_boxed_d_get_magic (RegressTestBoxedD *boxed); /* gobject */ @@ -517,22 +787,51 @@ struct _RegressTestObjClass void (*_regress_reserved2) (void); }; +_GI_TEST_EXTERN GType regress_test_obj_get_type (void); + +_GI_TEST_EXTERN RegressTestObj* regress_test_obj_new (RegressTestObj *obj); + +_GI_TEST_EXTERN RegressTestObj* regress_constructor (void); + +_GI_TEST_EXTERN RegressTestObj* regress_test_obj_new_from_file (const char *x, GError **error); + +_GI_TEST_EXTERN void regress_test_obj_set_bare (RegressTestObj *obj, GObject *bare); + +_GI_TEST_EXTERN void regress_test_obj_emit_sig_with_obj (RegressTestObj *obj); + +_GI_TEST_EXTERN void regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj *obj); + +_GI_TEST_EXTERN void regress_test_obj_emit_sig_with_int64 (RegressTestObj *obj); + +_GI_TEST_EXTERN void regress_test_obj_emit_sig_with_uint64 (RegressTestObj *obj); + +_GI_TEST_EXTERN int regress_test_obj_instance_method (RegressTestObj *obj); + +_GI_TEST_EXTERN void regress_test_obj_instance_method_full (RegressTestObj *obj); + +_GI_TEST_EXTERN double regress_test_obj_static_method (int x); + +_GI_TEST_EXTERN void regress_forced_method (RegressTestObj *obj); + +_GI_TEST_EXTERN void regress_test_array_fixed_out_objects (RegressTestObj ***objs); + +_GI_TEST_EXTERN void regress_test_obj_torture_signature_0 (RegressTestObj *obj, int x, double *y, @@ -540,6 +839,8 @@ void regress_test_obj_torture_signature_0 (RegressTestObj *obj, const char *foo, int *q, guint m); + +_GI_TEST_EXTERN gboolean regress_test_obj_torture_signature_1 (RegressTestObj *obj, int x, double *y, @@ -549,6 +850,8 @@ gboolean regress_test_obj_torture_signature_1 (RegressTestObj *obj, guint m, GError **error); + +_GI_TEST_EXTERN gboolean regress_test_obj_skip_return_val (RegressTestObj *obj, gint a, gint *out_b, @@ -559,10 +862,14 @@ gboolean regress_test_obj_skip_return_val (RegressTestObj *obj, gint num2, GError **error); + +_GI_TEST_EXTERN gboolean regress_test_obj_skip_return_val_no_out (RegressTestObj *obj, gint a, GError **error); + +_GI_TEST_EXTERN gboolean regress_test_obj_skip_param (RegressTestObj *obj, gint a, gint *out_b, @@ -573,6 +880,8 @@ gboolean regress_test_obj_skip_param (RegressTestObj *obj, gint num2, GError **error); + +_GI_TEST_EXTERN gboolean regress_test_obj_skip_out_param (RegressTestObj *obj, gint a, gint *out_b, @@ -583,6 +892,8 @@ gboolean regress_test_obj_skip_out_param (RegressTestObj *obj, gint num2, GError **error); + +_GI_TEST_EXTERN gboolean regress_test_obj_skip_inout_param (RegressTestObj *obj, gint a, gint *out_b, @@ -594,9 +905,14 @@ gboolean regress_test_obj_skip_inout_param (RegressTestObj *obj, GError **error); /* virtual */ +_GI_TEST_EXTERN int regress_test_obj_do_matrix (RegressTestObj *obj, const char *somestr); + +_GI_TEST_EXTERN void regress_func_obj_null_in (RegressTestObj *obj); + +_GI_TEST_EXTERN void regress_test_obj_null_out (RegressTestObj **obj); /* inheritance */ @@ -618,9 +934,17 @@ struct _RegressTestSubObjClass RegressTestObjClass parent_class; }; + +_GI_TEST_EXTERN GType regress_test_sub_obj_get_type (void); + +_GI_TEST_EXTERN RegressTestObj* regress_test_sub_obj_new (void); + +_GI_TEST_EXTERN void regress_test_sub_obj_unset_bare (RegressTestSubObj *obj); + +_GI_TEST_EXTERN int regress_test_sub_obj_instance_method (RegressTestSubObj *obj); /* fundamental object */ @@ -656,13 +980,21 @@ struct _RegressTestFundamentalObjectClass { RegressTestFundamentalObjectFinalizeFunction finalize; }; +_GI_TEST_EXTERN GType regress_test_fundamental_object_get_type (void); + +_GI_TEST_EXTERN RegressTestFundamentalObject* regress_test_fundamental_object_ref (RegressTestFundamentalObject *fundamental_object); + +_GI_TEST_EXTERN void regress_test_fundamental_object_unref (RegressTestFundamentalObject *fundamental_object); #define REGRESS_TEST_VALUE_HOLDS_FUNDAMENTAL_OBJECT(value) (G_VALUE_HOLDS(value, REGRESS_TEST_TYPE_FUNDAMENTAL_OBJECT)) +_GI_TEST_EXTERN void regress_test_value_set_fundamental_object (GValue *value, RegressTestFundamentalObject *fundamental_object); + +_GI_TEST_EXTERN RegressTestFundamentalObject* regress_test_value_get_fundamental_object (const GValue *value); typedef struct _RegressTestFundamentalSubObject RegressTestFundamentalSubObject; @@ -678,8 +1010,12 @@ struct _RegressTestFundamentalSubObjectClass { RegressTestFundamentalObjectClass fundamental_object_class; }; + +_GI_TEST_EXTERN GType regress_test_fundamental_sub_object_get_type(void); + +_GI_TEST_EXTERN RegressTestFundamentalSubObject * regress_test_fundamental_sub_object_new (const char *data); @@ -720,35 +1056,74 @@ typedef int (*RegressTestCallbackArray) (int *one, gsize one_length, const char* */ typedef void (* RegressTestCallbackArrayInOut) (int **ints, int *length); +_GI_TEST_EXTERN void regress_test_simple_callback (RegressTestSimpleCallback callback); + +_GI_TEST_EXTERN int regress_test_callback (RegressTestCallback callback); + +_GI_TEST_EXTERN int regress_test_multi_callback (RegressTestCallback callback); + +_GI_TEST_EXTERN int regress_test_array_callback (RegressTestCallbackArray callback); + +_GI_TEST_EXTERN int regress_test_array_inout_callback (RegressTestCallbackArrayInOut callback); + +_GI_TEST_EXTERN int regress_test_callback_user_data (RegressTestCallbackUserData callback, gpointer user_data); + +_GI_TEST_EXTERN int regress_test_callback_destroy_notify (RegressTestCallbackUserData callback, gpointer user_data, GDestroyNotify notify); + +_GI_TEST_EXTERN int regress_test_callback_destroy_notify_no_user_data (RegressTestCallbackUserData callback, GDestroyNotify notify); + +_GI_TEST_EXTERN int regress_test_callback_thaw_notifications (void); + +_GI_TEST_EXTERN void regress_test_callback_async (RegressTestCallbackUserData callback, gpointer user_data); + +_GI_TEST_EXTERN int regress_test_callback_thaw_async (void); + +_GI_TEST_EXTERN void regress_test_async_ready_callback (GAsyncReadyCallback callback); + +_GI_TEST_EXTERN void regress_test_obj_instance_method_callback (RegressTestObj *obj, RegressTestCallback callback); + +_GI_TEST_EXTERN void regress_test_obj_static_method_callback (RegressTestCallback callback); + +_GI_TEST_EXTERN RegressTestObj *regress_test_obj_new_callback (RegressTestCallbackUserData callback, gpointer user_data, GDestroyNotify notify); + +_GI_TEST_EXTERN void regress_test_hash_table_callback (GHashTable *data, RegressTestCallbackHashtable callback); + +_GI_TEST_EXTERN void regress_test_gerror_callback (RegressTestCallbackGError callback); + +_GI_TEST_EXTERN void regress_test_null_gerror_callback (RegressTestCallbackGError callback); + +_GI_TEST_EXTERN void regress_test_owned_gerror_callback (RegressTestCallbackOwnedGError callback); + +_GI_TEST_EXTERN void regress_test_skip_unannotated_callback (RegressTestCallback callback); typedef struct _RegressTestInterface RegressTestInterface; @@ -765,6 +1140,7 @@ struct _RegressTestInterfaceIface { GTypeInterface base_iface; }; +_GI_TEST_EXTERN GType regress_test_interface_get_type (void) G_GNUC_CONST; /* gobject with non-standard prefix */ @@ -785,10 +1161,20 @@ typedef struct GObjectClass parent_class; } RegressTestWi8021xClass; + +_GI_TEST_EXTERN GType regress_test_wi_802_1x_get_type (void); + +_GI_TEST_EXTERN RegressTestWi8021x* regress_test_wi_802_1x_new (void); + +_GI_TEST_EXTERN gboolean regress_test_wi_802_1x_get_testbool (RegressTestWi8021x *obj); + +_GI_TEST_EXTERN void regress_test_wi_802_1x_set_testbool (RegressTestWi8021x *obj, gboolean v); + +_GI_TEST_EXTERN int regress_test_wi_802_1x_static_method (int x); /* floating gobject */ @@ -807,16 +1193,24 @@ typedef struct GInitiallyUnownedClass parent_class; } RegressTestFloatingClass; + +_GI_TEST_EXTERN GType regress_test_floating_get_type (void); + +_GI_TEST_EXTERN RegressTestFloating* regress_test_floating_new (void); /* Function signature torture tests */ + +_GI_TEST_EXTERN void regress_test_torture_signature_0 (int x, double *y, int *z, const char *foo, int *q, guint m); + +_GI_TEST_EXTERN gboolean regress_test_torture_signature_1 (int x, double *y, int *z, @@ -824,6 +1218,8 @@ gboolean regress_test_torture_signature_1 (int x, int *q, guint m, GError **error); + +_GI_TEST_EXTERN void regress_test_torture_signature_2 (int x, RegressTestCallbackUserData callback, gpointer user_data, @@ -834,12 +1230,22 @@ void regress_test_torture_signature_2 (int x, int *q, guint m); + +_GI_TEST_EXTERN GValue *regress_test_date_in_gvalue (void); + +_GI_TEST_EXTERN GValue *regress_test_strv_in_gvalue (void); + +_GI_TEST_EXTERN GObject * _regress_this_is_a_private_symbol (void); + +_GI_TEST_EXTERN void regress_test_multiline_doc_comments (void); + +_GI_TEST_EXTERN void regress_test_nested_parameter (int a); /** @@ -854,6 +1260,8 @@ typedef struct double v; } RegressSkippedStructure; + +_GI_TEST_EXTERN void regress_random_function_with_skipped_structure (int x, RegressSkippedStructure *foo, double v); @@ -881,6 +1289,8 @@ typedef RegressIntset RegressIntSet; */ typedef GPtrArray RegressPtrArrayAlias; + +_GI_TEST_EXTERN void regress_introspectable_via_alias (RegressPtrArrayAlias *data); /** @@ -890,6 +1300,8 @@ void regress_introspectable_via_alias (RegressPtrArrayAlias *data); */ typedef va_list RegressVaListAlias; + +_GI_TEST_EXTERN void regress_not_introspectable_via_alias (RegressVaListAlias ok); /** @@ -899,6 +1311,8 @@ void regress_not_introspectable_via_alias (RegressVaListAlias ok); */ typedef RegressTestBoxed RegressAliasedTestBoxed; + +_GI_TEST_EXTERN void regress_aliased_caller_alloc (RegressAliasedTestBoxed *boxed); /* private testing */ @@ -924,12 +1338,16 @@ typedef struct { gint array[10]; } RegressTestStructFixedArray; + +_GI_TEST_EXTERN void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray *str); typedef struct { gchar name[32]; } RegressLikeXklConfigItem; + +_GI_TEST_EXTERN void regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem *self, const char *name); @@ -947,6 +1365,7 @@ void regress_like_xkl_config_item_set_name (RegressLikeXklConfigItem *self, "POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF," \ "PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP" +_GI_TEST_EXTERN void regress_has_parameter_named_attrs (int foo, gpointer attributes); diff --git a/tests/scanner/sletter.c b/tests/scanner/sletter.c index a6e7bcca..8cb6db52 100644 --- a/tests/scanner/sletter.c +++ b/tests/scanner/sletter.c @@ -1,4 +1,5 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#include "config.h" #include "sletter.h" diff --git a/tests/scanner/sletter.h b/tests/scanner/sletter.h index 20797f6c..f6a146df 100644 --- a/tests/scanner/sletter.h +++ b/tests/scanner/sletter.h @@ -3,11 +3,14 @@ #include <gio/gio.h> +#include "gitestmacros.h" + typedef struct { double x; double y; } SPoint; +_GI_TEST_EXTERN void s_hello (void); /* Like GSpawnError; not registered with GType */ @@ -17,6 +20,8 @@ typedef enum S_SPAWN_ERROR_CODE2 = 2, S_SPAWN_ERROR_CODE3 = 3 } SSpawnError; + +_GI_TEST_EXTERN GQuark s_spawn_error_quark (void); /* Like GDBusError but not registered with GType */ @@ -26,6 +31,8 @@ typedef enum S_DBUS_ERROR_CODE2 = 2, S_DBUS_ERROR_CODE3 = 3 } SDBusError; + +_GI_TEST_EXTERN GQuark s_dbus_error_quark (void); #endif diff --git a/tests/scanner/typedefs.c b/tests/scanner/typedefs.c index 7c1dea19..03614b64 100644 --- a/tests/scanner/typedefs.c +++ b/tests/scanner/typedefs.c @@ -1,3 +1,5 @@ +#include "config.h" + #include "typedefs.h" static TypedefsBoxedWithTypedefBefore * diff --git a/tests/scanner/typedefs.h b/tests/scanner/typedefs.h index 2a5d8beb..7eaa73bb 100644 --- a/tests/scanner/typedefs.h +++ b/tests/scanner/typedefs.h @@ -3,6 +3,8 @@ #include <glib-object.h> +#include "gitestmacros.h" + /* * Tests for various orderings of typedef struct declarations. */ @@ -40,6 +42,8 @@ typedef struct _TypedefsBoxedWithTypedefBefore TypedefsBoxedWithTypedefBefore; struct _TypedefsBoxedWithTypedefBefore { int value; }; + +_GI_TEST_EXTERN GType typedefs_boxed_with_typedef_before_get_type (void) G_GNUC_CONST; @@ -48,6 +52,8 @@ struct _TypedefsBoxedWithTypedefAfter { int value; }; typedef struct _TypedefsBoxedWithTypedefAfter TypedefsBoxedWithTypedefAfter; + +_GI_TEST_EXTERN GType typedefs_boxed_with_typedef_after_get_type (void) G_GNUC_CONST; @@ -55,6 +61,8 @@ GType typedefs_boxed_with_typedef_after_get_type (void) G_GNUC_CONST; typedef struct _TypedefsBoxedWithTagAndTypedef { int value; } TypedefsBoxedWithTagAndTypedef; + +_GI_TEST_EXTERN GType typedefs_boxed_with_tag_and_typedef_get_type (void) G_GNUC_CONST; @@ -62,11 +70,15 @@ GType typedefs_boxed_with_tag_and_typedef_get_type (void) G_GNUC_CONST; typedef struct { int value; } TypedefsBoxedWithAnonymousTypedef; + +_GI_TEST_EXTERN GType typedefs_boxed_with_anonymous_typedef_get_type (void) G_GNUC_CONST; /* BUG: uses <record> instead of <glib:boxed> */ typedef struct _TypedefsBoxedWithHiddenStruct TypedefsBoxedWithHiddenStruct; + +_GI_TEST_EXTERN GType typedefs_boxed_with_hidden_struct_get_type (void) G_GNUC_CONST; diff --git a/tests/scanner/utility.c b/tests/scanner/utility.c index fb1cf5a0..c5e48a4e 100644 --- a/tests/scanner/utility.c +++ b/tests/scanner/utility.c @@ -1,4 +1,6 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +#include "config.h" + #include "utility.h" G_DEFINE_TYPE (UtilityObject, utility_object, G_TYPE_OBJECT); diff --git a/tests/scanner/utility.h b/tests/scanner/utility.h index 8dc6d549..ff1c3824 100644 --- a/tests/scanner/utility.h +++ b/tests/scanner/utility.h @@ -3,6 +3,8 @@ #include <glib-object.h> +#include "gitestmacros.h" + #define UTILITY_TYPE_OBJECT (utility_object_get_type ()) #define UTILITY_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), UTILITY_TYPE_OBJECT, UtilityObject)) #define UTILITY_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), UTILITY_TYPE_OBJECT)) @@ -53,7 +55,11 @@ typedef struct typedef void (*UtilityFileFunc)(const char *path, gpointer user_data); + +_GI_TEST_EXTERN GType utility_object_get_type (void) G_GNUC_CONST; + +_GI_TEST_EXTERN void utility_object_watch_dir (UtilityObject *object, const char *path, UtilityFileFunc func, @@ -90,6 +96,7 @@ typedef union double real; } UtilityUnion; +_GI_TEST_EXTERN void utility_dir_foreach (const char *path, UtilityFileFunc func, gpointer user_data); #endif /* __UTILITY_H__ */ diff --git a/tests/scanner/warnlib.h b/tests/scanner/warnlib.h index a4c28b47..546e8ea3 100644 --- a/tests/scanner/warnlib.h +++ b/tests/scanner/warnlib.h @@ -5,9 +5,13 @@ #include <gio/gio.h> +#include "gitestmacros.h" + #define WARNLIB_UNPAIRED_ERROR (warnlib_unpaired_error_quark ()) +_GI_TEST_EXTERN GQuark warnlib_unpaired_error_quark (void); +_GI_TEST_EXTERN gboolean warnlib_throw_unpaired (GError **error); /* interface */ @@ -31,9 +35,12 @@ struct _WarnLibWhateverIface void (*do_boo) (WarnLibWhatever *self, int x, gpointer y); }; +_GI_TEST_EXTERN void warnlib_whatever_do_moo (WarnLibWhatever *self, int, gpointer); +_GI_TEST_EXTERN void warnlib_whatever_do_boo (WarnLibWhatever *self, int, gpointer); +_GI_TEST_EXTERN GType warnlib_whatever_get_type (void) G_GNUC_CONST; #endif |