selftests: net: kill smcrouted in the cleanup logic in amt.sh
authorTaehee Yoo <ap420073@gmail.com>
Sat, 18 May 2024 13:20:52 +0000 (13:20 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 May 2024 10:39:07 +0000 (11:39 +0100)
The amt.sh requires smcrouted for multicasting routing.
So, it starts smcrouted before forwarding tests.
It must be stopped after all tests, but it isn't.

To fix this issue, it kills smcrouted in the cleanup logic.

Fixes: c08e8baea78e ("selftests: add amt interface selftest script")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/amt.sh

index 5175a42..7e7ed6c 100755 (executable)
@@ -77,6 +77,7 @@ readonly LISTENER=$(mktemp -u listener-XXXXXXXX)
 readonly GATEWAY=$(mktemp -u gateway-XXXXXXXX)
 readonly RELAY=$(mktemp -u relay-XXXXXXXX)
 readonly SOURCE=$(mktemp -u source-XXXXXXXX)
+readonly SMCROUTEDIR="$(mktemp -d)"
 ERR=4
 err=0
 
@@ -85,6 +86,11 @@ exit_cleanup()
        for ns in "$@"; do
                ip netns delete "${ns}" 2>/dev/null || true
        done
+       if [ -f "$SMCROUTEDIR/amt.pid" ]; then
+               smcpid=$(< $SMCROUTEDIR/amt.pid)
+               kill $smcpid
+       fi
+       rm -rf $SMCROUTEDIR
 
        exit $ERR
 }
@@ -167,7 +173,7 @@ setup_iptables()
 
 setup_mcast_routing()
 {
-       ip netns exec "${RELAY}" smcrouted
+       ip netns exec "${RELAY}" smcrouted -P $SMCROUTEDIR/amt.pid
        ip netns exec "${RELAY}" smcroutectl a relay_src \
                172.17.0.2 239.0.0.1 amtr
        ip netns exec "${RELAY}" smcroutectl a relay_src \