From 9b75358ca14e1ad8a41c364195df748a1a1bbf5d Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 13 Mar 2013 17:16:48 +0000 Subject: stop listening to a widget's signals when it's removed from the menu tree that we're mirroring. This condition was detected by a flood of g_warnings, so add a regression test to confirm that the warning messages no longer appear. --- libdbusmenu-gtk/parser.c | 80 ++++++++++++++++++++------------ tests/Makefile.am | 21 +++++++++ tests/test-gtk-remove.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 190 insertions(+), 29 deletions(-) create mode 100644 tests/test-gtk-remove.c diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index 6244b07..9d1b034 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -273,10 +273,47 @@ dbusmenu_gtk_parse_menu_structure (GtkWidget * widget) DbusmenuMenuitem * dbusmenu_gtk_parse_get_cached_item (GtkWidget * widget) { - if (!GTK_IS_MENU_ITEM(widget)) { - return NULL; - } - return DBUSMENU_MENUITEM(g_object_get_data(G_OBJECT(widget), CACHED_MENUITEM)); + GObject * o = NULL; + DbusmenuMenuitem * ret = NULL; + + if (GTK_IS_MENU_ITEM (widget)) + o = g_object_get_data (G_OBJECT(widget), CACHED_MENUITEM); + + if (o && DBUSMENU_IS_MENUITEM(o)) + ret = DBUSMENU_MENUITEM (o); + + return ret; +} + +/* remove our dbusmenuitem's hooks to a GtkWidget, + such as when either of them are being destroyed */ +static void +disconnect_from_widget (GtkWidget * widget) +{ + ParserData * pdata = parser_data_get_from_widget (widget); + + if (pdata && pdata->widget) + { + GObject * o; + + g_assert (pdata->widget == widget); + + /* stop listening to signals from the widget */ + o = G_OBJECT (pdata->widget); + dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_notify_handler_id); + dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_add_handler_id); + dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_accel_handler_id); + dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_toggle_handler_id); + dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_visible_handler_id); + dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_screen_changed_handler_id); + + /* clear the menuitem's widget pointer */ + g_object_remove_weak_pointer (o, (gpointer*)&pdata->widget); + pdata->widget = NULL; + + /* clear the widget's menuitem pointer */ + g_object_steal_data(o, CACHED_MENUITEM); + } } static void @@ -297,17 +334,7 @@ parser_data_free (ParserData * pdata) } if (pdata->widget != NULL) { - GObject * o = G_OBJECT(pdata->widget); - dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_notify_handler_id); - dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_add_handler_id); - dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_accel_handler_id); - dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_toggle_handler_id); - dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_visible_handler_id); - dbusmenu_gtk_clear_signal_handler (o, &pdata->widget_screen_changed_handler_id); - g_object_remove_weak_pointer(o, (gpointer*)&pdata->widget); - - /* since the DbusmenuMenuitem is being destroyed, uncache it from the GtkWidget */ - g_object_steal_data(o, CACHED_MENUITEM); + disconnect_from_widget (pdata->widget); } if (pdata->settings != NULL) { @@ -1387,24 +1414,19 @@ item_inserted_cb (GtkContainer *menu, /* A child item was removed from a menu we're watching. */ static void -item_removed_cb (GtkContainer *menu, GtkWidget *widget, gpointer data) +item_removed_cb (GtkContainer *parent_w, GtkWidget *child_w, gpointer data) { - gpointer pmi = g_object_get_data(G_OBJECT(widget), CACHED_MENUITEM); - if (pmi == NULL) { - return; - } + DbusmenuMenuitem * child_mi; - DbusmenuMenuitem * child = DBUSMENU_MENUITEM(pmi); - - pmi = g_object_get_data(G_OBJECT(menu), CACHED_MENUITEM); - if (pmi == NULL) { - return; - } + if ((child_mi = dbusmenu_gtk_parse_get_cached_item (child_w))) + { + DbusmenuMenuitem * parent_mi; - DbusmenuMenuitem * parent = DBUSMENU_MENUITEM(pmi); + if ((parent_mi = dbusmenu_gtk_parse_get_cached_item (GTK_WIDGET(parent_w)))) + dbusmenu_menuitem_child_delete (parent_mi, child_mi); - dbusmenu_menuitem_child_delete(parent, child); - return; + disconnect_from_widget (child_w); + } } static gboolean diff --git a/tests/Makefile.am b/tests/Makefile.am index 0cd68d0..356d803 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -29,6 +29,7 @@ TESTS += \ test-gtk-label \ test-gtk-shortcut \ test-gtk-reorder \ + test-gtk-remove \ test-gtk-parser-test # Not working with GTK3 and a critical grab that is in # the GTK3 code. @@ -71,6 +72,7 @@ endif if WANT_LIBDBUSMENUGTK check_PROGRAMS += \ test-gtk-objects \ + test-gtk-remove \ test-gtk-label-client \ test-gtk-label-server \ test-gtk-shortcut-client \ @@ -620,6 +622,25 @@ test-gtk-shortcut-python: test-gtk-shortcut-server test-gtk-shortcut-client.py M EXTRA_DIST += test-gtk-shortcut-client.py CLEANFILES += test-gtk-shortcut-client.pyc +######################### +# Test GTK Remove +######################### + +test_gtk_remove_SOURCES = \ + test-gtk-remove.c + +test_gtk_remove_CFLAGS = \ + -I $(srcdir)/.. \ + $(DBUSMENUGTK_CFLAGS) \ + $(DBUSMENUTESTS_CFLAGS) \ + $(DBUSMENUGLIB_CFLAGS) -Wall -Werror + +test_gtk_remove_LDADD = \ + ../libdbusmenu-glib/libdbusmenu-glib.la \ + ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(DBUSMENUGTK_LIBS) \ + $(DBUSMENUTESTS_LIBS) + ######################### # Test GTK Reorder ######################### diff --git a/tests/test-gtk-remove.c b/tests/test-gtk-remove.c new file mode 100644 index 0000000..0655fc0 --- /dev/null +++ b/tests/test-gtk-remove.c @@ -0,0 +1,118 @@ +/* + Confirm that no warnings/criticals get generated by including + multiple add/removes in a match w/o waiting on the mainloop to iterate. + + Copyright 2013 Canonical Ltd. + + Original sample code by Drew Bliss + Modified for automatic testing by Charles Kerr + */ + +#include /* exit() */ +#include +#include +#include +#include + +static GMainLoop * loop = NULL; +static GtkWidget * top_gtk = NULL; +static DbusmenuMenuitem * top_dbusmenu = NULL; +static DbusmenuServer * menuservice = NULL; + +static void +rebuild_menu (void) +{ + GList * l; + GList * children; + int i; + const int n = 10; + static int count = 0; + + if (top_gtk == NULL) + { + top_gtk = gtk_menu_new (); + gtk_widget_show (top_gtk); + top_dbusmenu = dbusmenu_gtk_parse_menu_structure (top_gtk); + menuservice = dbusmenu_server_new ("/org/ayatana/NotificationItem/test/Menu"); + dbusmenu_server_set_root (menuservice, top_dbusmenu); + } + + // remove all the previous children + children = gtk_container_get_children (GTK_CONTAINER(top_gtk)); + for (l=children; l!=NULL; l=l->next) + gtk_widget_destroy (GTK_WIDGET (l->data)); + + // add a handful of new children + for (i=0; i 5) + { + g_main_loop_quit (loop); + return G_SOURCE_REMOVE; + } + + if (iteration <= 2) + { + rebuild_menu (); + } + else + { + int i; + + for (i=0; i Date: Tue, 18 Jun 2013 13:55:37 -0500 Subject: in tests/Makefile.am, fix relative paths --- tests/Makefile.am | 132 +++++++++++++++++++++++++++--------------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index b136935..1fbaaf5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -117,14 +117,14 @@ libdbusmenu_jsonloader_la_LDFLAGS = \ libdbusmenu_jsonloader_la_CFLAGS = \ $(DBUSMENUGLIB_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ -Wall \ -Werror \ -DG_DISABLE_DEPRECATED \ -DG_LOG_DOMAIN="\"LIBDBUSMENU-JSONLOADER\"" libdbusmenu_jsonloader_la_LIBADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -139,11 +139,11 @@ glib_server_nomenu_SOURCES = \ glib-server-nomenu.c glib_server_nomenu_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror glib_server_nomenu_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) ###################### @@ -162,11 +162,11 @@ test_glib_layout_server_SOURCES = \ test-glib-layout-server.c test_glib_layout_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_layout_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) test_glib_layout_client_SOURCES = \ @@ -174,11 +174,11 @@ test_glib_layout_client_SOURCES = \ test-glib-layout-client.c test_glib_layout_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_layout_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) ###################### @@ -196,22 +196,22 @@ test_glib_events_server_SOURCES = \ test-glib-events-server.c test_glib_events_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_events_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) test_glib_events_client_SOURCES = \ test-glib-events-client.c test_glib_events_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_events_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) ################################ @@ -229,11 +229,11 @@ test_glib_events_nogroup_client_SOURCES = \ test-glib-events-nogroup-client.c test_glib_events_nogroup_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_events_nogroup_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) ###################### @@ -255,7 +255,7 @@ test_json_server_SOURCES = \ test-json-server.c test_json_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ -I $(srcdir) \ $(DBUSMENUGLIB_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ @@ -263,7 +263,7 @@ test_json_server_CFLAGS = \ -Wall -Werror test_json_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ libdbusmenu-jsonloader.la \ $(DBUSMENUTESTS_LIBS) \ $(DBUSMENUGLIB_LIBS) @@ -272,11 +272,11 @@ test_json_client_SOURCES = \ test-json-client.c test_json_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_json_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUTESTS_LIBS) \ $(DBUSMENUGLIB_LIBS) @@ -315,11 +315,11 @@ test_glib_submenu_server_SOURCES = \ test-glib-submenu-server.c test_glib_submenu_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_submenu_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) test_glib_submenu_client_SOURCES = \ @@ -327,11 +327,11 @@ test_glib_submenu_client_SOURCES = \ test-glib-submenu-client.c test_glib_submenu_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_submenu_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) ###################### @@ -351,11 +351,11 @@ test_glib_objects_SOURCES = \ test-glib-objects.c test_glib_objects_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_objects_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) DISTCLEANFILES += $(OBJECT_XML_REPORT) @@ -376,11 +376,11 @@ test_glib_properties_server_SOURCES = \ test-glib-properties-server.c test_glib_properties_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_properties_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) test_glib_properties_client_SOURCES = \ @@ -388,11 +388,11 @@ test_glib_properties_client_SOURCES = \ test-glib-properties-client.c test_glib_properties_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_properties_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) ###################### @@ -416,11 +416,11 @@ test_glib_proxy_server_SOURCES = \ test-glib-proxy-server.c test_glib_proxy_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_proxy_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) test_glib_proxy_client_SOURCES = \ @@ -428,11 +428,11 @@ test_glib_proxy_client_SOURCES = \ test-glib-proxy-client.c test_glib_proxy_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_proxy_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) test_glib_proxy_proxy_SOURCES = \ @@ -440,11 +440,11 @@ test_glib_proxy_proxy_SOURCES = \ test-glib-proxy-proxy.c test_glib_proxy_proxy_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_proxy_proxy_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) ######################### @@ -455,11 +455,11 @@ test_glib_simple_items_SOURCES = \ test-glib-simple-items.c test_glib_simple_items_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_glib_simple_items_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(DBUSMENUGLIB_LIBS) EXTRA_DIST += test-glib-simple-items.py @@ -482,15 +482,15 @@ test_gtk_objects_SOURCES = \ test-gtk-objects.c test_gtk_objects_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) \ $(DBUSMENUGTK_CFLAGS) \ -DSRCDIR="\"$(srcdir)\"" \ -Wall -Werror test_gtk_objects_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGLIB_LIBS) \ $(DBUSMENUGTK_LIBS) @@ -514,15 +514,15 @@ test_gtk_parser_SOURCES = \ test-gtk-parser.c test_gtk_parser_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGLIB_CFLAGS) \ $(DBUSMENUGTK_CFLAGS) \ -DSRCDIR="\"$(srcdir)\"" \ -Wall -Werror test_gtk_parser_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGLIB_LIBS) \ $(DBUSMENUGTK_LIBS) @@ -544,14 +544,14 @@ test_gtk_label_server_SOURCES = \ test-gtk-label-server.c test_gtk_label_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_label_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ libdbusmenu-jsonloader.la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -560,14 +560,14 @@ test_gtk_label_client_SOURCES = \ test-gtk-label-client.c test_gtk_label_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_label_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -587,14 +587,14 @@ test_gtk_shortcut_server_SOURCES = \ test-gtk-shortcut-server.c test_gtk_shortcut_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_shortcut_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -602,14 +602,14 @@ test_gtk_shortcut_client_SOURCES = \ test-gtk-shortcut-client.c test_gtk_shortcut_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_shortcut_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -636,14 +636,14 @@ test_gtk_remove_SOURCES = \ test-gtk-remove.c test_gtk_remove_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_remove_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -663,14 +663,14 @@ test_gtk_reorder_server_SOURCES = \ test-gtk-reorder-server.c test_gtk_reorder_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_reorder_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -690,14 +690,14 @@ test_gtk_submenu_server_SOURCES = \ test-gtk-submenu-server.c test_gtk_submenu_server_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_submenu_server_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) @@ -705,14 +705,14 @@ test_gtk_submenu_client_SOURCES = \ test-gtk-submenu-client.c test_gtk_submenu_client_CFLAGS = \ - -I $(srcdir)/.. \ + -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror test_gtk_submenu_client_LDADD = \ - ../libdbusmenu-glib/libdbusmenu-glib.la \ - ../libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) -- cgit v1.2.3 From ad2a11e5f03fb48c74af8e4c0dd09f954cf967a9 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 18 Jun 2013 14:59:44 -0500 Subject: When a widget internally holds a link to a dbusmenuitem, keep a ref on that dbusmenuitem until that link is removed. --- libdbusmenu-gtk/parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index 9d1b034..b09e984 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -312,7 +312,7 @@ disconnect_from_widget (GtkWidget * widget) pdata->widget = NULL; /* clear the widget's menuitem pointer */ - g_object_steal_data(o, CACHED_MENUITEM); + g_object_set_data(o, CACHED_MENUITEM, NULL); } } @@ -406,7 +406,7 @@ new_menuitem (GtkWidget * widget) pdata->widget = widget; g_object_add_weak_pointer(G_OBJECT (widget), (gpointer*)&pdata->widget); - g_object_set_data(G_OBJECT(widget), CACHED_MENUITEM, item); + g_object_set_data_full(G_OBJECT(widget), CACHED_MENUITEM, g_object_ref(item), g_object_unref); return item; } -- cgit v1.2.3 From 54fd03c702247158b4c238a4f1e59d80fd6a5145 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 18 Jun 2013 16:08:09 -0500 Subject: run test-gtk-remove inside of dbus-test-runner --- tests/Makefile.am | 19 +++++-- tests/test-gtk-remove-server.c | 118 +++++++++++++++++++++++++++++++++++++++++ tests/test-gtk-remove.c | 118 ----------------------------------------- 3 files changed, 132 insertions(+), 123 deletions(-) create mode 100644 tests/test-gtk-remove-server.c delete mode 100644 tests/test-gtk-remove.c diff --git a/tests/Makefile.am b/tests/Makefile.am index 1fbaaf5..0977356 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -78,11 +78,11 @@ endif if WANT_LIBDBUSMENUGTK check_PROGRAMS += \ test-gtk-objects \ - test-gtk-remove \ test-gtk-label-client \ test-gtk-label-server \ test-gtk-shortcut-client \ test-gtk-shortcut-server \ + test-gtk-remove-server \ test-gtk-reorder-server \ test-gtk-submenu-server \ test-gtk-submenu-client \ @@ -632,21 +632,30 @@ CLEANFILES += test-gtk-shortcut-client.pyc # Test GTK Remove ######################### -test_gtk_remove_SOURCES = \ - test-gtk-remove.c +test-gtk-remove: test-gtk-remove-server Makefile.am + @echo "#!/bin/bash" > $@ + @echo export UBUNTU_MENUPROXY="" >> $@ + @echo export G_DEBUG=fatal_criticals >> $@ + @echo $(XVFB_RUN) >> $@ + @echo $(DBUS_RUNNER) --task ./test-gtk-remove-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> $@ + @chmod +x $@ + +test_gtk_remove_server_SOURCES = \ + test-gtk-remove-server.c -test_gtk_remove_CFLAGS = \ +test_gtk_remove_server_CFLAGS = \ -I $(top_srcdir) \ $(DBUSMENUGTK_CFLAGS) \ $(DBUSMENUTESTS_CFLAGS) \ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror -test_gtk_remove_LDADD = \ +test_gtk_remove_server_LDADD = \ $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ $(DBUSMENUGTK_LIBS) \ $(DBUSMENUTESTS_LIBS) + ######################### # Test GTK Reorder ######################### diff --git a/tests/test-gtk-remove-server.c b/tests/test-gtk-remove-server.c new file mode 100644 index 0000000..0655fc0 --- /dev/null +++ b/tests/test-gtk-remove-server.c @@ -0,0 +1,118 @@ +/* + Confirm that no warnings/criticals get generated by including + multiple add/removes in a match w/o waiting on the mainloop to iterate. + + Copyright 2013 Canonical Ltd. + + Original sample code by Drew Bliss + Modified for automatic testing by Charles Kerr + */ + +#include /* exit() */ +#include +#include +#include +#include + +static GMainLoop * loop = NULL; +static GtkWidget * top_gtk = NULL; +static DbusmenuMenuitem * top_dbusmenu = NULL; +static DbusmenuServer * menuservice = NULL; + +static void +rebuild_menu (void) +{ + GList * l; + GList * children; + int i; + const int n = 10; + static int count = 0; + + if (top_gtk == NULL) + { + top_gtk = gtk_menu_new (); + gtk_widget_show (top_gtk); + top_dbusmenu = dbusmenu_gtk_parse_menu_structure (top_gtk); + menuservice = dbusmenu_server_new ("/org/ayatana/NotificationItem/test/Menu"); + dbusmenu_server_set_root (menuservice, top_dbusmenu); + } + + // remove all the previous children + children = gtk_container_get_children (GTK_CONTAINER(top_gtk)); + for (l=children; l!=NULL; l=l->next) + gtk_widget_destroy (GTK_WIDGET (l->data)); + + // add a handful of new children + for (i=0; i 5) + { + g_main_loop_quit (loop); + return G_SOURCE_REMOVE; + } + + if (iteration <= 2) + { + rebuild_menu (); + } + else + { + int i; + + for (i=0; i - Modified for automatic testing by Charles Kerr - */ - -#include /* exit() */ -#include -#include -#include -#include - -static GMainLoop * loop = NULL; -static GtkWidget * top_gtk = NULL; -static DbusmenuMenuitem * top_dbusmenu = NULL; -static DbusmenuServer * menuservice = NULL; - -static void -rebuild_menu (void) -{ - GList * l; - GList * children; - int i; - const int n = 10; - static int count = 0; - - if (top_gtk == NULL) - { - top_gtk = gtk_menu_new (); - gtk_widget_show (top_gtk); - top_dbusmenu = dbusmenu_gtk_parse_menu_structure (top_gtk); - menuservice = dbusmenu_server_new ("/org/ayatana/NotificationItem/test/Menu"); - dbusmenu_server_set_root (menuservice, top_dbusmenu); - } - - // remove all the previous children - children = gtk_container_get_children (GTK_CONTAINER(top_gtk)); - for (l=children; l!=NULL; l=l->next) - gtk_widget_destroy (GTK_WIDGET (l->data)); - - // add a handful of new children - for (i=0; i 5) - { - g_main_loop_quit (loop); - return G_SOURCE_REMOVE; - } - - if (iteration <= 2) - { - rebuild_menu (); - } - else - { - int i; - - for (i=0; i Date: Tue, 18 Jun 2013 16:53:18 -0500 Subject: in tests/, replace deprecated API call g_main_quit() with g_main_loop_quit() --- tests/test-glib-simple-items.c | 2 +- tests/test-gtk-reorder-server.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test-glib-simple-items.c b/tests/test-glib-simple-items.c index 1fff8bf..f4086a4 100644 --- a/tests/test-glib-simple-items.c +++ b/tests/test-glib-simple-items.c @@ -25,7 +25,7 @@ dummy_users (DbusmenuMenuitem * root) { static gboolean quititall (gpointer data) { - g_main_quit(mainloop); + g_main_loop_quit(mainloop); return FALSE; } diff --git a/tests/test-gtk-reorder-server.c b/tests/test-gtk-reorder-server.c index d0fba82..560820e 100644 --- a/tests/test-gtk-reorder-server.c +++ b/tests/test-gtk-reorder-server.c @@ -52,7 +52,7 @@ static gboolean timer_func (gpointer data) { if (test == NUMBER_TESTS) { - g_main_quit(mainloop); + g_main_loop_quit(mainloop); return FALSE; } -- cgit v1.2.3 From 0e81d534211cd7e0b5cbff8f3d4211705d7c6a63 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 18 Jun 2013 17:28:55 -0500 Subject: in tests/Makefile.am, use variables for the shared cflags and cflags, rather than using copy/paste everywhere --- tests/Makefile.am | 444 ++++++++++++++---------------------------------------- 1 file changed, 112 insertions(+), 332 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index 0977356..c1918eb 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,3 @@ - DBUS_RUNNER=dbus-test-runner --max-wait=0 CLEANFILES= @@ -94,6 +93,22 @@ XVFB_RUN=". $(srcdir)/run-xvfb.sh" # for the GI tests, prefer/use the typelibs from the local build tree TESTS_ENVIRONMENT = env GI_TYPELIB_PATH=$(top_builddir)/libdbusmenu-glib:$(top_builddir)/libdbusmenu-gtk:$(GI_TYPELIB_PATH) +############################################ +# Shared vars for the dbusmenu-glib tests +############################################ + +DBUSMENU_GLIB_TEST_CFLAGS = \ + -Wall -Werror \ + -DG_DISABLE_DEPRECATED \ + -I$(top_srcdir) \ + $(DBUSMENUTESTS_CFLAGS) \ + $(DBUSMENUGLIB_CFLAGS) + +DBUSMENU_GLIB_TEST_LDADD = \ + $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ + $(DBUSMENUGLIB_LIBS) \ + $(DBUSMENUTESTS_LIBS) + ###################### # JSON Loader lib ###################### @@ -115,18 +130,11 @@ libdbusmenu_jsonloader_la_LDFLAGS = \ -export-symbols-regex "^[^_].*" libdbusmenu_jsonloader_la_CFLAGS = \ - $(DBUSMENUGLIB_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - -I $(top_srcdir) \ - -Wall \ - -Werror \ - -DG_DISABLE_DEPRECATED \ + $(DBUSMENU_GLIB_TEST_CFLAGS) \ -DG_LOG_DOMAIN="\"LIBDBUSMENU-JSONLOADER\"" libdbusmenu_jsonloader_la_LIBADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) \ - $(DBUSMENUTESTS_LIBS) + $(DBUSMENU_GLIB_TEST_LDADD) pkgconfig_DATA = dbusmenu-jsonloader-0.4.pc pkgconfigdir = $(libdir)/pkgconfig @@ -135,16 +143,9 @@ pkgconfigdir = $(libdir)/pkgconfig # Test GLib server ###################### -glib_server_nomenu_SOURCES = \ - glib-server-nomenu.c - -glib_server_nomenu_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -glib_server_nomenu_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +glib_server_nomenu_SOURCES = glib-server-nomenu.c +glib_server_nomenu_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +glib_server_nomenu_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ###################### # Test Glib Layout @@ -157,29 +158,13 @@ test-glib-layout: test-glib-layout-client test-glib-layout-server Makefile.am @echo $(DBUS_RUNNER) --task ./test-glib-layout-client --task-name Client --task ./test-glib-layout-server --task-name Server --ignore-return >> $@ @chmod +x $@ -test_glib_layout_server_SOURCES = \ - test-glib-layout.h \ - test-glib-layout-server.c +test_glib_layout_server_SOURCES = test-glib-layout.h test-glib-layout-server.c +test_glib_layout_server_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_layout_server_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) -test_glib_layout_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_layout_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) - -test_glib_layout_client_SOURCES = \ - test-glib-layout.h \ - test-glib-layout-client.c - -test_glib_layout_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_layout_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_layout_client_SOURCES = test-glib-layout.h test-glib-layout-client.c +test_glib_layout_client_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_layout_client_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ###################### # Test Glib Events @@ -192,27 +177,13 @@ test-glib-events: test-glib-events-client test-glib-events-server Makefile.am @echo $(DBUS_RUNNER) --task ./test-glib-events-client --task-name Client --task ./test-glib-events-server --task-name Server --ignore-return >> $@ @chmod +x $@ -test_glib_events_server_SOURCES = \ - test-glib-events-server.c - -test_glib_events_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_events_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) - -test_glib_events_client_SOURCES = \ - test-glib-events-client.c - -test_glib_events_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror +test_glib_events_server_SOURCES = test-glib-events-server.c +test_glib_events_server_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_events_server_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) -test_glib_events_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_events_client_SOURCES = test-glib-events-client.c +test_glib_events_client_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_events_client_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ################################ # Test Glib Events No Grouping @@ -225,16 +196,9 @@ test-glib-events-nogroup: test-glib-events-nogroup-client test-glib-events-serve @echo $(DBUS_RUNNER) --task ./test-glib-events-nogroup-client --task-name Client --task ./test-glib-events-server --task-name Server --ignore-return >> $@ @chmod +x $@ -test_glib_events_nogroup_client_SOURCES = \ - test-glib-events-nogroup-client.c - -test_glib_events_nogroup_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_events_nogroup_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_events_nogroup_client_SOURCES = test-glib-events-nogroup-client.c +test_glib_events_nogroup_client_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_events_nogroup_client_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ###################### # Test JSON @@ -255,30 +219,17 @@ test_json_server_SOURCES = \ test-json-server.c test_json_server_CFLAGS = \ - -I $(top_srcdir) \ - -I $(srcdir) \ - $(DBUSMENUGLIB_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUTESTSVALGRIND_CFLAGS) \ - -Wall -Werror + $(DBUSMENU_GLIB_TEST_CFLAGS) \ + -I$(srcdir) \ + $(DBUSMENUTESTSVALGRIND_CFLAGS) test_json_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ libdbusmenu-jsonloader.la \ - $(DBUSMENUTESTS_LIBS) \ - $(DBUSMENUGLIB_LIBS) - -test_json_client_SOURCES = \ - test-json-client.c + $(DBUSMENU_GLIB_TEST_LDADD) -test_json_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_json_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUTESTS_LIBS) \ - $(DBUSMENUGLIB_LIBS) +test_json_client_SOURCES = test-json-client.c +test_json_client_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_json_client_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ######################### # Test JSON Instructions @@ -310,29 +261,13 @@ test-glib-submenu: test-glib-submenu-client test-glib-submenu-server Makefile.am @echo $(DBUS_RUNNER) --task ./test-glib-submenu-client --task-name Client --task ./test-glib-submenu-server --task-name Server --ignore-return >> $@ @chmod +x $@ -test_glib_submenu_server_SOURCES = \ - test-glib-submenu.h \ - test-glib-submenu-server.c +test_glib_submenu_server_SOURCES = test-glib-submenu.h test-glib-submenu-server.c +test_glib_submenu_server_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_submenu_server_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) -test_glib_submenu_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_submenu_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) - -test_glib_submenu_client_SOURCES = \ - test-glib-submenu.h \ - test-glib-submenu-client.c - -test_glib_submenu_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_submenu_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_submenu_client_SOURCES = test-glib-submenu.h test-glib-submenu-client.c +test_glib_submenu_client_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_submenu_client_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ###################### # Test Glib Object @@ -347,16 +282,9 @@ test-glib-objects-test: test-glib-objects Makefile.am @echo $(DBUS_RUNNER) --task gtester --task-name test --parameter --verbose --parameter -k --parameter -o --parameter $(OBJECT_XML_REPORT) --parameter ./test-glib-objects >> $@ @chmod +x $@ -test_glib_objects_SOURCES = \ - test-glib-objects.c - -test_glib_objects_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_objects_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_objects_SOURCES = test-glib-objects.c +test_glib_objects_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_objects_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) DISTCLEANFILES += $(OBJECT_XML_REPORT) @@ -371,29 +299,13 @@ test-glib-properties: test-glib-properties-client test-glib-properties-server Ma @echo $(DBUS_RUNNER) --task ./test-glib-properties-client --task-name Client --task ./test-glib-properties-server --task-name Server --ignore-return >> $@ @chmod +x $@ -test_glib_properties_server_SOURCES = \ - test-glib-properties.h \ - test-glib-properties-server.c +test_glib_properties_server_SOURCES = test-glib-properties.h test-glib-properties-server.c +test_glib_properties_server_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_properties_server_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) -test_glib_properties_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_properties_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) - -test_glib_properties_client_SOURCES = \ - test-glib-properties.h \ - test-glib-properties-client.c - -test_glib_properties_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_properties_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_properties_client_SOURCES = test-glib-properties.h test-glib-properties-client.c +test_glib_properties_client_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_properties_client_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ###################### # Test Glib Proxy @@ -411,58 +323,40 @@ test-glib-proxy: test-glib-proxy-client test-glib-proxy-server test-glib-proxy-p @echo --task ./test-glib-proxy-proxy --parameter test.proxy.last_proxy --parameter test.proxy.server --task-name Proxy05 --ignore-return >> $@ @chmod +x $@ -test_glib_proxy_server_SOURCES = \ - test-glib-proxy.h \ - test-glib-proxy-server.c - -test_glib_proxy_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_proxy_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) - -test_glib_proxy_client_SOURCES = \ - test-glib-proxy.h \ - test-glib-proxy-client.c - -test_glib_proxy_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror +test_glib_proxy_server_SOURCES = test-glib-proxy.h test-glib-proxy-server.c +test_glib_proxy_server_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_proxy_server_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) -test_glib_proxy_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_proxy_client_SOURCES = test-glib-proxy.h test-glib-proxy-client.c +test_glib_proxy_client_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_proxy_client_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) -test_glib_proxy_proxy_SOURCES = \ - test-glib-proxy.h \ - test-glib-proxy-proxy.c - -test_glib_proxy_proxy_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_glib_proxy_proxy_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +test_glib_proxy_proxy_SOURCES = test-glib-proxy.h test-glib-proxy-proxy.c +test_glib_proxy_proxy_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_proxy_proxy_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) ######################### # Test Glib Simple Items ######################### -test_glib_simple_items_SOURCES = \ - test-glib-simple-items.c +test_glib_simple_items_SOURCES = test-glib-simple-items.c +test_glib_simple_items_CFLAGS = $(DBUSMENU_GLIB_TEST_CFLAGS) +test_glib_simple_items_LDADD = $(DBUSMENU_GLIB_TEST_LDADD) -test_glib_simple_items_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror +EXTRA_DIST += test-glib-simple-items.py -test_glib_simple_items_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(DBUSMENUGLIB_LIBS) +############################################ +# Shared vars for the dbusmenu-gtk tests +############################################ -EXTRA_DIST += test-glib-simple-items.py +DBUSMENU_GTK_TEST_CFLAGS = \ + $(DBUSMENUGTK_CFLAGS) \ + $(DBUSMENU_GLIB_TEST_CFLAGS) + +DBUSMENU_GTK_TEST_LDADD = \ + $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ + $(DBUSMENUGTK_LIBS) \ + $(DBUSMENU_GLIB_TEST_LDADD) ###################### # Test GTK Object @@ -478,21 +372,9 @@ test-gtk-objects-test: test-gtk-objects Makefile.am @echo $(DBUS_RUNNER) --task gtester --task-name test --parameter --verbose --parameter -k --parameter -o --parameter $(GTK_OBJECT_XML_REPORT) --parameter ./test-gtk-objects >> $@ @chmod +x $@ -test_gtk_objects_SOURCES = \ - test-gtk-objects.c - -test_gtk_objects_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) \ - $(DBUSMENUGTK_CFLAGS) \ - -DSRCDIR="\"$(srcdir)\"" \ - -Wall -Werror - -test_gtk_objects_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGLIB_LIBS) \ - $(DBUSMENUGTK_LIBS) +test_gtk_objects_SOURCES = test-gtk-objects.c +test_gtk_objects_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) -DSRCDIR="\"$(srcdir)\"" +test_gtk_objects_LDADD = $(DBUSMENU_GTK_TEST_LDADD) DISTCLEANFILES += $(GTK_OBJECT_XML_REPORT) @@ -510,21 +392,9 @@ test-gtk-parser-test: test-gtk-parser Makefile.am @echo gtester --verbose -k -o $(GTK_PARSER_XML_REPORT) ./test-gtk-parser >> $@ @chmod +x $@ -test_gtk_parser_SOURCES = \ - test-gtk-parser.c - -test_gtk_parser_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGLIB_CFLAGS) \ - $(DBUSMENUGTK_CFLAGS) \ - -DSRCDIR="\"$(srcdir)\"" \ - -Wall -Werror - -test_gtk_parser_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGLIB_LIBS) \ - $(DBUSMENUGTK_LIBS) +test_gtk_parser_SOURCES = test-gtk-parser.c +test_gtk_parser_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) -DSRCDIR="\"$(srcdir)\"" +test_gtk_parser_LDADD = $(DBUSMENU_GTK_TEST_LDADD) DISTCLEANFILES += $(GTK_PARSER_XML_REPORT) @@ -540,36 +410,13 @@ test-gtk-label: test-gtk-label-client test-gtk-label-server test-gtk-label.json @echo $(DBUS_RUNNER) --task ./test-gtk-label-client --task-name Client --task ./test-gtk-label-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> $@ @chmod +x $@ -test_gtk_label_server_SOURCES = \ - test-gtk-label-server.c - -test_gtk_label_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror +test_gtk_label_server_SOURCES = test-gtk-label-server.c +test_gtk_label_server_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_label_server_LDADD = libdbusmenu-jsonloader.la $(DBUSMENU_GTK_TEST_LDADD) -test_gtk_label_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - libdbusmenu-jsonloader.la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) - -test_gtk_label_client_SOURCES = \ - test-gtk-label-client.c - -test_gtk_label_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_gtk_label_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) +test_gtk_label_client_SOURCES = test-gtk-label-client.c +test_gtk_label_client_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_label_client_LDADD = $(DBUSMENU_GTK_TEST_LDADD) ######################### # Test GTK Shortcut @@ -583,35 +430,13 @@ test-gtk-shortcut: test-gtk-shortcut-client test-gtk-shortcut-server Makefile.am @echo $(DBUS_RUNNER) --task ./test-gtk-shortcut-client --task-name Client --task ./test-gtk-shortcut-server --task-name Server --ignore-return >> $@ @chmod +x $@ -test_gtk_shortcut_server_SOURCES = \ - test-gtk-shortcut-server.c - -test_gtk_shortcut_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_gtk_shortcut_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) +test_gtk_shortcut_server_SOURCES = test-gtk-shortcut-server.c +test_gtk_shortcut_server_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_shortcut_server_LDADD = $(DBUSMENU_GTK_TEST_LDADD) -test_gtk_shortcut_client_SOURCES = \ - test-gtk-shortcut-client.c - -test_gtk_shortcut_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_gtk_shortcut_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) +test_gtk_shortcut_client_SOURCES = test-gtk-shortcut-client.c +test_gtk_shortcut_client_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_shortcut_client_LDADD = $(DBUSMENU_GTK_TEST_LDADD) ######################### # Test GTK Shortcut Python @@ -640,21 +465,9 @@ test-gtk-remove: test-gtk-remove-server Makefile.am @echo $(DBUS_RUNNER) --task ./test-gtk-remove-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> $@ @chmod +x $@ -test_gtk_remove_server_SOURCES = \ - test-gtk-remove-server.c - -test_gtk_remove_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_gtk_remove_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) - +test_gtk_remove_server_SOURCES = test-gtk-remove-server.c +test_gtk_remove_server_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_remove_server_LDADD = $(DBUSMENU_GTK_TEST_LDADD) ######################### # Test GTK Reorder @@ -668,20 +481,9 @@ test-gtk-reorder: test-gtk-label-client test-gtk-reorder-server Makefile.am @echo $(DBUS_RUNNER) --task ./test-gtk-label-client --task-name Client --task ./test-gtk-reorder-server --parameter $(srcdir)/test-gtk-label.json --task-name Server --ignore-return >> $@ @chmod +x $@ -test_gtk_reorder_server_SOURCES = \ - test-gtk-reorder-server.c - -test_gtk_reorder_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_gtk_reorder_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) +test_gtk_reorder_server_SOURCES = test-gtk-reorder-server.c +test_gtk_reorder_server_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_reorder_server_LDADD = $(DBUSMENU_GTK_TEST_LDADD) ######################### # Test GTK Submenu @@ -695,35 +497,13 @@ test-gtk-submenu: test-gtk-submenu-client test-gtk-submenu-server Makefile.am @echo $(DBUS_RUNNER) --task ./test-gtk-submenu-client --task-name Client --task ./test-gtk-submenu-server --task-name Server --ignore-return >> $@ @chmod +x $@ -test_gtk_submenu_server_SOURCES = \ - test-gtk-submenu-server.c - -test_gtk_submenu_server_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror - -test_gtk_submenu_server_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) - -test_gtk_submenu_client_SOURCES = \ - test-gtk-submenu-client.c - -test_gtk_submenu_client_CFLAGS = \ - -I $(top_srcdir) \ - $(DBUSMENUGTK_CFLAGS) \ - $(DBUSMENUTESTS_CFLAGS) \ - $(DBUSMENUGLIB_CFLAGS) -Wall -Werror +test_gtk_submenu_server_SOURCES = test-gtk-submenu-server.c +test_gtk_submenu_server_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_submenu_server_LDADD = $(DBUSMENU_GTK_TEST_LDADD) -test_gtk_submenu_client_LDADD = \ - $(top_builddir)/libdbusmenu-glib/libdbusmenu-glib.la \ - $(top_builddir)/libdbusmenu-gtk/libdbusmenu-gtk$(VER).la \ - $(DBUSMENUGTK_LIBS) \ - $(DBUSMENUTESTS_LIBS) +test_gtk_submenu_client_SOURCES = test-gtk-submenu-client.c +test_gtk_submenu_client_CFLAGS = $(DBUSMENU_GTK_TEST_CFLAGS) +test_gtk_submenu_client_LDADD = $(DBUSMENU_GTK_TEST_LDADD) ######################### # Test Mago -- cgit v1.2.3