selftests: mptcp: userspace: avoid read errors

During the cleanup phase, the server pids were killed with a SIGTERM
directly, not using a SIGUSR1 first to quit safely. As a result, this
test was often ending with two error messages:

  read: Connection reset by peer

While at it, use a for-loop to terminate all the PIDs the same way.

Also the different files are now removed after having killed the PIDs
using them. It makes more sense to do that in this order.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Matthieu Baerts 2023-01-25 11:47:28 +01:00 committed by Paolo Abeni
parent 10d4273411
commit 8dbdf24f4e
1 changed files with 12 additions and 20 deletions

View File

@ -50,6 +50,9 @@ print_title()
kill_wait()
{
[ $1 -eq 0 ] && return 0
kill -SIGUSR1 $1 > /dev/null 2>&1
kill $1 > /dev/null 2>&1
wait $1 2>/dev/null
}
@ -58,32 +61,21 @@ cleanup()
{
print_title "Cleanup"
rm -rf $file $client_evts $server_evts
# Terminate the MPTCP connection and related processes
if [ $client4_pid -ne 0 ]; then
kill -SIGUSR1 $client4_pid > /dev/null 2>&1
fi
if [ $server4_pid -ne 0 ]; then
kill_wait $server4_pid
fi
if [ $client6_pid -ne 0 ]; then
kill -SIGUSR1 $client6_pid > /dev/null 2>&1
fi
if [ $server6_pid -ne 0 ]; then
kill_wait $server6_pid
fi
if [ $server_evts_pid -ne 0 ]; then
kill_wait $server_evts_pid
fi
if [ $client_evts_pid -ne 0 ]; then
kill_wait $client_evts_pid
fi
local pid
for pid in $client4_pid $server4_pid $client6_pid $server6_pid\
$server_evts_pid $client_evts_pid
do
kill_wait $pid
done
local netns
for netns in "$ns1" "$ns2" ;do
ip netns del "$netns"
done
rm -rf $file $client_evts $server_evts
stdbuf -o0 -e0 printf "Done\n"
}