@@ -1024,52 +1024,53 @@ do_transfer()
10241024 if [ " $test_linkfail " -gt 1 ]; then
10251025 listener_in=" ${sinfail} "
10261026 fi
1027- timeout ${timeout_test} \
1028- ip netns exec ${listener_ns} \
1029- ./mptcp_connect -t ${timeout_poll} -l -p ${port} -s ${srv_proto} \
1030- ${extra_srv_args} " ${bind_addr} " < " ${listener_in} " > " ${sout} " &
1027+ ip netns exec ${listener_ns} \
1028+ ./mptcp_connect -t ${timeout_poll} -l -p ${port} -s ${srv_proto} \
1029+ ${extra_srv_args} " ${bind_addr} " < " ${listener_in} " > " ${sout} " &
10311030 local spid=$!
10321031
10331032 mptcp_lib_wait_local_port_listen " ${listener_ns} " " ${port} "
10341033
10351034 extra_cl_args=" $extra_args $extra_cl_args "
10361035 if [ " $test_linkfail " -eq 0 ]; then
1037- timeout ${timeout_test} \
1038- ip netns exec ${connector_ns} \
1039- ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
1040- $extra_cl_args $connect_addr < " $cin " > " $cout " &
1036+ ip netns exec ${connector_ns} \
1037+ ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
1038+ $extra_cl_args $connect_addr < " $cin " > " $cout " &
10411039 elif [ " $test_linkfail " -eq 1 ] || [ " $test_linkfail " -eq 2 ]; then
10421040 connector_in=" ${cinsent} "
10431041 ( cat " $cinfail " ; sleep 2; link_failure $listener_ns ; cat " $cinfail " ) | \
10441042 tee " $cinsent " | \
1045- timeout ${timeout_test} \
10461043 ip netns exec ${connector_ns} \
10471044 ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
10481045 $extra_cl_args $connect_addr > " $cout " &
10491046 else
10501047 connector_in=" ${cinsent} "
10511048 tee " $cinsent " < " $cinfail " | \
1052- timeout ${timeout_test} \
1053- ip netns exec ${connector_ns} \
1054- ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
1055- $extra_cl_args $connect_addr > " $cout " &
1049+ ip netns exec ${connector_ns} \
1050+ ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
1051+ $extra_cl_args $connect_addr > " $cout " &
10561052 fi
10571053 local cpid=$!
10581054
1055+ mptcp_lib_wait_timeout " ${timeout_test} " " ${listener_ns} " \
1056+ " ${connector_ns} " " ${port} " " ${cpid} " " ${spid} " &
1057+ local timeout_pid=$!
1058+
10591059 pm_nl_set_endpoint $listener_ns $connector_ns $connect_addr
10601060 check_cestab $listener_ns $connector_ns
10611061
10621062 wait $cpid
10631063 local retc=$?
10641064 wait $spid
10651065 local rets=$?
1066+ kill $timeout_pid 2> /dev/null && timeout_pid=0
10661067
10671068 cond_stop_capture
10681069
10691070 mptcp_lib_nstat_get " ${listener_ns} "
10701071 mptcp_lib_nstat_get " ${connector_ns} "
10711072
1072- if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then
1073+ if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ] || [ ${timeout_pid} -ne 0 ] ; then
10731074 fail_test " client exit code $retc , server $rets "
10741075 mptcp_lib_pr_err_stats " ${listener_ns} " " ${connector_ns} " " ${port} "
10751076 return 1
0 commit comments