scripts/tls13.test: retries (up to 10) for early data scenarios, to mitigate race noted in #4918 .

pull/4944/head
Daniel Pouzzner 2022-03-11 08:18:14 -06:00
parent 7602eef98f
commit 64953299cf
1 changed files with 82 additions and 52 deletions

View File

@ -13,6 +13,9 @@ if [ "${AM_BWRAPPED-}" != "yes" ]; then
unset AM_BWRAPPED unset AM_BWRAPPED
fi fi
# retries to mitigate race on early data:
early_data_try_max=10
# getting unique port is modeled after resume.test script # getting unique port is modeled after resume.test script
# need a unique port since may run the same time as testsuite # need a unique port since may run the same time as testsuite
# use server port zero hack to get one # use server port zero hack to get one
@ -244,6 +247,10 @@ if [ $? -eq 0 ]; then
fi fi
if [ "$early_data" = "yes" ]; then if [ "$early_data" = "yes" ]; then
early_data_try_num=1
while :; do
echo -e "\n\nTLS v1.3 Early Data - session ticket" echo -e "\n\nTLS v1.3 Early Data - session ticket"
port=0 port=0
(./examples/server/server -v 4 -r -0 -R "$ready_file" -p $port 2>&1 | \ (./examples/server/server -v 4 -r -0 -R "$ready_file" -p $port 2>&1 | \
@ -268,16 +275,29 @@ if [ "$early_data" = "yes" ]; then
fi fi
if [ $RESULT -ne 0 ]; then if [ $RESULT -ne 0 ]; then
echo -e "\n\nIssue with TLS v1.3 Early Data - session ticket" echo -e "\n\nIssue with TLS v1.3 Early Data - session ticket"
if [ $early_data_try_num -lt $early_data_try_max ]; then
echo -e "retry #${early_data_try_num}...\n"
: $((++early_data_try_num))
continue
fi
do_cleanup do_cleanup
exit 1 exit 1
fi fi
do_cleanup do_cleanup
break
done
echo "" echo ""
fi fi
if [ "$early_data" = "yes" -a "$psk" = "yes" ]; then if [ "$early_data" = "yes" -a "$psk" = "yes" ]; then
echo -e "\n\nTLS v1.3 Early Data - PSK" echo -e "\n\nTLS v1.3 Early Data - PSK"
port=0 port=0
early_data_try_num=1
while :; do
(./examples/server/server -v 4 -s -0 -R "$ready_file" -p $port 2>&1 | \ (./examples/server/server -v 4 -s -0 -R "$ready_file" -p $port 2>&1 | \
tee "$server_out_file") & tee "$server_out_file") &
server_pid=$! server_pid=$!
@ -306,9 +326,19 @@ if [ "$early_data" = "yes" -a "$psk" = "yes" ]; then
fi fi
if [ $RESULT -ne 0 ]; then if [ $RESULT -ne 0 ]; then
echo -e "\n\nIssue with TLS v1.3 Early Data - PSK" echo -e "\n\nIssue with TLS v1.3 Early Data - PSK"
if [ $early_data_try_num -lt $early_data_try_max ]; then
echo -e "retry #${early_data_try_num}...\n"
: $((++early_data_try_num))
continue
fi
do_cleanup do_cleanup
exit 1 exit 1
fi fi
break
done
else else
echo "Early Data not available" echo "Early Data not available"
fi fi