From 846442c256aa0257ab62b6a24754ba1930636a01 Mon Sep 17 00:00:00 2001 From: Doug Nazar Date: Thu, 22 Apr 2021 23:26:02 -0400 Subject: [PATCH] tests: Don't fail tests if IPv6 not available. On computers with IPv6 disabled it shouldn't result in a test failure. Part-of: --- tests/check/gst/stream.c | 47 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/tests/check/gst/stream.c b/tests/check/gst/stream.c index 112e80f..3da4f9b 100644 --- a/tests/check/gst/stream.c +++ b/tests/check/gst/stream.c @@ -140,17 +140,29 @@ get_sockets (GstRTSPLowerTrans lower_transport, GSocketFamily socket_family) gst_object_unref (stream); } -GST_START_TEST (test_get_sockets_udp) +GST_START_TEST (test_get_sockets_udp_ipv4) { get_sockets (GST_RTSP_LOWER_TRANS_UDP, G_SOCKET_FAMILY_IPV4); +} + +GST_END_TEST; + +GST_START_TEST (test_get_sockets_udp_ipv6) +{ get_sockets (GST_RTSP_LOWER_TRANS_UDP, G_SOCKET_FAMILY_IPV6); } GST_END_TEST; -GST_START_TEST (test_get_sockets_mcast) +GST_START_TEST (test_get_sockets_mcast_ipv4) { get_sockets (GST_RTSP_LOWER_TRANS_UDP_MCAST, G_SOCKET_FAMILY_IPV4); +} + +GST_END_TEST; + +GST_START_TEST (test_get_sockets_mcast_ipv6) +{ get_sockets (GST_RTSP_LOWER_TRANS_UDP_MCAST, G_SOCKET_FAMILY_IPV6); } @@ -641,15 +653,42 @@ GST_START_TEST (test_remove_transport_twice) GST_END_TEST; +static gboolean +is_ipv6_supported (void) +{ + GError *err = NULL; + GSocket *sock; + + sock = + g_socket_new (G_SOCKET_FAMILY_IPV6, G_SOCKET_TYPE_DATAGRAM, + G_SOCKET_PROTOCOL_DEFAULT, &err); + if (sock) { + g_object_unref (sock); + return TRUE; + } + + if (!g_error_matches (err, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED)) { + GST_WARNING ("Unabled to create IPv6 socket: %s", err->message); + } + g_clear_error (&err); + + return FALSE; +} + static Suite * rtspstream_suite (void) { Suite *s = suite_create ("rtspstream"); TCase *tc = tcase_create ("general"); + gboolean have_ipv6 = is_ipv6_supported (); suite_add_tcase (s, tc); - tcase_add_test (tc, test_get_sockets_udp); - tcase_add_test (tc, test_get_sockets_mcast); + tcase_add_test (tc, test_get_sockets_udp_ipv4); + tcase_add_test (tc, test_get_sockets_mcast_ipv4); + if (have_ipv6) { + tcase_add_test (tc, test_get_sockets_udp_ipv6); + tcase_add_test (tc, test_get_sockets_mcast_ipv6); + } tcase_add_test (tc, test_allocate_udp_ports_fail); tcase_add_test (tc, test_get_multicast_address); tcase_add_test (tc, test_multicast_address_and_unicast_udp); -- 2.7.4