On Wed, Aug 14, 2024 at 12:19:22PM +0200, Paolo Abeni wrote: > > --- a/tools/testing/selftests/net/udpgro.sh > > +++ b/tools/testing/selftests/net/udpgro.sh > > @@ -49,14 +49,15 @@ run_one() { > > cfg_veth > > - ip netns exec "${PEER_NS}" ./udpgso_bench_rx -C 1000 -R 10 ${rx_args} && \ > > - echo "ok" || \ > > - echo "failed" & > > + ip netns exec "${PEER_NS}" ./udpgso_bench_rx -C 1000 -R 10 ${rx_args} & > > + local PID1=$! > > wait_local_port_listen ${PEER_NS} 8000 udp > > ./udpgso_bench_tx ${tx_args} > > - ret=$? > > - wait $(jobs -p) > > + check_err $? > > + wait ${PID1} > > + check_err $? > > + [ "$ret" -eq 0 ] && echo "ok" || echo "failed" > > I think that with the above, in case of a failure, every test after the > failing one will should fail, regardless of the actual results, am I > correct? No, only the failed test echo "failed". The passed tests still report "ok". The "check_err $?" in run_all function only record none 0 ret as return value. Thanks Hangbin