aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Baerts (NGI0) <matttbe@kernel.org>2024-06-07 18:31:03 +0200
committerJakub Kicinski <kuba@kernel.org>2024-06-11 19:30:25 -0700
commit92fe5670271a58bb951646225ea367bb86f7feb3 (patch)
tree276a7fc095c07e2706416822dfcb10722a2f675f
parent7e0620bc6a5ec6b340a0be40054f294ca26c010f (diff)
selftests: net: lib: remove ns from list after clean-up
Instead of only appending items to the list, removing them when the netns has been deleted. By doing that, we can make sure 'cleanup_all_ns()' is not trying to remove already deleted netns. Reviewed-by: Geliang Tang <geliang@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Link: https://lore.kernel.org/r/20240607-upstream-net-next-20240607-selftests-mptcp-net-lib-v1-2-e36986faac94@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--tools/testing/selftests/net/lib.sh21
1 files changed, 17 insertions, 4 deletions
diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh
index b2572aff6286..c7a8cfb477cc 100644
--- a/tools/testing/selftests/net/lib.sh
+++ b/tools/testing/selftests/net/lib.sh
@@ -125,6 +125,20 @@ slowwait_for_counter()
slowwait "$timeout" until_counter_is ">= $((base + delta))" "$@"
}
+remove_ns_list()
+{
+ local item=$1
+ local ns
+ local ns_list=("${NS_LIST[@]}")
+ NS_LIST=()
+
+ for ns in "${ns_list[@]}"; do
+ if [ "${ns}" != "${item}" ]; then
+ NS_LIST+=("${ns}")
+ fi
+ done
+}
+
cleanup_ns()
{
local ns=""
@@ -136,6 +150,8 @@ cleanup_ns()
if ! busywait $BUSYWAIT_TIMEOUT ip netns list \| grep -vq "^$ns$" &> /dev/null; then
echo "Warn: Failed to remove namespace $ns"
ret=1
+ else
+ remove_ns_list "${ns}"
fi
done
@@ -154,17 +170,14 @@ setup_ns()
local ns=""
local ns_name=""
local ns_list=()
- local ns_exist=
for ns_name in "$@"; do
# Some test may setup/remove same netns multi times
if unset ${ns_name} 2> /dev/null; then
ns="${ns_name,,}-$(mktemp -u XXXXXX)"
eval readonly ${ns_name}="$ns"
- ns_exist=false
else
eval ns='$'${ns_name}
cleanup_ns "$ns"
- ns_exist=true
fi
if ! ip netns add "$ns"; then
@@ -173,7 +186,7 @@ setup_ns()
return $ksft_skip
fi
ip -n "$ns" link set lo up
- ! $ns_exist && ns_list+=("$ns")
+ ns_list+=("$ns")
done
NS_LIST+=("${ns_list[@]}")
}