summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-server.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2004-04-21 22:13:07 +0000
committerKristian Høgsberg <krh@redhat.com>2004-04-21 22:13:07 +0000
commit6971a06b04b3fdd48b61202b2276e8140f4b7be0 (patch)
treeafff44ba475c63c2c3c03c53d4be9886d94dbea9 /dbus/dbus-server.c
parentdd8b1b1d654c983ccc040b59143a11f239de0726 (diff)
2004-04-21 Kristian Høgsberg <krh@redhat.com>
* dbus/dbus-server-unix.c (unix_finalize): Don't unref unix_server->watch here, it is unreffed in disconnect. (_dbus_server_new_for_tcp_socket): convert NULL host to "localhost" here so we don't append NULL to address. * dbus/dbus-server.c (_dbus_server_test): Add test case for various addresses, including tcp with no explicit host.
Diffstat (limited to 'dbus/dbus-server.c')
-rw-r--r--dbus/dbus-server.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/dbus/dbus-server.c b/dbus/dbus-server.c
index 339f8360..2fa52ebe 100644
--- a/dbus/dbus-server.c
+++ b/dbus/dbus-server.c
@@ -788,3 +788,42 @@ dbus_server_get_data (DBusServer *server,
/** @} */
+#ifdef DBUS_BUILD_TESTS
+#include "dbus-test.h"
+
+dbus_bool_t
+_dbus_server_test (void)
+{
+ const char *valid_addresses[] = {
+ "tcp:port=1234",
+ "unix:path=./boogie",
+ "tcp:host=localhost,port=1234",
+ "tcp:host=localhost,port=1234;tcp:port=5678",
+ "tcp:port=1234;unix:path=./boogie",
+ };
+
+ DBusServer *server;
+ int i;
+
+ for (i = 0; i < _DBUS_N_ELEMENTS (valid_addresses); i++)
+ {
+ server = dbus_server_listen (valid_addresses[i], NULL);
+ if (server == NULL)
+ _dbus_assert_not_reached ("Failed to listen for valid address.");
+
+ dbus_server_unref (server);
+
+ /* Try disconnecting before unreffing */
+ server = dbus_server_listen (valid_addresses[i], NULL);
+ if (server == NULL)
+ _dbus_assert_not_reached ("Failed to listen for valid address.");
+
+ dbus_server_disconnect (server);
+
+ dbus_server_unref (server);
+ }
+
+ return TRUE;
+}
+
+#endif /* DBUS_BUILD_TESTS */