From a73a79a155e97a3bd0d3ce5001ca6b9db803eeeb Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 30 May 2008 16:53:35 -0400 Subject: Add noinst convenience test library, add a test-shutdown * test/Makefile.am: New convenience library libdbus_testutils_la. Reorder build so that test/ gets built before test/name-test so name-test files can depend on it. * test/name-test/test-shutdown.c: New file, exercises dbus_shutdown () a bit. * test/name-test/run-test.sh Run test-shutdown. * test/test-utils.h: In some cases we already have DBUS_COMPILATION defined, avoid double definition warning. --- test/name-test/Makefile.am | 12 ++++++-- test/name-test/run-test.sh | 3 ++ test/name-test/test-shutdown.c | 67 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 test/name-test/test-shutdown.c (limited to 'test/name-test') diff --git a/test/name-test/Makefile.am b/test/name-test/Makefile.am index fbc80c42..37a56335 100644 --- a/test/name-test/Makefile.am +++ b/test/name-test/Makefile.am @@ -1,4 +1,4 @@ -INCLUDES=-I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) $(DBUS_GLIB_CFLAGS) -DDBUS_COMPILATION +INCLUDES=-I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) $(DBUS_GLIB_CFLAGS) $(DBUS_TEST_CFLAGS) -DDBUS_COMPILATION ## note that TESTS has special meaning (stuff to use in make check) ## so if adding tests not to be run in make check, don't add them to @@ -16,7 +16,7 @@ if DBUS_BUILD_TESTS ## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we ## build even when not doing "make check" -noinst_PROGRAMS=test-names test-pending-call-dispatch test-threads-init test-ids +noinst_PROGRAMS=test-names test-pending-call-dispatch test-threads-init test-ids test-shutdown test_names_SOURCES= \ test-names.c @@ -42,5 +42,11 @@ test_ids_SOURCES = \ test_ids_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_TEST_LIBS) test_ids_LDFLAGS=@R_DYNAMIC_LDFLAG@ -endif +test_shutdown_SOURCES = \ + test-shutdown.c + +test_shutdown_CFLAGS= +test_shutdown_LDADD=$(top_builddir)/dbus/libdbus-convenience.la ../libdbus-testutils.la $(DBUS_TEST_LIBS) +test_shutdown_LDFLAGS=@R_DYNAMIC_LDFLAG@ +endif diff --git a/test/name-test/run-test.sh b/test/name-test/run-test.sh index 5d9c584a..d466b815 100755 --- a/test/name-test/run-test.sh +++ b/test/name-test/run-test.sh @@ -36,3 +36,6 @@ ${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name- echo "running test-threads-init" ${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-threads-init || die "test-threads-init failed" + +echo "running test-shutdown" +${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-shutdown || die "test-shutdown failed" diff --git a/test/name-test/test-shutdown.c b/test/name-test/test-shutdown.c new file mode 100644 index 00000000..c50ef4b6 --- /dev/null +++ b/test/name-test/test-shutdown.c @@ -0,0 +1,67 @@ + +#include "../test-utils.h" + +static DBusLoop *loop; + +static void +die (const char *message) +{ + fprintf (stderr, "*** test-shutdown: %s", message); + exit (1); +} + +static void +open_destroy_shared_session_bus_connection () +{ + DBusError error; + DBusConnection *connection; + char *session_addr_no_guid; + char *comma; + + dbus_error_init (&error); + + session_addr_no_guid = strdup (getenv ("DBUS_SESSION_BUS_ADDRESS")); + comma = strchr (session_addr_no_guid, ','); + if (comma == NULL) + die ("Couldn't find GUID in session bus address"); + *comma = '\0'; + + connection = dbus_connection_open (session_addr_no_guid, &error); + free (session_addr_no_guid); + if (connection == NULL) + die ("Failed to open connection to temp session bus\n"); + + loop = _dbus_loop_new (); + if (loop == NULL) + die ("No memory\n"); + + if (!test_connection_setup (loop, connection)) + die ("No memory\n"); + + test_connection_shutdown (loop, connection); + + _dbus_loop_unref (loop); + + dbus_connection_unref (connection); +} + +int +main (int argc, + char **argv) +{ + open_destroy_shared_session_bus_connection (); + + dbus_shutdown (); + + open_destroy_shared_session_bus_connection (); + + dbus_shutdown (); + + open_destroy_shared_session_bus_connection (); + + dbus_shutdown (); + + _dbus_verbose ("*** Test shutdown exiting\n"); + + return 0; +} -- cgit