selftests: mptcp: make evts global in mptcp_join
This patch moves evts_ns1 and evts_ns2 out of do_transfer() as two global variables in mptcp_join.sh. Init them in init() and remove them in cleanup(). Add a new helper reset_with_events() to save the outputs of 'pm_nl_ctl events' command in them. And a new helper kill_events_pids() to kill pids of 'pm_nl_ctl events' command. Use these helpers in userspace pm tests. Suggested-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Geliang Tang <geliang.tang@suse.com> Acked-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
6c73008aa3
Коммит
a373562557
|
@ -26,6 +26,10 @@ ip_mptcp=0
|
|||
check_invert=0
|
||||
validate_checksum=0
|
||||
init=0
|
||||
evts_ns1=""
|
||||
evts_ns2=""
|
||||
evts_ns1_pid=0
|
||||
evts_ns2_pid=0
|
||||
|
||||
declare -A all_tests
|
||||
declare -a only_tests_ids
|
||||
|
@ -154,6 +158,8 @@ init() {
|
|||
cin=$(mktemp)
|
||||
cinsent=$(mktemp)
|
||||
cout=$(mktemp)
|
||||
evts_ns1=$(mktemp)
|
||||
evts_ns2=$(mktemp)
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
|
@ -165,6 +171,7 @@ cleanup()
|
|||
{
|
||||
rm -f "$cin" "$cout" "$sinfail"
|
||||
rm -f "$sin" "$sout" "$cinsent" "$cinfail"
|
||||
rm -rf $evts_ns1 $evts_ns2
|
||||
cleanup_partial
|
||||
}
|
||||
|
||||
|
@ -320,6 +327,18 @@ reset_with_fail()
|
|||
index 100 || exit 1
|
||||
}
|
||||
|
||||
reset_with_events()
|
||||
{
|
||||
reset "${1}" || return 1
|
||||
|
||||
:> "$evts_ns1"
|
||||
:> "$evts_ns2"
|
||||
ip netns exec $ns1 ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
|
||||
evts_ns1_pid=$!
|
||||
ip netns exec $ns2 ./pm_nl_ctl events >> "$evts_ns2" 2>&1 &
|
||||
evts_ns2_pid=$!
|
||||
}
|
||||
|
||||
fail_test()
|
||||
{
|
||||
ret=1
|
||||
|
@ -473,6 +492,12 @@ kill_wait()
|
|||
wait $1 2>/dev/null
|
||||
}
|
||||
|
||||
kill_events_pids()
|
||||
{
|
||||
kill_wait $evts_ns1_pid
|
||||
kill_wait $evts_ns2_pid
|
||||
}
|
||||
|
||||
pm_nl_set_limits()
|
||||
{
|
||||
local ns=$1
|
||||
|
@ -673,10 +698,6 @@ do_transfer()
|
|||
local port=$((10000 + TEST_COUNT - 1))
|
||||
local cappid
|
||||
local userspace_pm=0
|
||||
local evts_ns1
|
||||
local evts_ns1_pid
|
||||
local evts_ns2
|
||||
local evts_ns2_pid
|
||||
|
||||
:> "$cout"
|
||||
:> "$sout"
|
||||
|
@ -753,17 +774,6 @@ do_transfer()
|
|||
addr_nr_ns2=${addr_nr_ns2:9}
|
||||
fi
|
||||
|
||||
if [ $userspace_pm -eq 1 ]; then
|
||||
evts_ns1=$(mktemp)
|
||||
evts_ns2=$(mktemp)
|
||||
:> "$evts_ns1"
|
||||
:> "$evts_ns2"
|
||||
ip netns exec ${listener_ns} ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
|
||||
evts_ns1_pid=$!
|
||||
ip netns exec ${connector_ns} ./pm_nl_ctl events >> "$evts_ns2" 2>&1 &
|
||||
evts_ns2_pid=$!
|
||||
fi
|
||||
|
||||
local local_addr
|
||||
if is_v6 "${connect_addr}"; then
|
||||
local_addr="::"
|
||||
|
@ -982,12 +992,6 @@ do_transfer()
|
|||
kill $cappid
|
||||
fi
|
||||
|
||||
if [ $userspace_pm -eq 1 ]; then
|
||||
kill_wait $evts_ns1_pid
|
||||
kill_wait $evts_ns2_pid
|
||||
rm -rf $evts_ns1 $evts_ns2
|
||||
fi
|
||||
|
||||
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
|
||||
nstat | grep Tcp > /tmp/${listener_ns}.out
|
||||
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
|
||||
|
@ -2961,22 +2965,24 @@ userspace_tests()
|
|||
fi
|
||||
|
||||
# userspace pm add & remove address
|
||||
if reset "userspace pm add & remove address"; then
|
||||
if reset_with_events "userspace pm add & remove address"; then
|
||||
set_userspace_pm $ns1
|
||||
pm_nl_set_limits $ns2 1 1
|
||||
run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow
|
||||
chk_join_nr 1 1 1
|
||||
chk_add_nr 1 1
|
||||
chk_rm_nr 1 1 invert
|
||||
kill_events_pids
|
||||
fi
|
||||
|
||||
# userspace pm create destroy subflow
|
||||
if reset "userspace pm create destroy subflow"; then
|
||||
if reset_with_events "userspace pm create destroy subflow"; then
|
||||
set_userspace_pm $ns2
|
||||
pm_nl_set_limits $ns1 0 1
|
||||
run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow
|
||||
chk_join_nr 1 1 1
|
||||
chk_rm_nr 0 1
|
||||
kill_events_pids
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче