From: Jasper St. Pierre Date: Fri, 25 May 2012 19:24:34 +0000 (-0400) Subject: tests: Add a foreign struct signal test X-Git-Tag: GOBJECT_INTROSPECTION_1_33_2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a7bfba3ecef5d821fb14a9723746fde9665e1f38;p=platform%2Fupstream%2Fgobject-introspection.git tests: Add a foreign struct signal test https://bugzilla.gnome.org/show_bug.cgi?id=671687 --- diff --git a/configure.ac b/configure.ac index e8fc72d..58b8015 100644 --- a/configure.ac +++ b/configure.ac @@ -132,7 +132,7 @@ AM_CONDITIONAL(HAVE_GIO_UNIX, test x$have_gio_unix = xtrue) AC_ARG_ENABLE(tests,[ --disable-tests disable test libraries ], enable_tests=$enableval,enable_tests=yes) have_cairo=no -PKG_CHECK_MODULES(CAIRO, [cairo], have_cairo=yes, have_cairo=no) +PKG_CHECK_MODULES(CAIRO, [cairo cairo-gobject], have_cairo=yes, have_cairo=no) if test x$have_cairo != xyes && test x$enable_tests != xno; then AC_MSG_ERROR([Tests enabled but cairo not found; pass --disable-tests or install cairo]) fi diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir index 81c0a6b..b1fd124 100644 --- a/tests/scanner/Regress-1.0-expected.gir +++ b/tests/scanner/Regress-1.0-expected.gir @@ -621,6 +621,12 @@ case. + + + + + @@ -1059,6 +1065,17 @@ raise an error. + + + + + + + A cairo context. + + + + This test signal is like TelepathyGlib's TpAccount::status-changed diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c index 30ead90..bcab7f8 100644 --- a/tests/scanner/regress.c +++ b/tests/scanner/regress.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "regress.h" @@ -1996,6 +1997,7 @@ enum { REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_HASH_PROP, REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_STRV, REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_OBJ, + REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_FOREIGN_STRUCT, REGRESS_TEST_OBJ_SIGNAL_FIRST, REGRESS_TEST_OBJ_SIGNAL_CLEANUP, REGRESS_TEST_OBJ_SIGNAL_ALL, @@ -2115,6 +2117,23 @@ regress_test_obj_class_init (RegressTestObjClass *klass) 1, G_TYPE_OBJECT); + /** + * RegressTestObj::sig-with-foreign-struct: + * @self: an object + * @cr: (transfer none): A cairo context. + */ + regress_test_obj_signals[REGRESS_TEST_OBJ_SIGNAL_SIG_WITH_FOREIGN_STRUCT] = + g_signal_new ("sig-with-foreign-struct", + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + CAIRO_GOBJECT_TYPE_CONTEXT); + regress_test_obj_signals[REGRESS_TEST_OBJ_SIGNAL_FIRST] = g_signal_new ("first", G_TYPE_FROM_CLASS (gobject_class), @@ -2361,6 +2380,14 @@ regress_test_obj_emit_sig_with_obj (RegressTestObj *obj) g_object_unref (obj_param); } +void +regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj *obj) +{ + cairo_t *cr = regress_test_cairo_context_full_return (); + g_signal_emit_by_name (obj, "sig-with-foreign-struct", cr); + cairo_destroy (cr); +} + int regress_test_obj_instance_method (RegressTestObj *obj) { diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h index 15b8ce2..eeab81b 100644 --- a/tests/scanner/regress.h +++ b/tests/scanner/regress.h @@ -382,6 +382,7 @@ RegressTestObj* regress_constructor (void); RegressTestObj* regress_test_obj_new_from_file (const char *x, GError **error); void regress_test_obj_set_bare (RegressTestObj *obj, GObject *bare); void regress_test_obj_emit_sig_with_obj (RegressTestObj *obj); +void regress_test_obj_emit_sig_with_foreign_struct (RegressTestObj *obj); int regress_test_obj_instance_method (RegressTestObj *obj); double regress_test_obj_static_method (int x); void regress_forced_method (RegressTestObj *obj);