Browse Source

Merge pull request #904 from tendermint/fix-atomic-broadcast-test

test/p2p/atomic_broadcast: wait for node heights before checking app hash
pull/807/head
Ethan Buchman 7 years ago
committed by GitHub
parent
commit
a393cf4109
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 54 additions and 40 deletions
  1. +54
    -40
      test/p2p/atomic_broadcast/test.sh

+ 54
- 40
test/p2p/atomic_broadcast/test.sh View File

@ -14,46 +14,60 @@ N=$1
echo ""
# run the test on each of them
for i in $(seq 1 "$N"); do
addr=$(test/p2p/ip.sh "$i"):46657
# current state
HASH1=$(curl -s "$addr/status" | jq .result.latest_app_hash)
# - send a tx
TX=aadeadbeefbeefbeef0$i
echo "Broadcast Tx $TX"
curl -s "$addr/broadcast_tx_commit?tx=0x$TX"
echo ""
# we need to wait another block to get the new app_hash
h1=$(curl -s "$addr/status" | jq .result.latest_block_height)
h2=$h1
while [ "$h2" == "$h1" ]; do
sleep 1
h2=$(curl -s "$addr/status" | jq .result.latest_block_height)
done
# check that hash was updated
HASH2=$(curl -s "$addr/status" | jq .result.latest_app_hash)
if [[ "$HASH1" == "$HASH2" ]]; then
echo "Expected state hash to update from $HASH1. Got $HASH2"
exit 1
fi
# check we get the same new hash on all other nodes
for j in $(seq 1 "$N"); do
if [[ "$i" != "$j" ]]; then
addrJ=$(test/p2p/ip.sh "$j"):46657
HASH3=$(curl -s "$addrJ/status" | jq .result.latest_app_hash)
if [[ "$HASH2" != "$HASH3" ]]; then
echo "App hash for node $j doesn't match. Got $HASH3, expected $HASH2"
exit 1
fi
fi
done
echo "All nodes are up to date"
addr=$(test/p2p/ip.sh "$i"):46657
# current state
HASH1=$(curl -s "$addr/status" | jq .result.latest_app_hash)
# - send a tx
TX=aadeadbeefbeefbeef0$i
echo "Broadcast Tx $TX"
curl -s "$addr/broadcast_tx_commit?tx=0x$TX"
echo ""
# we need to wait another block to get the new app_hash
h1=$(curl -s "$addr/status" | jq .result.latest_block_height)
h2=$h1
while [ "$h2" == "$h1" ]; do
sleep 1
h2=$(curl -s "$addr/status" | jq .result.latest_block_height)
done
# wait for all other peers to get to this height
minHeight=$h2
for j in $(seq 1 "$N"); do
if [[ "$i" != "$j" ]]; then
addrJ=$(test/p2p/ip.sh "$j"):46657
h=$(curl -s "$addrJ/status" | jq .result.latest_block_height)
while [ "$h" -lt "$minHeight" ]; do
sleep 1
h=$(curl -s "$addrJ/status" | jq .result.latest_block_height)
done
fi
done
# check that hash was updated
HASH2=$(curl -s "$addr/status" | jq .result.latest_app_hash)
if [[ "$HASH1" == "$HASH2" ]]; then
echo "Expected state hash to update from $HASH1. Got $HASH2"
exit 1
fi
# check we get the same new hash on all other nodes
for j in $(seq 1 "$N"); do
if [[ "$i" != "$j" ]]; then
addrJ=$(test/p2p/ip.sh "$j"):46657
HASH3=$(curl -s "$addrJ/status" | jq .result.latest_app_hash)
if [[ "$HASH2" != "$HASH3" ]]; then
echo "App hash for node $j doesn't match. Got $HASH3, expected $HASH2"
exit 1
fi
fi
done
echo "All nodes are up to date"
done
echo ""


Loading…
Cancel
Save