summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2015-01-28 22:44:16 +0100
committerRalf Habacker <ralf.habacker@freenet.de>2015-01-30 09:33:40 +0100
commitfa1ada44eabd62b46b89c7be22bfce6d595d8dac (patch)
tree590b2ac1b38e93947702145157c9f225078902f9
parentb5bf338953f3427621ac238293cdcd2914dfc505 (diff)
downloaddbus-fa1ada44eabd62b46b89c7be22bfce6d595d8dac.tar.gz
Add manual tcp test case.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=87999 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
-rw-r--r--cmake/test/CMakeLists.txt5
-rw-r--r--test/Makefile.am7
-rw-r--r--test/manual-tcp.c46
3 files changed, 57 insertions, 1 deletions
diff --git a/cmake/test/CMakeLists.txt b/cmake/test/CMakeLists.txt
index 54a920f8..7676586e 100644
--- a/cmake/test/CMakeLists.txt
+++ b/cmake/test/CMakeLists.txt
@@ -54,6 +54,10 @@ set (test-sleep-forever_SOURCES
${CMAKE_SOURCE_DIR}/../test/test-sleep-forever.c
)
+set (manual-tcp_SOURCES
+ ${CMAKE_SOURCE_DIR}/../test/manual-tcp.c
+)
+
add_helper_executable(manual-dir-iter ${manual-dir-iter_SOURCES} ${DBUS_INTERNAL_LIBRARIES})
add_helper_executable(test-service ${test-service_SOURCES} dbus-testutils)
add_helper_executable(test-names ${test-names_SOURCES} dbus-testutils)
@@ -64,6 +68,7 @@ add_helper_executable(test-spawn ${test-spawn_SOURCES} ${DBUS_INTERNAL_LIBRARIES
add_helper_executable(test-exit ${test-exit_SOURCES} ${DBUS_INTERNAL_LIBRARIES})
add_helper_executable(test-segfault ${test-segfault_SOURCES} ${DBUS_INTERNAL_LIBRARIES})
add_helper_executable(test-sleep-forever ${test-sleep-forever_SOURCES} ${DBUS_INTERNAL_LIBRARIES})
+add_test_executable(manual-tcp ${manual-tcp_SOURCES} ${DBUS_INTERNAL_LIBRARIES})
if(DBUS_WITH_GLIB)
message(STATUS "with glib test apps")
diff --git a/test/Makefile.am b/test/Makefile.am
index 173df74b..c0c7a69f 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -123,6 +123,10 @@ manual_dir_iter_SOURCES = manual-dir-iter.c
manual_dir_iter_CPPFLAGS = $(static_cppflags)
manual_dir_iter_LDADD = $(top_builddir)/dbus/libdbus-internal.la
+manual_tcp_SOURCES = manual-tcp.c
+manual_tcp_CPPFLAGS = $(static_cppflags)
+manual_tcp_LDADD = $(top_builddir)/dbus/libdbus-internal.la
+
EXTRA_DIST = dbus-test-runner
testexecdir = $(libdir)/dbus-1.0/test
@@ -135,7 +139,8 @@ installable_tests = \
$(NULL)
installable_manual_tests = \
manual-dir-iter \
- $(NULL)
+ manual-tcp \
+ $(NULL)
if DBUS_WITH_GLIB
installable_tests += \
diff --git a/test/manual-tcp.c b/test/manual-tcp.c
new file mode 100644
index 00000000..64691c9d
--- /dev/null
+++ b/test/manual-tcp.c
@@ -0,0 +1,46 @@
+/*
+ * Simple manual tcp check
+ *
+ * supports:
+ * - server listening check
+ *
+ * syntax: manual-tcp [<ipv4>|<ipv6>]
+ *
+*/
+
+#include "config.h"
+#include "dbus/dbus-server-socket.h"
+
+#include <stdio.h>
+
+int
+main (int argc, char **argv)
+{
+ DBusServer *server;
+ DBusError error;
+ int result = 0;
+ int i;
+
+ char *family = NULL;
+
+ if (argc == 2)
+ family = argv[1];
+
+ for (i = 0; i < 1000; i++)
+ {
+ dbus_error_init (&error);
+ server = _dbus_server_new_for_tcp_socket ("localhost", "localhost", "0", family, &error, FALSE);
+ if (server == NULL)
+ {
+ printf("%d: %s %s\n",i, error.name, error.message);
+ dbus_error_free(&error);
+ result = -1;
+ }
+ else {
+ printf("%d: %s \n",i, dbus_server_get_address(server));
+ dbus_server_disconnect(server);
+ dbus_server_unref(server);
+ }
+ }
+ return result;
+}