summaryrefslogtreecommitdiffstats
path: root/test/name-test/test-shutdown.c
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2008-05-30 16:53:35 -0400
committerColin Walters <walters@verbum.org>2008-05-30 16:53:35 -0400
commita73a79a155e97a3bd0d3ce5001ca6b9db803eeeb (patch)
treef1c3baeb481bcc0f485a7f9371f1fdc43f0efe08 /test/name-test/test-shutdown.c
parent9d8989cfec02e6ca41f8ffa0ccda16c93ddcb23c (diff)
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.
Diffstat (limited to 'test/name-test/test-shutdown.c')
-rw-r--r--test/name-test/test-shutdown.c67
1 files changed, 67 insertions, 0 deletions
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;
+}