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 <phil@xxxxxx> --- tests/shell/features/socat.sh | 4 ++++ tests/shell/testcases/packetpath/cgroupv2 | 7 ++----- tests/shell/testcases/packetpath/flowtables | 1 + tests/shell/testcases/packetpath/match_l4proto | 1 + tests/shell/testcases/packetpath/payload | 1 + tests/shell/testcases/packetpath/tcp_options | 9 +-------- tests/shell/testcases/packetpath/tcp_reset | 4 ++-- 7 files changed, 12 insertions(+), 15 deletions(-) create mode 100755 tests/shell/features/socat.sh diff --git a/tests/shell/features/socat.sh b/tests/shell/features/socat.sh new file mode 100755 index 0000000000000..93cad6f20d2ee --- /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 5c5bea0c903d3..65916e9db1e8c 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 2c4a7e1f725ad..d4e0a5bd1c073 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 31fbe6c27d66a..e61524e9cbdb8 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 83e0b7fc647ac..1e6b5a51969bb 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 57e228c5990e0..88c095ff66dec 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 3dfcdde40c77a..559260a377090 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 - <<EOF -- 2.48.1