From fa0fa2fac467b64f1294bd92b1c038bdf65de1dd Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Mon, 13 Jul 2015 17:38:06 +0200 Subject: [PATCH] tests: skip some tests when network is unreachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Do not hard-fail network tests when libuv is built on an isolated host/container. This is a backport of 5df06b3 (v1.x) Signed-off-by: Luca Bruno PR-URL: https://github.com/libuv/libuv/pull/441 Reviewed-By: Saúl Ibarra Corretgé --- test/test-tcp-close-while-connecting.c | 6 +++++- test/test-tcp-connect-timeout.c | 2 ++ test/test-udp-multicast-join.c | 2 ++ test/test-udp-multicast-ttl.c | 6 +++++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/test/test-tcp-close-while-connecting.c b/test/test-tcp-close-while-connecting.c index d19dcbfe..4a4196cf 100644 --- a/test/test-tcp-close-while-connecting.c +++ b/test/test-tcp-close-while-connecting.c @@ -60,12 +60,16 @@ TEST_IMPL(tcp_close_while_connecting) { uv_connect_t connect_req; struct sockaddr_in addr; uv_loop_t* loop; + int r; addr = uv_ip4_addr("1.2.3.4", TEST_PORT); loop = uv_default_loop(); ASSERT(0 == uv_tcp_init(loop, &tcp_handle)); - ASSERT(0 == uv_tcp_connect(&connect_req, &tcp_handle, addr, connect_cb)); + r = uv_tcp_connect(&connect_req, &tcp_handle, addr, connect_cb); + if (r == -1 && uv_last_error(uv_default_loop()).code == UV_ENETUNREACH) + RETURN_SKIP("Network unreachable."); + ASSERT(r == 0); ASSERT(0 == uv_timer_init(loop, &timer1_handle)); ASSERT(0 == uv_timer_start(&timer1_handle, timer1_cb, 50, 0)); ASSERT(0 == uv_timer_init(loop, &timer2_handle)); diff --git a/test/test-tcp-connect-timeout.c b/test/test-tcp-connect-timeout.c index 0569b6b0..33992024 100644 --- a/test/test-tcp-connect-timeout.c +++ b/test/test-tcp-connect-timeout.c @@ -76,6 +76,8 @@ TEST_IMPL(tcp_connect_timeout) { ASSERT(r == 0); r = uv_tcp_connect(&connect_req, &conn, addr, connect_cb); + if (r == -1 && uv_last_error(uv_default_loop()).code == UV_ENETUNREACH) + RETURN_SKIP("Network unreachable."); ASSERT(r == 0); r = uv_run(uv_default_loop(), UV_RUN_DEFAULT); diff --git a/test/test-udp-multicast-join.c b/test/test-udp-multicast-join.c index 83ec46b8..3134d3ee 100644 --- a/test/test-udp-multicast-join.c +++ b/test/test-udp-multicast-join.c @@ -113,6 +113,8 @@ TEST_IMPL(udp_multicast_join) { /* join the multicast channel */ r = uv_udp_set_membership(&client, "239.255.0.1", NULL, UV_JOIN_GROUP); + if (r == -1 && uv_last_error(uv_default_loop()).code == UV_ENODEV) + RETURN_SKIP("No multicast support."); ASSERT(r == 0); r = uv_udp_recv_start(&client, alloc_cb, cl_recv_cb); diff --git a/test/test-udp-multicast-ttl.c b/test/test-udp-multicast-ttl.c index 6d369836..c9d24597 100644 --- a/test/test-udp-multicast-ttl.c +++ b/test/test-udp-multicast-ttl.c @@ -44,7 +44,11 @@ static void close_cb(uv_handle_t* handle) { static void sv_send_cb(uv_udp_send_t* req, int status) { ASSERT(req != NULL); - ASSERT(status == 0); + if (status == -1) { + ASSERT(uv_last_error(uv_default_loop()).code == UV_ENETUNREACH); + } else { + ASSERT(status == 0); + } CHECK_HANDLE(req->handle); sv_send_cb_called++;