Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> --- configure.ac | 3 +++ server/tests/Makefile.am | 4 +++- server/tests/test-listen.c | 38 +++++++++++++++++++++++++++++++++++--- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index bcd4bb4d5..863834343 100644 --- a/configure.ac +++ b/configure.ac @@ -171,6 +171,9 @@ AS_VAR_APPEND([SPICE_REQUIRES], [" glib-2.0 >= $GLIB2_REQUIRED gio-2.0 >= $GLIB2 PKG_CHECK_MODULES([GOBJECT2], [gobject-2.0 >= $GLIB2_REQUIRED]) AS_VAR_APPEND([SPICE_REQUIRES], [" gobject-2.0 >= $GLIB2_REQUIRED"]) +#used only by tests +PKG_CHECK_MODULES([GIO_UNIX], [gio-unix-2.0 >= $GLIB2_REQUIRED]) + PIXMAN_REQUIRED=0.17.7 PKG_CHECK_MODULES(PIXMAN, pixman-1 >= $PIXMAN_REQUIRED) AC_SUBST(PIXMAN_CFLAGS) diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am index 0aae1fd61..ffeb8fc04 100644 --- a/server/tests/Makefile.am +++ b/server/tests/Makefile.am @@ -16,8 +16,9 @@ AM_CPPFLAGS = \ -I$(top_builddir)/server \ -I$(top_srcdir)/server/tests \ $(COMMON_CFLAGS) \ + $(GIO_UNIX_CFLAGS) \ $(GLIB2_CFLAGS) \ - $(GOBJECT2_CFLAGS) \ + $(GOBJECT2_CFLAGS) \ $(SMARTCARD_CFLAGS) \ $(SPICE_NONPKGCONFIG_CFLAGS) \ $(SPICE_PROTOCOL_CFLAGS) \ @@ -39,6 +40,7 @@ LDADD = \ libtest.a \ $(top_builddir)/spice-common/common/libspice-common.la \ $(top_builddir)/server/libserver.la \ + $(GIO_UNIX_LIBS) \ $(GLIB2_LIBS) \ $(GOBJECT2_LIBS) \ $(SPICE_NONPKGCONFIG_LIBS) \ diff --git a/server/tests/test-listen.c b/server/tests/test-listen.c index 77a185abf..258af8464 100644 --- a/server/tests/test-listen.c +++ b/server/tests/test-listen.c @@ -27,6 +27,7 @@ #include <stdint.h> #include <string.h> #include <gio/gio.h> +#include <gio/gunixsocketaddress.h> /* Arbitrary base port, we want a port which is not in use by the system, and * by another of our tests (in case of parallel runs) @@ -208,9 +209,13 @@ static GThread *fake_client_new(GThreadFunc thread_func, { ThreadData *thread_data = g_new0(ThreadData, 1); - g_assert_cmpuint(port, >, 0); - g_assert_cmpuint(port, <, 65536); - thread_data->connectable = g_network_address_new(hostname, port); + if (port == -1) { + thread_data->connectable = G_SOCKET_CONNECTABLE(g_unix_socket_address_new(hostname)); + } else { + g_assert_cmpuint(port, >, 0); + g_assert_cmpuint(port, <, 65536); + thread_data->connectable = g_network_address_new(hostname, port); + } thread_data->use_tls = use_tls; thread_data->event_loop = event_loop; @@ -311,6 +316,32 @@ static void test_connect_plain_and_tls(void) spice_server_destroy(server); } +static void test_connect_unix(void) +{ + GThread *thread; + int result; + + TestEventLoop event_loop = { 0, }; + + test_event_loop_init(&event_loop); + + /* server */ + SpiceServer *server = spice_server_new(); + spice_server_set_name(server, "SPICE listen test"); + spice_server_set_noauth(server); + spice_server_set_addr(server, "test-listen.unix", SPICE_ADDR_FLAG_UNIX_ONLY); + result = spice_server_init(server, event_loop.core); + g_assert_cmpint(result, ==, 0); + + /* fake client */ + thread = fake_client_new(check_magic_thread, "test-listen.unix", -1, false, &event_loop); + test_event_loop_run(&event_loop); + g_assert_null(g_thread_join(thread)); + + test_event_loop_destroy(&event_loop); + spice_server_destroy(server); +} + static void test_connect_ko(void) { GThread *thread; @@ -333,6 +364,7 @@ int main(int argc, char **argv) g_test_add_func("/server/listen/connect_plain", test_connect_plain); g_test_add_func("/server/listen/connect_tls", test_connect_tls); g_test_add_func("/server/listen/connect_both", test_connect_plain_and_tls); + g_test_add_func("/server/listen/connect_unix", test_connect_unix); g_test_add_func("/server/listen/connect_ko", test_connect_ko); return g_test_run(); -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel