From: Yohei Kojima yk@y-koj.net
This patch improves the TCP Fast Open (TFO) test to report the timeout events and client/server error events by introducing better process management.
Previously, TFO test didn't provide any information about the test client/server processes' exit status, and just reported "ok". This behavior is sometimes misleading in case TFO is unsupported by the kernel, or there was a bug in the backing network devices (netdevsim).
Signed-off-by: Yohei Kojima yk@y-koj.net --- tools/testing/selftests/net/tfo_passive.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/net/tfo_passive.sh b/tools/testing/selftests/net/tfo_passive.sh index a4550511830a..1e89f1006c42 100755 --- a/tools/testing/selftests/net/tfo_passive.sh +++ b/tools/testing/selftests/net/tfo_passive.sh @@ -76,7 +76,7 @@ echo "$NSIM_SV_FD:$NSIM_SV_IFIDX $NSIM_CL_FD:$NSIM_CL_IFIDX" > \ if [ $? -ne 0 ]; then echo "linking netdevsim1 with netdevsim2 should succeed" cleanup_ns - exit 1 + exit "$ksft_fail" fi
out_file=$(mktemp) @@ -85,12 +85,15 @@ timeout -k 1s 30s ip netns exec nssv ./tfo \ -s \ -p ${SERVER_PORT} \ -o ${out_file}& +server_pid="$!"
wait_local_port_listen nssv ${SERVER_PORT} tcp
ip netns exec nscl ./tfo -c -h ${SERVER_IP} -p ${SERVER_PORT} +client_exit_status="$?"
-wait +wait "$server_pid" +server_exit_status="$?"
res=$(cat $out_file) rm $out_file @@ -101,6 +104,14 @@ if [ "$res" = "0" ]; then exit 1 fi
+if [ "$client_exit_status" -ne 0 ] || [ "$server_exit_status" -ne 0 ]; then + # Note: timeout(1) exits with 124 if it timed out + echo "client exited with ${client_exit_status}" + echo "server exited with ${server_exit_status}" + cleanup_ns + exit "$ksft_skip" +fi + echo "$NSIM_SV_FD:$NSIM_SV_IFIDX" > $NSIM_DEV_SYS_UNLINK
echo $NSIM_CL_ID > $NSIM_DEV_SYS_DEL