On 7/23/24 10:30, Nikolay Aleksandrov wrote:
On 23/07/2024 11:22, Hangbin Liu wrote:
If the testing kernel doesn't support setting fdb_max_learned or show fdb_n_learned, just skip it. Or we will get errors like
./bridge_fdb_learning_limit.sh: line 218: [: null: integer expression expected ./bridge_fdb_learning_limit.sh: line 225: [: null: integer expression expected
Fixes: 6f84090333bb ("selftests: forwarding: bridge_fdb_learning_limit: Add a new selftest") Signed-off-by: Hangbin Liu liuhangbin@gmail.com
.../forwarding/bridge_fdb_learning_limit.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/tools/testing/selftests/net/forwarding/bridge_fdb_learning_limit.sh b/tools/testing/selftests/net/forwarding/bridge_fdb_learning_limit.sh index 0760a34b7114..a21b7085da2e 100755 --- a/tools/testing/selftests/net/forwarding/bridge_fdb_learning_limit.sh +++ b/tools/testing/selftests/net/forwarding/bridge_fdb_learning_limit.sh @@ -178,6 +178,22 @@ fdb_del() check_err $? "Failed to remove a FDB entry of type ${type}" } +check_fdb_n_learned_support() +{
- if ! ip link help bridge 2>&1 | grep -q "fdb_max_learned"; then
echo "SKIP: iproute2 too old, missing bridge max learned support"
exit $ksft_skip
- fi
- ip link add dev br0 type bridge
- local learned=$(fdb_get_n_learned)
- ip link del dev br0
- if [ "$learned" == "null" ]; then
echo "SKIP: kernel too old; bridge fdb_n_learned feature not supported."
exit $ksft_skip
- fi
+}
- check_accounting_one_type() { local type=$1 is_counted=$2 overrides_learned=$3
@@ -274,6 +290,8 @@ check_limit() done } +check_fdb_n_learned_support
- trap cleanup EXIT
setup_prepare
Isn't the selftest supposed to be added after the feature was included?
I don't understand why this one is special, we should have the same issue with all new features.
I must admit I was surprised when I learned the fact, but the stable team routinely runs up2date upstream self-tests on top of stable/older kernels:
https://lore.kernel.org/mptcp/ZAHLYvOPEYghRcJ1@kroah.com/
The expected self-test design is to probe the tested feature and skip if not available in the running kernel. The self-test should not break when run on an older kernel not offering such feature.
I understand some (most?) of the self-tests do not cope with the above perfectly, but we can improve ;).
Thanks,
Paolo