Re: [PATCHv3] selftests: rtnetlink: load fou module for kci_test_encap_fou() test

From: Jakub Kicinski
Date: Mon Sep 07 2020 - 16:12:25 EST


On Mon, 7 Sep 2020 11:50:10 +0800 Po-Hsu Lin wrote:
> The kci_test_encap_fou() test from kci_test_encap() in rtnetlink.sh
> needs the fou module to work. Otherwise it will fail with:
>
> $ ip netns exec "$testns" ip fou add port 7777 ipproto 47
> RTNETLINK answers: No such file or directory
> Error talking to the kernel
>
> Add the CONFIG_NET_FOU into the config file as well. Which needs at
> least to be set as a loadable module.
>
> Signed-off-by: Po-Hsu Lin <po-hsu.lin@xxxxxxxxxxxxx>

> diff --git a/tools/testing/selftests/net/rtnetlink.sh b/tools/testing/selftests/net/rtnetlink.sh
> index 7c38a90..a711b3e 100755
> --- a/tools/testing/selftests/net/rtnetlink.sh
> +++ b/tools/testing/selftests/net/rtnetlink.sh
> @@ -520,6 +520,11 @@ kci_test_encap_fou()
> return $ksft_skip
> fi
>
> + if ! /sbin/modprobe -q -n fou; then
> + echo "SKIP: module fou is not found"
> + return $ksft_skip
> + fi
> + /sbin/modprobe -q fou
> ip -netns "$testns" fou add port 7777 ipproto 47 2>/dev/null
> if [ $? -ne 0 ];then
> echo "FAIL: can't add fou port 7777, skipping test"
> @@ -540,6 +545,7 @@ kci_test_encap_fou()
> return 1
> fi
>
> + /sbin/modprobe -q -r fou

I think the common practice is to not remove the module at the end of
the test. It may be used by something else than the test itself.

> echo "PASS: fou"
> }
>