From: Phil Sutter Date: Thu, 27 Mar 2025 17:44:49 +0000 (+0100) Subject: tests: shell: Add socat availability feature test X-Git-Tag: v1.1.2~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=62250017dd4b03d7d72be3c56d0e12c53141fad4;p=thirdparty%2Fnftables.git tests: shell: Add socat availability feature test Several tests did this manually and skipped if unavail, others just implicitly depended on the tool. Note that for the sake of simplicity, this will skip packetpath/tcp_options test entirely when it did a partial run before. Signed-off-by: Phil Sutter Reviewed-by: Florian Westphal --- diff --git a/tests/shell/features/socat.sh b/tests/shell/features/socat.sh new file mode 100755 index 00000000..93cad6f2 --- /dev/null +++ b/tests/shell/features/socat.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# check whether socat is installed +socat -h >/dev/null 2>&1 diff --git a/tests/shell/testcases/packetpath/cgroupv2 b/tests/shell/testcases/packetpath/cgroupv2 index 5c5bea0c..65916e9d 100755 --- a/tests/shell/testcases/packetpath/cgroupv2 +++ b/tests/shell/testcases/packetpath/cgroupv2 @@ -1,5 +1,7 @@ #!/bin/bash +# NFT_TEST_REQUIRES(NFT_TEST_HAVE_socat) + doit="$1" rc=0 @@ -11,11 +13,6 @@ rc=0 # should never match, it only exists so we # can create cgroupv2 match rules. -if ! socat -h > /dev/null ; then - echo "socat tool is missing" - exit 77 -fi - if [ ! -r /sys/fs/cgroup/cgroup.procs ] ;then echo "cgroup filesystem not available" exit 77 diff --git a/tests/shell/testcases/packetpath/flowtables b/tests/shell/testcases/packetpath/flowtables index 2c4a7e1f..d4e0a5bd 100755 --- a/tests/shell/testcases/packetpath/flowtables +++ b/tests/shell/testcases/packetpath/flowtables @@ -1,5 +1,6 @@ #!/bin/bash +# NFT_TEST_REQUIRES(NFT_TEST_HAVE_socat) # NFT_TEST_SKIP(NFT_TEST_SKIP_slow) set -x diff --git a/tests/shell/testcases/packetpath/match_l4proto b/tests/shell/testcases/packetpath/match_l4proto index 31fbe6c2..e61524e9 100755 --- a/tests/shell/testcases/packetpath/match_l4proto +++ b/tests/shell/testcases/packetpath/match_l4proto @@ -1,6 +1,7 @@ #!/bin/bash # NFT_TEST_REQUIRES(NFT_TEST_HAVE_netdev_egress) +# NFT_TEST_REQUIRES(NFT_TEST_HAVE_socat) rnd=$(mktemp -u XXXXXXXX) ns1="nft1payload-$rnd" diff --git a/tests/shell/testcases/packetpath/payload b/tests/shell/testcases/packetpath/payload index 83e0b7fc..1e6b5a51 100755 --- a/tests/shell/testcases/packetpath/payload +++ b/tests/shell/testcases/packetpath/payload @@ -1,6 +1,7 @@ #!/bin/bash # NFT_TEST_REQUIRES(NFT_TEST_HAVE_netdev_egress) +# NFT_TEST_REQUIRES(NFT_TEST_HAVE_socat) rnd=$(mktemp -u XXXXXXXX) ns1="nft1payload-$rnd" diff --git a/tests/shell/testcases/packetpath/tcp_options b/tests/shell/testcases/packetpath/tcp_options index 57e228c5..88c095ff 100755 --- a/tests/shell/testcases/packetpath/tcp_options +++ b/tests/shell/testcases/packetpath/tcp_options @@ -1,9 +1,7 @@ #!/bin/bash # NFT_TEST_REQUIRES(NFT_TEST_HAVE_reset_tcp_options) - -have_socat="no" -socat -h > /dev/null && have_socat="yes" +# NFT_TEST_REQUIRES(NFT_TEST_HAVE_socat) ip link set lo up @@ -33,11 +31,6 @@ if [ $? -ne 0 ]; then exit 1 fi -if [ $have_socat != "yes" ]; then - echo "Ran partial test, socat not available (skipped)" - exit 77 -fi - # This will fail (drop in output -> connect fails with eperm) socat -u STDIN TCP:127.0.0.1:22345,connect-timeout=1 < /dev/null > /dev/null diff --git a/tests/shell/testcases/packetpath/tcp_reset b/tests/shell/testcases/packetpath/tcp_reset index 3dfcdde4..559260a3 100755 --- a/tests/shell/testcases/packetpath/tcp_reset +++ b/tests/shell/testcases/packetpath/tcp_reset @@ -1,10 +1,10 @@ #!/bin/bash +# NFT_TEST_REQUIRES(NFT_TEST_HAVE_socat) + # regression check for kernel commit # netfilter: nf_reject: init skb->dev for reset packet -socat -h > /dev/null || exit 77 - ip link set lo up $NFT -f - <