On 1/4/26 09:50, Aleksei Oladko wrote:
> The net kselftest rtnetlink.sh tries to create an erspan device using:
> 
>   ip link add dev erspan00 type erspan...
> 
> On kernels built without erspan support this fails with:
> 
>   Error: Unknown device type.
> 
> and causes the entire test to fail.
> 
> Skip the test when erspan devices cannot be created.
> 
> https://virtuozzo.atlassian.net/browse/VSTOR-121804
> 
> Signed-off-by: Aleksei Oladko <[email protected]>
> ---
>  tools/testing/selftests/net/rtnetlink.sh | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/tools/testing/selftests/net/rtnetlink.sh 
> b/tools/testing/selftests/net/rtnetlink.sh
> index e7a682183703..94f71f39b3dc 100755
> --- a/tools/testing/selftests/net/rtnetlink.sh
> +++ b/tools/testing/selftests/net/rtnetlink.sh
> @@ -65,6 +65,9 @@ run_cmd_common()
>       fi
>       out=$($cmd 2>&1)
>       rc=$?
> +     if [[ "$out" == *"Error: Unknown device type"* ]]; then
> +             skip_test=1
> +     fi

Can we instead of changing run_cmd_common for one call, just opencode run_cmd 
in the beginning of test, with the check for unknown device type message?

if ip -netns "$testns" link add dev test_erspan type erspan ... 2>&1 | grep 
"Error: Unknown device type" > /dev/null; then
        end_test "SKIP: erspan: iproute2 can't handle it"
        return $ksft_skip
fi

Also I'm a bit confused as kci_test_erspan already checks that ip link knows 
about erspan, why does not it work (maybe module not loaded?)?

>       if [ "$VERBOSE" = "1" -a -n "$out" ]; then
>               echo "    $out"
>       fi
> @@ -934,6 +937,7 @@ kci_test_erspan()
>  {
>       DEV_NS=erspan00
>       local ret=0
> +     local skip_test=0
>       run_cmd_grep "^Usage:" ip link help erspan
>       if [ $? -ne 0 ];then
>               end_test "SKIP: erspan: iproute2 too old"
> @@ -949,6 +953,11 @@ kci_test_erspan()
>       run_cmd ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \
>               key 102 local 172.16.1.100 remote 172.16.1.200 \
>               erspan_ver 1 erspan 488
> +     if [ $skip_test -ne 0 ]; then
> +             end_test "SKIP: erspan tests: not supported"
> +             ip netns del "$testns"
> +             return $ksft_skip
> +     fi
>  
>  
>       run_cmd ip -netns "$testns" addr add dev "$DEV_NS" 10.1.1.100/24

-- 
Best regards, Pavel Tikhomirov
Senior Software Developer, Virtuozzo.

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to