summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2018-03-01 17:42:58 +0100
committerChristophe Fergeau <cfergeau@redhat.com>2018-03-06 14:41:31 +0100
commit3fea0154824a65ef07bb9b3668a32fafae21a810 (patch)
treee87835c2fca5d236bb031717e57798ffd9303edf
parent1e48d8b86a27912d844ceaa4daf091e973a9d9a3 (diff)
test-listen: Add ipv4/ipv6-only testslisten
-rw-r--r--server/tests/test-listen.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/server/tests/test-listen.c b/server/tests/test-listen.c
index a05472e0..53379db7 100644
--- a/server/tests/test-listen.c
+++ b/server/tests/test-listen.c
@@ -341,6 +341,68 @@ static void test_connect_unix(void)
spice_server_destroy(server);
}
+static void test_connect_ipv4(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_port(server, 5701);
+ spice_server_set_addr(server, "localhost", SPICE_ADDR_FLAG_IPV4_ONLY);
+ result = spice_server_init(server, event_loop.core);
+ g_assert_cmpint(result, ==, 0);
+
+ /* fake client */
+ thread = fake_client_new(check_magic_thread, "127.0.0.1", 5701, false, &event_loop);
+ test_event_loop_run(&event_loop);
+ g_assert_null(g_thread_join(thread));
+
+ thread = fake_client_new(check_no_connect_thread, "::1", 5701, 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_ipv6(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_port(server, 5701);
+ spice_server_set_addr(server, "localhost", SPICE_ADDR_FLAG_IPV6_ONLY);
+ result = spice_server_init(server, event_loop.core);
+ g_assert_cmpint(result, ==, 0);
+
+ /* fake client */
+ thread = fake_client_new(check_no_connect_thread, "127.0.0.1", 5701, false, &event_loop);
+ test_event_loop_run(&event_loop);
+ g_assert_null(g_thread_join(thread));
+
+ thread = fake_client_new(check_magic_thread, "::1", 5701, 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_add_listen_plain(void)
{
GThread *thread;
@@ -499,6 +561,8 @@ int main(int argc, char **argv)
g_test_add_func("/server/listen/connect_tls", test_connect_tls);
g_test_add_func("/server/listen/connect_both", test_connect_both);
g_test_add_func("/server/listen/connect_unix", test_connect_unix);
+ g_test_add_func("/server/listen/connect_ipv4", test_connect_ipv4);
+ g_test_add_func("/server/listen/connect_ipv6", test_connect_ipv6);
g_test_add_func("/server/listen/add_listen_plain", test_add_listen_plain);
g_test_add_func("/server/listen/add_listen_tls", test_add_listen_tls);
g_test_add_func("/server/listen/add_listen_multiple", test_add_listen_multiple);