From d8267a76748350fcd5244e6620eb14ca04f0eb90 Mon Sep 17 00:00:00 2001 From: Benjamin Canou Date: Thu, 28 Sep 2017 17:40:17 +0200 Subject: [PATCH] Tests: increase timeouts in case the CI is too slow --- test/test_multinode.sh | 47 ++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/test/test_multinode.sh b/test/test_multinode.sh index f3037dd29..a7cee0dbc 100755 --- a/test/test_multinode.sh +++ b/test/test_multinode.sh @@ -32,8 +32,9 @@ assert_propagation_level() { level=$1 printf "\n\nAsserting all nodes have reached level %s\n" "$level" for client in "${client_instances[@]}"; do - $client rpc call /blocks/head/proto/context/level \ - | assert_in_output "\"level\": $level" + ( $client rpc call /blocks/head/proto/context/level \ + | assert_in_output "\"level\": $level" ) \ + || exit 2 done } @@ -46,39 +47,53 @@ done printf "\n\n" +retry() { + local timeout=$1 + local attempts=$2 + shift 2 + sleep $timeout + while ! ( "$@" ) ; do + echo + echo "Will retry after $timeout seconds..." + echo + sleep $timeout + attempts=$(($attempts-1)) + if [ "$attempts" -eq 0 ] ; then + echo + echo "Failed after too many retries" 1>&2 + exit 1 + fi + done +} + $client1 mine for bootstrap1 -sleep 5 -assert_propagation_level 2 +retry 2 15 assert_propagation_level 2 $client2 mine for bootstrap2 -sleep 5 -assert_propagation_level 3 +retry 2 15 assert_propagation_level 3 $client3 mine for bootstrap3 -sleep 5 -assert_propagation_level 4 +retry 2 15 assert_propagation_level 4 $client4 mine for bootstrap4 -sleep 5 -assert_propagation_level 5 +retry 2 15 assert_propagation_level 5 endorse_hash=$($client3 endorse for bootstrap3 | extract_operation_hash) transfer_hash=$($client4 transfer 500 from bootstrap1 to bootstrap3 | extract_operation_hash) -sleep 5 -$client4 mine for bootstrap4 -sleep 5 +retry 2 15 $client4 mine for bootstrap4 assert_contains_operation() { hash="$1" printf "Asserting operations list contains '$hash'\n" for client in "${client_instances[@]}"; do - $client rpc call /blocks/head/operations with {} \ - | assert_in_output $hash + ( $client rpc call /blocks/head/operations with {} \ + | assert_in_output $hash ) \ + || exit 2 done } -assert_contains_operation $endorse_hash +retry 2 15 assert_contains_operation $endorse_hash assert_contains_operation $transfer_hash echo