diff options
author | Doug Nazar <nazard@nazar.ca> | 2021-04-22 23:26:02 -0400 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-04-23 10:23:22 +0000 |
commit | 846442c256aa0257ab62b6a24754ba1930636a01 (patch) | |
tree | 0277f6fd5415659e604d543c649428debd40ea43 | |
parent | 338db31c4a0ad618058f4e464dd51959e1f2534c (diff) |
tests: Don't fail tests if IPv6 not available.
On computers with IPv6 disabled it shouldn't result in a test failure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/196>
-rw-r--r-- | tests/check/gst/stream.c | 47 |
1 files 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); |