On Fri, Aug 22, 2025 at 02:08:42PM +0200, Alessandro Ratti wrote:
> Some rtnetlink selftests assume the presence of ifconfig and iproute2
> support for the `proto` keyword in `ip address` commands. These
> assumptions can cause test failures on modern systems (e.g. Debian
> Bookworm) where:
> 
>  - ifconfig is not installed by default
>  - The iproute2 version lacks support for address protocol
> 
> This patch improves test robustness by:
> 
>  - Skipping kci_test_promote_secondaries if ifconfig is missing
>  - Skipping do_test_address_proto if ip address help does not mention
>    proto
> 
> These changes ensure the tests degrade gracefully by reporting SKIP
> instead of FAIL when prerequisites are not met, improving portability
> across systems.
> 

The Reviewed-by tag should be here

Reviewed-by: Hangbin Liu <liuhang...@gmail.com>

> Signed-off-by: Alessandro Ratti <alessan...@0x65c.net>
> 
> ---
> v2:
> - Updated the patch based on review from Hangbin Liu
> - Changed subject and commit message to better reflect updated behavior
> - Added Reviewed-by tag
> 
> Reviewed-by: Hangbin Liu <liuhang...@gmail.com>
> ---
>  tools/testing/selftests/net/rtnetlink.sh | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/tools/testing/selftests/net/rtnetlink.sh 
> b/tools/testing/selftests/net/rtnetlink.sh
> index d6c00efeb664..c2a0e7f37391 100755
> --- a/tools/testing/selftests/net/rtnetlink.sh
> +++ b/tools/testing/selftests/net/rtnetlink.sh
> @@ -323,6 +323,11 @@ kci_test_addrlft()
>  
>  kci_test_promote_secondaries()
>  {
> +     run_cmd ifconfig "$devdummy"
> +     if [ $ret -ne 0 ]; then
> +             end_test "SKIP: ifconfig not installed"
> +             return $ksft_skip
> +     fi
>       promote=$(sysctl -n net.ipv4.conf.$devdummy.promote_secondaries)
>  
>       sysctl -q net.ipv4.conf.$devdummy.promote_secondaries=1
> @@ -1201,6 +1206,12 @@ do_test_address_proto()
>       local ret=0
>       local err
>  
> +     run_cmd_grep 'proto' ip address help
> +     if [ $? -ne 0 ];then
> +             end_test "SKIP: addr proto ${what}: iproute2 too old"
> +             return $ksft_skip
> +     fi
> +
>       ip address add dev "$devdummy" "$addr3"
>       check_err $?
>       proto=$(address_get_proto "$addr3")
> -- 
> 2.39.5
> 

Reply via email to