Merge branch 'mbedtls-1.3' into mbedtls-1.3-restricted

* mbedtls-1.3:
  compat.sh: use wait_server_start
  wait_server_start: minor efficiency improvement
This commit is contained in:
Manuel Pégourié-Gonnard 2017-12-21 11:15:28 +01:00
commit b76115a90a
2 changed files with 42 additions and 21 deletions

View file

@ -764,6 +764,28 @@ has_mem_err() {
fi fi
} }
# Wait for process $2 to be listening on port $1
if type lsof >/dev/null 2>/dev/null; then
wait_server_start() {
START_TIME=$(date +%s)
while ! lsof -a -n -b -i "TCP:$1" -p "$2" >/dev/null 2>/dev/null; do
if [ $(( $(date +%s) - $START_TIME )) -gt $DOG_DELAY ]; then
echo "SERVERSTART TIMEOUT"
echo "SERVERSTART TIMEOUT" >> $SRV_OUT
break
fi
# Linux and *BSD support decimal arguments to sleep. On other
# OSes this may be a tight loop.
sleep 0.1 2>/dev/null || true
done
}
else
wait_server_start() {
sleep 1
}
fi
# start_server <name> # start_server <name>
# also saves name and command # also saves name and command
start_server() { start_server() {
@ -792,7 +814,7 @@ start_server() {
$SERVER_CMD >> $SRV_OUT 2>&1 & $SERVER_CMD >> $SRV_OUT 2>&1 &
PROCESS_ID=$! PROCESS_ID=$!
sleep 1 wait_server_start "$PORT" "$PROCESS_ID"
} }
# terminate the running server # terminate the running server

View file

@ -171,27 +171,26 @@ has_mem_err() {
fi fi
} }
# wait for server to start: two versions depending on lsof availability # Wait for process $2 to be listening on port $1
wait_server_start() { if type lsof >/dev/null 2>/dev/null; then
if which lsof >/dev/null 2>&1; then wait_server_start() {
START_TIME=$( date +%s ) START_TIME=$(date +%s)
DONE=0 while ! lsof -a -n -b -i "TCP:$1" -p "$2" >/dev/null 2>/dev/null; do
if [ $(( $(date +%s) - $START_TIME )) -gt $DOG_DELAY ]; then
# make a tight loop, server usually takes less than 1 sec to start echo "SERVERSTART TIMEOUT"
while [ $DONE -eq 0 ]; do echo "SERVERSTART TIMEOUT" >> $SRV_OUT
if lsof -nbi TCP:"$PORT" 2>/dev/null | grep LISTEN >/dev/null break
then fi
DONE=1 # Linux and *BSD support decimal arguments to sleep. On other
elif [ $(( $( date +%s ) - $START_TIME )) -gt $DOG_DELAY ]; then # OSes this may be a tight loop.
echo "SERVERSTART TIMEOUT" sleep 0.1 2>/dev/null || true
echo "SERVERSTART TIMEOUT" >> $SRV_OUT
DONE=1
fi
done done
else }
else
wait_server_start() {
sleep "$START_DELAY" sleep "$START_DELAY"
fi }
} fi
# wait for client to terminate and set CLI_EXIT # wait for client to terminate and set CLI_EXIT
# must be called right after starting the client # must be called right after starting the client
@ -254,7 +253,7 @@ run_test() {
echo "$SRV_CMD" > $SRV_OUT echo "$SRV_CMD" > $SRV_OUT
$SRV_CMD >> $SRV_OUT 2>&1 & $SRV_CMD >> $SRV_OUT 2>&1 &
SRV_PID=$! SRV_PID=$!
wait_server_start wait_server_start "$PORT" "$SRV_PID"
echo "$CLI_CMD" > $CLI_OUT echo "$CLI_CMD" > $CLI_OUT
eval "$CLI_CMD" >> $CLI_OUT 2>&1 & eval "$CLI_CMD" >> $CLI_OUT 2>&1 &