On Wed, 2024-05-08 at 04:06 +0000, Taehee Yoo wrote: > @@ -210,40 +217,52 @@ check_features() > > test_ipv4_forward() > { > - RESULT4=$(ip netns exec "${LISTENER}" nc -w 1 -l -u 239.0.0.1 4000) > + echo "" > $RESULT > + bash -c "$(ip netns exec "${LISTENER}" \ > + timeout 10s > $RESULT)" > + RESULT4=$(< $RESULT) if you instead do: RESULT4=$(timeout 10s ip netns exec \ "${LISTENER}" nc -w 1 -l -u 239.0.0.1 4000) You can avoid the additional tmp file (RESULT) > if [ "$RESULT4" == "172.17.0.2" ]; then > printf "TEST: %-60s [ OK ]\n" "IPv4 amt multicast forwarding" > - exit 0 > else > printf "TEST: %-60s [FAIL]\n" "IPv4 amt multicast forwarding" > - exit 1 > fi > + > } [...] > @@ -259,19 +278,17 @@ setup_iptables > setup_mcast_routing > test_remote_ip > test_ipv4_forward & > -pid=$! > -send_mcast4 > -wait $pid || err=$? > -if [ $err -eq 1 ]; then > - ERR=1 > -fi > +spid=$! > +send_mcast4 & > +cpid=$! > +wait $spid It looks like you don't capture anymore the return code from test_ipv4_forward, why? That will foul the test runner infra to think that this test is always successful. Paolo