diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2013-01-30 11:06:26 +0000 |
---|---|---|
committer | Tarmac <Unknown> | 2013-01-30 11:06:26 +0000 |
commit | bd333ad26f451f27f0d412f8a42f42459377bd7c (patch) | |
tree | 88817c7c7f21fc3c63395767e9c42acd588eefef /tests | |
parent | ee33a9adfc9c657c3be11a8bcaf25e687fdde026 (diff) | |
parent | 3e9b3f1cd28e9c9e1263796297f5d648a163be9e (diff) | |
download | libayatana-appindicator-bd333ad26f451f27f0d412f8a42f42459377bd7c.tar.gz libayatana-appindicator-bd333ad26f451f27f0d412f8a42f42459377bd7c.tar.bz2 libayatana-appindicator-bd333ad26f451f27f0d412f8a42f42459377bd7c.zip |
This is a continuation of ~mathieu-tl/libappindicator/fix-test-merge/ which adds fixes for bug #1102589, bug #1102595, bug #1109128, and bug #1103087, which should get it finally passing CI. Fixes: https://bugs.launchpad.net/bugs/1102589, https://bugs.launchpad.net/bugs/1102595, https://bugs.launchpad.net/bugs/1103087, https://bugs.launchpad.net/bugs/1109128.
Approved by Ted Gould, PS Jenkins bot.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 10 | ||||
-rw-r--r-- | tests/test-libappindicator-dbus-client.c | 2 | ||||
-rw-r--r-- | tests/test-libappindicator-fallback-item.c | 2 | ||||
-rw-r--r-- | tests/test-libappindicator-fallback-watcher.c | 5 | ||||
-rw-r--r-- | tests/test-libappindicator-status-client.c | 6 | ||||
-rw-r--r-- | tests/test-libappindicator-status-server.c | 37 | ||||
-rw-r--r-- | tests/test-libappindicator.c | 28 | ||||
-rw-r--r-- | tests/test-simple-app.c | 2 |
8 files changed, 64 insertions, 28 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index a65f320..3a1ecaf 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -137,6 +137,8 @@ test_libappindicator_fallback_item_LDADD = \ test-libappindicator-fallback: test-libappindicator-fallback-watcher test-libappindicator-fallback-item Makefile.am @echo "#!/bin/bash" > $@ + @echo export DISPLAY= >> $@ + @echo killall at-spi2-registryd >> $@ @echo . $(srcdir)/run-xvfb.sh >> $@ @echo $(DBUS_RUNNER) --task ./test-libappindicator-fallback-watcher --task-name Watcher --ignore-return --task ./test-libappindicator-fallback-item --task-name Item >> $@ @chmod +x $@ @@ -152,6 +154,8 @@ HTML_REPORT = libappindicator-check-results.html libappindicator-tests: libappindicator-tests-gtester Makefile.am @echo "#!/bin/bash" > $@ + @echo export DISPLAY= >> $@ + @echo killall at-spi2-registryd >> $@ @echo . $(srcdir)/run-xvfb.sh >> $@ @echo export UBUNTU_MENUPROXY= >> $@ @echo $(DBUS_RUNNER) --task ./libappindicator-tests-gtester >> $@ @@ -166,10 +170,12 @@ TESTS += libappindicator-tests DISTCLEANFILES += $(XML_REPORT) $(HTML_REPORT) libappindicator-tests-gtester -DBUS_RUNNER=dbus-test-runner --dbus-config /usr/share/dbus-test-runner/session.conf +DBUS_RUNNER=dbus-test-runner -m 300 --dbus-config /usr/share/dbus-test-runner/session.conf test-libappindicator-dbus: test-libappindicator-dbus-client test-libappindicator-dbus-server Makefile.am @echo "#!/bin/bash" > test-libappindicator-dbus + @echo export DISPLAY= >> $@ + @echo killall at-spi2-registryd >> $@ @echo . $(srcdir)/run-xvfb.sh >> $@ @echo $(DBUS_RUNNER) --task ./test-libappindicator-dbus-client --task-name Client --task ./test-libappindicator-dbus-server --task-name Server --ignore-return >> test-libappindicator-dbus @chmod +x test-libappindicator-dbus @@ -179,6 +185,8 @@ XFAIL_TESTS = test-libappindicator-dbus test-libappindicator-status: test-libappindicator-status-client test-libappindicator-status-server Makefile.am @echo "#!/bin/bash" > test-libappindicator-status + @echo export DISPLAY= >> $@ + @echo killall at-spi2-registryd >> $@ @echo . $(srcdir)/run-xvfb.sh >> $@ @echo $(DBUS_RUNNER) --task ./test-libappindicator-status-client --task-name Client --task ./test-libappindicator-status-server --task-name Server --ignore-return >> test-libappindicator-status @chmod +x test-libappindicator-status diff --git a/tests/test-libappindicator-dbus-client.c b/tests/test-libappindicator-dbus-client.c index 9a51792..18c6946 100644 --- a/tests/test-libappindicator-dbus-client.c +++ b/tests/test-libappindicator-dbus-client.c @@ -204,8 +204,6 @@ dbus_filter (DBusConnection * connection, DBusMessage * message, void * user_dat gint main (gint argc, gchar * argv[]) { - g_type_init(); - GError * error = NULL; DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if (error != NULL) { diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index 418b779..c87ef8c 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -138,7 +138,7 @@ main (int argc, char ** argv) GtkWidget * menu = gtk_menu_new(); app_indicator_set_menu(APP_INDICATOR(item), GTK_MENU(menu)); - g_timeout_add_seconds(2, kill_func, NULL); + g_timeout_add_seconds(20, kill_func, NULL); mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); diff --git a/tests/test-libappindicator-fallback-watcher.c b/tests/test-libappindicator-fallback-watcher.c index 5494082..2648902 100644 --- a/tests/test-libappindicator-fallback-watcher.c +++ b/tests/test-libappindicator-fallback-watcher.c @@ -58,8 +58,6 @@ kill_func (gpointer userdata) int main (int argv, char ** argc) { - g_type_init(); - g_debug("Waiting to init."); @@ -77,6 +75,7 @@ main (int argv, char ** argc) while (!has_owner && owner_count < 10000) { org_freedesktop_DBus_name_has_owner(bus_proxy, "org.test", &has_owner, NULL); owner_count++; + g_usleep(500000); } if (owner_count == 10000) { @@ -104,7 +103,7 @@ main (int argv, char ** argc) /* This is the final kill function. It really shouldn't happen unless we get an error. */ - g_timeout_add(2000, kill_func, NULL); + g_timeout_add_seconds(20, kill_func, NULL); g_debug("Entering Mainloop"); diff --git a/tests/test-libappindicator-status-client.c b/tests/test-libappindicator-status-client.c index 9e39ed8..cd60e6c 100644 --- a/tests/test-libappindicator-status-client.c +++ b/tests/test-libappindicator-status-client.c @@ -109,8 +109,6 @@ kill_func (gpointer userdata) gint main (gint argc, gchar * argv[]) { - g_type_init(); - GError * error = NULL; DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if (error != NULL) { @@ -118,7 +116,7 @@ main (gint argc, gchar * argv[]) return 1; } - DBusGProxy * bus_proxy = dbus_g_proxy_new_for_name(session_bus, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); + DBusGProxy * bus_proxy = dbus_g_proxy_new_for_name(session_bus, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); guint nameret = 0; if (!org_freedesktop_DBus_request_name(bus_proxy, NOTIFICATION_WATCHER_DBUS_ADDR, 0, &nameret, &error)) { @@ -137,7 +135,7 @@ main (gint argc, gchar * argv[]) dbus_bus_add_match(dbus_g_connection_get_connection(session_bus), "type='signal',interface='" NOTIFICATION_ITEM_DBUS_IFACE "',member='NewStatus'", NULL); watchdog_hit = TRUE; - g_timeout_add(1000, kill_func, NULL); + g_timeout_add_seconds(20, kill_func, NULL); mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); diff --git a/tests/test-libappindicator-status-server.c b/tests/test-libappindicator-status-server.c index 8cd5571..9674f61 100644 --- a/tests/test-libappindicator-status-server.c +++ b/tests/test-libappindicator-status-server.c @@ -22,34 +22,39 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <stdlib.h> -#include <dbus/dbus-glib.h> -#include <dbus/dbus-glib-lowlevel.h> #include <glib.h> #include <app-indicator.h> static GMainLoop * mainloop = NULL; static gboolean active = FALSE; static guint toggle_count = 0; +static GDBusConnection * connection = NULL; + +static gboolean +times_up (gpointer unused G_GNUC_UNUSED) +{ + g_dbus_connection_flush_sync (connection, NULL, NULL); + g_clear_object (&connection); + + g_main_loop_quit (mainloop); + return G_SOURCE_REMOVE; +} gboolean toggle (gpointer userdata) { - if (active) { - app_indicator_set_status (APP_INDICATOR(userdata), APP_INDICATOR_STATUS_ATTENTION); - active = FALSE; - } else { - app_indicator_set_status (APP_INDICATOR(userdata), APP_INDICATOR_STATUS_ACTIVE); - active = TRUE; - } - - toggle_count++; + const AppIndicatorStatus new_status = active ? APP_INDICATOR_STATUS_ATTENTION + : APP_INDICATOR_STATUS_ACTIVE; + app_indicator_set_status (APP_INDICATOR(userdata), new_status); + ++toggle_count; + active = !active; if (toggle_count == 100) { - g_main_loop_quit(mainloop); - return FALSE; + g_timeout_add (100, times_up, NULL); + return G_SOURCE_REMOVE; } - return TRUE; + return G_SOURCE_CONTINUE; } gint @@ -59,7 +64,8 @@ main (gint argc, gchar * argv[]) g_usleep(100000); - g_debug("DBus ID: %s", dbus_connection_get_server_id(dbus_g_connection_get_connection(dbus_g_bus_get(DBUS_BUS_SESSION, NULL)))); + connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL); + g_debug("DBus Name: %s", g_dbus_connection_get_unique_name (connection)); AppIndicator * ci = app_indicator_new ("my-id", "my-icon-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); app_indicator_set_attention_icon (ci, "my-attention-icon"); @@ -76,6 +82,7 @@ main (gint argc, gchar * argv[]) g_main_loop_run(mainloop); g_object_unref(G_OBJECT(ci)); + g_debug("Quiting"); return 0; diff --git a/tests/test-libappindicator.c b/tests/test-libappindicator.c index 7afd3ba..0c69fde 100644 --- a/tests/test-libappindicator.c +++ b/tests/test-libappindicator.c @@ -28,6 +28,16 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <libdbusmenu-glib/menuitem.h> #include <libdbusmenu-glib/server.h> +static gboolean +allow_warnings (const gchar *log_domain, GLogLevelFlags log_level, + const gchar *message, gpointer user_data) +{ + // By default, gtest will fail a test on even a warning message. + // But since some of our sub-libraries are noisy (especially at-spi2), + // only fail on critical or worse. + return ((log_level & G_LOG_LEVEL_MASK) <= G_LOG_LEVEL_CRITICAL); +} + void test_libappindicator_prop_signals_status_helper (AppIndicator * ci, gchar * status, gboolean * signalactivated) { @@ -45,6 +55,8 @@ test_libappindicator_prop_signals_helper (AppIndicator * ci, gboolean * signalac void test_libappindicator_prop_signals (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("test-app-indicator", "indicator-messages", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); @@ -115,6 +127,8 @@ test_libappindicator_prop_signals (void) void test_libappindicator_init_set_props (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("my-id", "my-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); @@ -139,6 +153,8 @@ test_libappindicator_init_set_props (void) void test_libappindicator_init_with_props (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("my-id", "my-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); @@ -161,6 +177,8 @@ test_libappindicator_init_with_props (void) void test_libappindicator_init (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("my-id", "my-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); g_assert(ci != NULL); g_object_unref(G_OBJECT(ci)); @@ -170,6 +188,8 @@ test_libappindicator_init (void) void test_libappindicator_set_label (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("my-id", "my-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); @@ -232,6 +252,8 @@ test_libappindicator_set_label (void) void test_libappindicator_set_menu (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("my-id", "my-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); @@ -301,6 +323,8 @@ label_signals_check (void) void test_libappindicator_label_signals (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + gint label_signals_count = 0; AppIndicator * ci = app_indicator_new ("my-id", "my-name", @@ -352,6 +376,8 @@ test_libappindicator_label_signals (void) void test_libappindicator_desktop_menu (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("my-id-desktop-menu", "my-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); @@ -388,6 +414,8 @@ test_libappindicator_desktop_menu (void) void test_libappindicator_desktop_menu_bad (void) { + g_test_log_set_fatal_handler (allow_warnings, NULL); + AppIndicator * ci = app_indicator_new ("my-id-desktop-menu-bad", "my-name", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); diff --git a/tests/test-simple-app.c b/tests/test-simple-app.c index d60d9b9..843466d 100644 --- a/tests/test-simple-app.c +++ b/tests/test-simple-app.c @@ -31,8 +31,6 @@ static GMainLoop * mainloop = NULL; int main (int argc, char ** argv) { - g_type_init(); - DbusmenuServer * dms = dbusmenu_server_new("/menu"); DbusmenuMenuitem * dmi = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set(dmi, "label", "Bob"); |