]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: (lsfd) add a function checking the availability of UDPLite socket
authorMasatake YAMATO <yamato@redhat.com>
Tue, 5 May 2026 21:19:38 +0000 (06:19 +0900)
committerMasatake YAMATO <yamato@redhat.com>
Thu, 7 May 2026 22:10:56 +0000 (07:10 +0900)
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
tests/helpers/test_mkfds.c
tests/ts/lsfd/lsfd-functions.bash

index eb601e4c37fc7ef86722d92bf9abe9aae983c9e0..45b5ed53f4c775f5d3dab02a69b87134df1d726b 100644 (file)
@@ -1761,7 +1761,7 @@ static void *make_udp_common(const struct factory *factory, struct fdesc fdescs[
 
        ssd = socket(family, SOCK_DGRAM, blite? IPPROTO_UDPLITE: 0);
        if (ssd < 0)
-               err(EXIT_FAILURE,
+               err(errno == EPROTONOSUPPORT? EXIT_EPROTONOSUPPORT: EXIT_FAILURE,
                    "failed to make a udp socket for server");
 
        if (setsockopt(ssd, SOL_SOCKET,
@@ -1786,7 +1786,7 @@ static void *make_udp_common(const struct factory *factory, struct fdesc fdescs[
 
        csd = socket(family, SOCK_DGRAM, blite? IPPROTO_UDPLITE: 0);
        if (csd < 0) {
-               err(EXIT_FAILURE,
+               err(errno == EPROTONOSUPPORT? EXIT_EPROTONOSUPPORT: EXIT_FAILURE,
                    "failed to make a udp client socket");
        }
 
index 9dd605b7bf6de94dd36421e9f95cbe8e410b0c52..305ae9ceb73ba404d0d0f5e4b80f9e181d88f587 100644 (file)
@@ -186,3 +186,25 @@ function lsfd_check_userns
                ts_failed "failed to use a AF_VSOCK socket: $msg [$err]";;
        esac
 }
+
+function lsfd_check_udp_lite
+{
+       ts_check_test_command "$TS_HELPER_MKFDS"
+
+       local ip=$1
+       if [[ "$ip" == 4 ]]; then
+           ip=
+       fi
+
+       "$TS_HELPER_MKFDS" --dont-pause --quiet "udp$ip" 3 4 lite=1
+       err=$?
+
+       case $err in
+           0)
+               return;;
+           "$EPROTONOSUPPORT")
+               ts_skip "no UDP-Lite available (IPv$ip)";;
+           *)
+               ts_failed "failed to use a IPPROTO_UDPLITE protocol: $msg [$err]";;
+       esac
+}