Move the core loop of run_test into an auxiliary function
No behavior change. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
236bf98cfd
commit
196d73bc1b
1 changed files with 44 additions and 29 deletions
|
@ -1005,6 +1005,49 @@ check_test_failure() {
|
|||
pass=1
|
||||
}
|
||||
|
||||
# Run the current test case: start the server and if applicable the proxy, run
|
||||
# the client, wait for all processes to finish or time out.
|
||||
#
|
||||
# Inputs:
|
||||
# * $NAME: test case name
|
||||
# * $CLI_CMD, $SRV_CMD, $PXY_CMD: commands to run
|
||||
# * $CLI_OUT, $SRV_OUT, $PXY_OUT: files to contain client/server/proxy logs
|
||||
#
|
||||
# Outputs:
|
||||
# * $CLI_EXIT: client return code
|
||||
# * $SRV_RET: server return code
|
||||
do_run_test_once() {
|
||||
# run the commands
|
||||
if [ -n "$PXY_CMD" ]; then
|
||||
printf "# %s\n%s\n" "$NAME" "$PXY_CMD" > $PXY_OUT
|
||||
$PXY_CMD >> $PXY_OUT 2>&1 &
|
||||
PXY_PID=$!
|
||||
wait_proxy_start "$PXY_PORT" "$PXY_PID"
|
||||
fi
|
||||
|
||||
check_osrv_dtls
|
||||
printf '# %s\n%s\n' "$NAME" "$SRV_CMD" > $SRV_OUT
|
||||
provide_input | $SRV_CMD >> $SRV_OUT 2>&1 &
|
||||
SRV_PID=$!
|
||||
wait_server_start "$SRV_PORT" "$SRV_PID"
|
||||
|
||||
printf '# %s\n%s\n' "$NAME" "$CLI_CMD" > $CLI_OUT
|
||||
eval "$CLI_CMD" >> $CLI_OUT 2>&1 &
|
||||
wait_client_done
|
||||
|
||||
sleep 0.05
|
||||
|
||||
# terminate the server (and the proxy)
|
||||
kill $SRV_PID
|
||||
wait $SRV_PID
|
||||
SRV_RET=$?
|
||||
|
||||
if [ -n "$PXY_CMD" ]; then
|
||||
kill $PXY_PID >/dev/null 2>&1
|
||||
wait $PXY_PID
|
||||
fi
|
||||
}
|
||||
|
||||
# Usage: run_test name [-p proxy_cmd] srv_cmd cli_cmd cli_exit [option [...]]
|
||||
# Options: -s pattern pattern that must be present in server output
|
||||
# -c pattern pattern that must be present in client output
|
||||
|
@ -1073,35 +1116,7 @@ run_test() {
|
|||
while [ $TIMES_LEFT -gt 0 ]; do
|
||||
TIMES_LEFT=$(( $TIMES_LEFT - 1 ))
|
||||
|
||||
# run the commands
|
||||
if [ -n "$PXY_CMD" ]; then
|
||||
printf "# %s\n%s\n" "$NAME" "$PXY_CMD" > $PXY_OUT
|
||||
$PXY_CMD >> $PXY_OUT 2>&1 &
|
||||
PXY_PID=$!
|
||||
wait_proxy_start "$PXY_PORT" "$PXY_PID"
|
||||
fi
|
||||
|
||||
check_osrv_dtls
|
||||
printf '# %s\n%s\n' "$NAME" "$SRV_CMD" > $SRV_OUT
|
||||
provide_input | $SRV_CMD >> $SRV_OUT 2>&1 &
|
||||
SRV_PID=$!
|
||||
wait_server_start "$SRV_PORT" "$SRV_PID"
|
||||
|
||||
printf '# %s\n%s\n' "$NAME" "$CLI_CMD" > $CLI_OUT
|
||||
eval "$CLI_CMD" >> $CLI_OUT 2>&1 &
|
||||
wait_client_done
|
||||
|
||||
sleep 0.05
|
||||
|
||||
# terminate the server (and the proxy)
|
||||
kill $SRV_PID
|
||||
wait $SRV_PID
|
||||
SRV_RET=$?
|
||||
|
||||
if [ -n "$PXY_CMD" ]; then
|
||||
kill $PXY_PID >/dev/null 2>&1
|
||||
wait $PXY_PID
|
||||
fi
|
||||
do_run_test_once
|
||||
|
||||
# retry only on timeouts
|
||||
if grep '===CLIENT_TIMEOUT===' $CLI_OUT >/dev/null; then
|
||||
|
|
Loading…
Reference in a new issue