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
|
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 [...]]
|
# 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
|
# Options: -s pattern pattern that must be present in server output
|
||||||
# -c pattern pattern that must be present in client output
|
# -c pattern pattern that must be present in client output
|
||||||
|
@ -1073,35 +1116,7 @@ run_test() {
|
||||||
while [ $TIMES_LEFT -gt 0 ]; do
|
while [ $TIMES_LEFT -gt 0 ]; do
|
||||||
TIMES_LEFT=$(( $TIMES_LEFT - 1 ))
|
TIMES_LEFT=$(( $TIMES_LEFT - 1 ))
|
||||||
|
|
||||||
# run the commands
|
do_run_test_once
|
||||||
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
|
|
||||||
|
|
||||||
# retry only on timeouts
|
# retry only on timeouts
|
||||||
if grep '===CLIENT_TIMEOUT===' $CLI_OUT >/dev/null; then
|
if grep '===CLIENT_TIMEOUT===' $CLI_OUT >/dev/null; then
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue