diff --git a/tools/testing/selftests/net/lib.sh b/tools/testing/selftests/net/lib.sh index 114b927fee256..915f319bcc8bf 100644 --- a/tools/testing/selftests/net/lib.sh +++ b/tools/testing/selftests/net/lib.sh @@ -167,26 +167,30 @@ cleanup_all_ns() # setup_ns local remote setup_ns() { - local ns="" local ns_name="" local ns_list=() for ns_name in "$@"; do + # avoid conflicts with local var: internal error + if [ "${ns_name}" = "ns_name" ]; then + echo "Failed to setup namespace '${ns_name}': invalid name" + cleanup_ns "${ns_list[@]}" + exit $ksft_fail + fi + # Some test may setup/remove same netns multi times if [ -z "${!ns_name}" ]; then - ns="${ns_name,,}-$(mktemp -u XXXXXX)" - eval "${ns_name}=${ns}" + eval "${ns_name}=${ns_name,,}-$(mktemp -u XXXXXX)" else - ns="${!ns_name}" - cleanup_ns "$ns" + cleanup_ns "${!ns_name}" fi - if ! ip netns add "$ns"; then + if ! ip netns add "${!ns_name}"; then echo "Failed to create namespace $ns_name" cleanup_ns "${ns_list[@]}" return $ksft_skip fi - ip -n "$ns" link set lo up - ns_list+=("$ns") + ip -n "${!ns_name}" link set lo up + ns_list+=("${!ns_name}") done NS_LIST+=("${ns_list[@]}") }