diff options
author | Dan Winship <danw@gnome.org> | 2011-08-19 10:23:12 -0400 |
---|---|---|
committer | Dan Winship <danw@gnome.org> | 2014-10-01 10:03:50 -0400 |
commit | c7867d4ae548d221294898e5cf2ce9bba64948f1 (patch) | |
tree | b4d044b21130ce97519ae69e270900b9685b0543 /gio/tests/socket.c | |
parent | dd7135b2dce38c97eafbedf35c6656ee9aeadadf (diff) | |
download | glib-wip/danw/socket-connected.tar.gz |
Diffstat (limited to 'gio/tests/socket.c')
-rw-r--r-- | gio/tests/socket.c | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/gio/tests/socket.c b/gio/tests/socket.c index cb8b8c846..c4bd1e440 100644 --- a/gio/tests/socket.c +++ b/gio/tests/socket.c @@ -355,9 +355,20 @@ test_ip_async (GSocketFamily family) g_thread_join (data->thread); g_assert_cmpint (data->client_connected_changed, ==, 1); - len = g_socket_receive (client, buf, sizeof (buf), NULL, &error); - g_assert_no_error (error); - g_assert_cmpint (len, ==, 0); + if (family == G_SOCKET_FAMILY_IPV4) + { + len = g_socket_receive_with_blocking (client, buf, sizeof (buf), + TRUE, NULL, &error); + g_assert_no_error (error); + g_assert_cmpint (len, ==, 0); + } + else + { + len = g_socket_send_with_blocking (client, testbuf, strlen (testbuf) + 1, + TRUE, NULL, &error); + g_assert_error (error, G_IO_ERROR, G_IO_ERROR_FAILED); + g_assert_cmpint (len, ==, -1); + } g_assert_cmpint (data->client_connected_changed, ==, 2); g_assert (!g_socket_is_connected (client)); @@ -462,9 +473,24 @@ test_ip_sync (GSocketFamily family) g_thread_join (data->thread); g_assert_cmpint (data->client_connected_changed, ==, 1); - len = g_socket_receive (client, buf, sizeof (buf), NULL, &error); - g_assert_no_error (error); - g_assert_cmpint (len, ==, 0); + if (family == G_SOCKET_FAMILY_IPV4) + { + /* Test that reading on a remote-closed socket gets back + * 0 bytes and emits notify::connected. + */ + len = g_socket_receive (client, buf, sizeof (buf), NULL, &error); + g_assert_no_error (error); + g_assert_cmpint (len, ==, 0); + } + else + { + /* Test that writing to a remote-closed socket gets back + * EPIPE and emits notify::connected. + */ + len = g_socket_send (client, testbuf, strlen (testbuf) + 1, NULL, &error); + g_assert_error (error, G_IO_ERROR, G_IO_ERROR_FAILED); + g_assert_cmpint (len, ==, -1); + } g_assert_cmpint (data->client_connected_changed, ==, 2); g_assert (!g_socket_is_connected (client)); |