From 19434e285a11bc6d77810645a8701e5ca22239c8 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Thu, 15 Sep 2016 10:13:31 -0700 Subject: [PATCH] Update the resume test to rerun itself with the "-n" option to disable extended master secret if the option is enabled. --- scripts/resume.test | 110 +++++++++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 47 deletions(-) diff --git a/scripts/resume.test b/scripts/resume.test index 337c30a76..6b6ad488e 100755 --- a/scripts/resume.test +++ b/scripts/resume.test @@ -5,6 +5,7 @@ # need a unique resume port since may run the same time as testsuite # use server port zero hack to get one resume_string="reused" +ems_string="Extended\ Master\ Secret" resume_port=0 no_pid=-1 server_pid=$no_pid @@ -41,57 +42,72 @@ do_trap() { exit -1 } +do_test() { + echo -e "\nStarting example server for resume test...\n" + + remove_ready_file + ./examples/server/server -r -R $ready_file -p $resume_port & + server_pid=$! + + while [ ! -s $ready_file -a "$counter" -lt 20 ]; do + echo -e "waiting for ready file..." + sleep 0.1 + counter=$((counter+ 1)) + done + + if test -e $ready_file; then + echo -e "found ready file, starting client..." + else + echo -e "NO ready file ending test..." + do_cleanup + exit 1 + fi + + # get created port 0 ephemeral port + resume_port=`cat $ready_file` + + capture_out=$(./examples/client/client $1 -r -p $resume_port 2>&1) + client_result=$? + + if [ $client_result != 0 ] + then + echo -e "client failed!" + do_cleanup + exit 1 + fi + + wait $server_pid + server_result=$? + remove_ready_file + + if [ $server_result != 0 ] + then + echo -e "client failed!" + exit 1 + fi + + case "$capture_out" in + *$resume_string*) + echo "resumed session" ;; + *) + echo "did NOT resume session as expected" + exit 1 + ;; + esac +} + trap do_trap INT TERM -echo -e "\nStarting example server for resume test...\n" +do_test -remove_ready_file -./examples/server/server -r -R $ready_file -p $resume_port & -server_pid=$! - -while [ ! -s $ready_file -a "$counter" -lt 20 ]; do - echo -e "waiting for ready file..." - sleep 0.1 - counter=$((counter+ 1)) -done - -if test -e $ready_file; then - echo -e "found ready file, starting client..." -else - echo -e "NO ready file ending test..." - do_cleanup - exit 1 -fi - -# get created port 0 ephemeral port -resume_port=`cat $ready_file` - -capture_out=$(./examples/client/client -r -p $resume_port 2>&1) -client_result=$? - -if [ $client_result != 0 ] -then - echo -e "client failed!" - do_cleanup - exit 1 -fi - -wait $server_pid -server_result=$? -remove_ready_file - -if [ $server_result != 0 ] -then - echo -e "client failed!" - exit 1 -fi - -case "$capture_out" in -*$resume_string*) - echo "resumed session" ;; +# Check the client for the extended master secret disable option. If +# present we need to run the test twice. +options_check=`./examples/client/client -?` +case "$options_check" in +*$ems_string*) + echo -e "\nRepeating resume test without extended master secret..." + do_test -n ;; *) - echo "did NOT resume session as expected" - exit 1 ;; esac