diff options
-rw-r--r-- | .bzrignore | 2 | ||||
-rw-r--r-- | tests/Makefile.am | 27 | ||||
-rw-r--r-- | tests/test-thousand-indicators-client.c | 34 | ||||
-rw-r--r-- | tests/test-thousand-indicators-server.c | 43 | ||||
-rwxr-xr-x | tests/test_thousand_indicators | 5 |
5 files changed, 110 insertions, 1 deletions
@@ -76,3 +76,5 @@ test-interests-server2 test-interests-server3 test-interests-server4 test-interests-server5 +test-thousand-indicators-server +test-thousand-indicators-client diff --git a/tests/Makefile.am b/tests/Makefile.am index 6117bee..7d72047 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -2,7 +2,8 @@ TESTS = \ test_simple \ test_interests \ - test_interests_multi + test_interests_multi \ + test_thousand_indicators libexec_PROGRAMS = \ test-interests-client \ @@ -12,6 +13,8 @@ libexec_PROGRAMS = \ test-interests-server3 \ test-interests-server4 \ test-interests-server5 \ + test-thousand-indicators-client \ + test-thousand-indicators-server test-simple-client \ test-simple-server @@ -114,3 +117,25 @@ test_interests_server5_LDADD = \ ../libindicate/libindicate.la \ $(LIBINDICATE_LIBS) +test_thousand_indicators: test-thousand-indicators-client test-thousand-indicators-server + +test_thousand_indicators_client_SOURCES = \ + test-thousand-indicators-client.c + +test_thousand_indicators_client_CFLAGS = \ + $(LIBINDICATE_CFLAGS) -I$(srcdir)/.. + +test_thousand_indicators_client_LDADD = \ + ../libindicate/libindicate.la \ + $(LIBINDICATE_LIBS) + +test_thousand_indicators_server_SOURCES = \ + test-thousand-indicators-server.c + +test_thousand_indicators_server_CFLAGS = \ + $(LIBINDICATE_CFLAGS) -I$(srcdir)/.. + +test_thousand_indicators_server_LDADD = \ + ../libindicate/libindicate.la \ + $(LIBINDICATE_LIBS) + diff --git a/tests/test-thousand-indicators-client.c b/tests/test-thousand-indicators-client.c new file mode 100644 index 0000000..0ac7305 --- /dev/null +++ b/tests/test-thousand-indicators-client.c @@ -0,0 +1,34 @@ + +#include <glib.h> +#include "libindicate/indicator.h" + +static gboolean passed = TRUE; +static GMainLoop * mainloop = NULL; + +static gboolean +done_timeout_cb (gpointer data) +{ + g_debug("All done."); + g_main_loop_quit(mainloop); + return FALSE; +} + +int +main (int argc, char * argv) +{ + g_type_init(); + + int i; + for (i = 0; i < 1000; i++) { + /* Memory leak :) */ + IndicateIndicator * indicator = indicate_indicator_new(); + indicate_indicator_show(indicator); + } + + g_timeout_add_seconds(2, done_timeout_cb, NULL); + + mainloop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(mainloop); + + return !passed; +} diff --git a/tests/test-thousand-indicators-server.c b/tests/test-thousand-indicators-server.c new file mode 100644 index 0000000..285e56b --- /dev/null +++ b/tests/test-thousand-indicators-server.c @@ -0,0 +1,43 @@ + +#include <glib.h> +#include "libindicate/listener.h" + +static gboolean passed = TRUE; +static GMainLoop * mainloop = NULL; +static guint indicator_count = 0; + +static void +indicator_added (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gchar * type, gpointer data) +{ + g_debug("Indicator Added: %s %d %s", INDICATE_LISTENER_SERVER_DBUS_NAME(server), INDICATE_LISTENER_INDICATOR_ID(indicator), type); + indicator_count++; + if (indicator_count == 1000) { + g_main_loop_quit(mainloop); + } +} + +static gboolean +failed_cb (gpointer data) +{ + g_debug("Failed to get a server in 5 seconds."); + passed = FALSE; + g_main_loop_quit(mainloop); + return FALSE; +} + +int +main (int argc, char * argv) +{ + g_type_init(); + + IndicateListener * listener = indicate_listener_ref_default(); + + g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_INDICATOR_ADDED, G_CALLBACK(indicator_added), NULL); + + g_timeout_add_seconds(5, failed_cb, NULL); + + mainloop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(mainloop); + + return !passed; +} diff --git a/tests/test_thousand_indicators b/tests/test_thousand_indicators new file mode 100755 index 0000000..4dd7fae --- /dev/null +++ b/tests/test_thousand_indicators @@ -0,0 +1,5 @@ +#!/bin/sh + +DBUS_RUNNER="/home/ted/Development/dbus-play/dbus-test-runner --dbus-config /home/ted/Development/dbus-play/session.conf" + +${DBUS_RUNNER} --task ./test-thousand-indicators-client --task-name Client --task ./test-thousand-indicators-server --task-name Server |