In case of failures only the netns were cleaned, leaving behind the netdevsim devices created for the test and the module loaded. On failure, delete the devices and unload the module.
Signed-off-by: Íñigo Huguet <[email protected]> --- .../selftests/drivers/net/netdevsim/peer.sh | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/tools/testing/selftests/drivers/net/netdevsim/peer.sh b/tools/testing/selftests/drivers/net/netdevsim/peer.sh index 5e7b6c1d0bfb..ec96015bc9eb 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/peer.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/peer.sh @@ -46,10 +46,13 @@ setup_ns() set +e } -cleanup_ns() +cleanup() { ip netns del nscl ip netns del nssv + echo $NSIM_DEV_2_ID > $NSIM_DEV_SYS_DEL + echo $NSIM_DEV_1_ID > $NSIM_DEV_SYS_DEL + modprobe -r netdevsim } assert_carrier_up() @@ -64,7 +67,6 @@ assert_carrier_up() if [ "$sysfs_carrier" -ne 1 -o "$ethtool_carrier" != "true" ]; then echo "$nsim_dev's carrier should be UP, but it isn't" - cleanup_ns exit 1 fi } @@ -81,7 +83,6 @@ assert_carrier_down() if [ "$sysfs_carrier" -ne 0 -o "$ethtool_carrier" != "false" ]; then echo "$nsim_dev's carrier should be DOWN, but it isn't" - cleanup_ns exit 1 fi } @@ -120,6 +121,8 @@ udevadm settle setup_ns +trap cleanup EXIT + NSIM_DEV_1_FD=$((256 + RANDOM % 256)) exec {NSIM_DEV_1_FD}</var/run/netns/nssv NSIM_DEV_1_IFIDX=$(ip netns exec nssv cat /sys/class/net/$NSIM_DEV_1_NAME/ifindex) @@ -131,28 +134,24 @@ NSIM_DEV_2_IFIDX=$(ip netns exec nscl cat /sys/class/net/$NSIM_DEV_2_NAME/ifinde echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:2000" > $NSIM_DEV_SYS_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "linking with non-existent netdevsim should fail" - cleanup_ns exit 1 fi echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX 2000:$NSIM_DEV_2_IFIDX" > $NSIM_DEV_SYS_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "linking with non-existent netnsid should fail" - cleanup_ns exit 1 fi echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX" > $NSIM_DEV_SYS_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "linking with self should fail" - cleanup_ns exit 1 fi echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:$NSIM_DEV_2_IFIDX" > $NSIM_DEV_SYS_LINK if [ $? -ne 0 ]; then echo "linking netdevsim1 with netdevsim2 should succeed" - cleanup_ns exit 1 fi @@ -161,7 +160,6 @@ fi echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX $NSIM_DEV_2_FD:a" > $NSIM_DEV_SYS_LINK 2>/dev/null if [ $? -eq 0 ]; then echo "invalid arg should fail" - cleanup_ns exit 1 fi @@ -228,13 +226,6 @@ fi echo "$NSIM_DEV_1_FD:$NSIM_DEV_1_IFIDX" > $NSIM_DEV_SYS_UNLINK -echo $NSIM_DEV_2_ID > $NSIM_DEV_SYS_DEL - kill $pid -echo $NSIM_DEV_1_ID > $NSIM_DEV_SYS_DEL - -cleanup_ns - -modprobe -r netdevsim exit $res -- 2.53.0

