117 lines
3.2 KiB
Bash
117 lines
3.2 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
source test_utils.sh
|
||
|
|
||
|
export LWT_ASYNC_METHOD="none"
|
||
|
|
||
|
node1_rpcs=3000
|
||
|
node1_addr=[::1]:3001
|
||
|
node2_rpcs=3002
|
||
|
node2_addr=[::1]:3003
|
||
|
node3_rpcs=3004
|
||
|
node3_addr=[::1]:3005
|
||
|
node4_rpcs=3006
|
||
|
node4_addr=[::1]:3007
|
||
|
|
||
|
CLIENT_1="$(make_client) -addr [::1] -port $node1_rpcs"
|
||
|
CLIENT_2="$(make_client) -addr [::1] -port $node2_rpcs"
|
||
|
CLIENT_3="$(make_client) -addr [::1] -port $node3_rpcs"
|
||
|
CLIENT_4="$(make_client) -addr [::1] -port $node4_rpcs"
|
||
|
|
||
|
|
||
|
|
||
|
assert_propagation_level() {
|
||
|
level=$1
|
||
|
printf "\n\nAsserting all nodes have reached level %s\n" "$level"
|
||
|
${CLIENT_1} rpc call /blocks/head/proto/context/level \
|
||
|
| assert_in_output "\"level\": $level"
|
||
|
${CLIENT_2} rpc call /blocks/head/proto/context/level \
|
||
|
| assert_in_output "\"level\": $level"
|
||
|
${CLIENT_3} rpc call /blocks/head/proto/context/level \
|
||
|
| assert_in_output "\"level\": $level"
|
||
|
${CLIENT_4} rpc call /blocks/head/proto/context/level \
|
||
|
| assert_in_output "\"level\": $level"
|
||
|
}
|
||
|
|
||
|
start_sandboxed_node --rpc-addr=[::1]:$node1_rpcs --net-addr=$node1_addr --peer=$node2_addr --no-bootstrap-peers
|
||
|
start_sandboxed_node --rpc-addr=[::1]:$node2_rpcs --net-addr=$node2_addr --peer=$node1_addr --no-bootstrap-peers
|
||
|
start_sandboxed_node --rpc-addr=[::1]:$node3_rpcs --net-addr=$node3_addr --peer=$node1_addr --no-bootstrap-peers
|
||
|
start_sandboxed_node --rpc-addr=[::1]:$node4_rpcs --net-addr=$node4_addr --peer=$node1_addr --no-bootstrap-peers
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
printf "\n\n"
|
||
|
|
||
|
activate_alpha [::1] $node1_rpcs
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
printf "\n\nAsserting protocol propagation\n"
|
||
|
|
||
|
${CLIENT_1} rpc call /blocks/head/protocol \
|
||
|
| assert_in_output "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK"
|
||
|
${CLIENT_2} rpc call /blocks/head/protocol \
|
||
|
| assert_in_output "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK"
|
||
|
${CLIENT_3} rpc call /blocks/head/protocol \
|
||
|
| assert_in_output "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK"
|
||
|
${CLIENT_4} rpc call /blocks/head/protocol \
|
||
|
| assert_in_output "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK"
|
||
|
|
||
|
printf "\n\n"
|
||
|
|
||
|
add_bootstrap_identities "${CLIENT_1}"
|
||
|
add_bootstrap_identities "${CLIENT_2}"
|
||
|
add_bootstrap_identities "${CLIENT_3}"
|
||
|
add_bootstrap_identities "${CLIENT_4}"
|
||
|
|
||
|
printf "\n\n"
|
||
|
|
||
|
${CLIENT_1} mine for bootstrap1
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
assert_propagation_level 2
|
||
|
${CLIENT_2} mine for bootstrap2
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
assert_propagation_level 3
|
||
|
${CLIENT_3} mine for bootstrap3
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
assert_propagation_level 4
|
||
|
${CLIENT_4} mine for bootstrap4
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
assert_propagation_level 5
|
||
|
|
||
|
endorse_hash=$(${CLIENT_3} endorse for bootstrap3 | extract_operation_hash)
|
||
|
|
||
|
transfer_hash=$(${CLIENT_4} transfer 500 from bootstrap1 to bootstrap3 | extract_operation_hash)
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
${CLIENT_4} mine for bootstrap4
|
||
|
|
||
|
sleep 3
|
||
|
|
||
|
assert_contains_operation() {
|
||
|
hash="$1"
|
||
|
printf "Asserting operations list contains '$hash'\n"
|
||
|
${CLIENT_1} rpc call /blocks/head/operations with {} \
|
||
|
| assert_in_output $hash
|
||
|
${CLIENT_2} rpc call /blocks/head/operations with {} \
|
||
|
| assert_in_output $hash
|
||
|
${CLIENT_3} rpc call /blocks/head/operations with {} \
|
||
|
| assert_in_output $hash
|
||
|
${CLIENT_4} rpc call /blocks/head/operations with {} \
|
||
|
| assert_in_output $hash
|
||
|
}
|
||
|
|
||
|
assert_contains_operation $endorse_hash
|
||
|
assert_contains_operation $transfer_hash
|
||
|
|
||
|
# printf "\nEnd of test"
|