diff options
author | Christophe Fergeau <cfergeau@redhat.com> | 2018-03-01 17:42:58 +0100 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2018-03-06 14:41:31 +0100 |
commit | 3fea0154824a65ef07bb9b3668a32fafae21a810 (patch) | |
tree | e87835c2fca5d236bb031717e57798ffd9303edf | |
parent | 1e48d8b86a27912d844ceaa4daf091e973a9d9a3 (diff) |
test-listen: Add ipv4/ipv6-only testslisten
-rw-r--r-- | server/tests/test-listen.c | 64 |
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); |