mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-23 17:51:39 +00:00
fail tests and fix
This commit is contained in:
@ -24,13 +24,13 @@ function kill_procs(){
|
||||
function send_txs(){
|
||||
# send a bunch of txs over a few blocks
|
||||
echo "Sending txs"
|
||||
# for i in `seq 1 5`; do
|
||||
# for j in `seq 1 100`; do
|
||||
for i in `seq 1 5`; do
|
||||
for j in `seq 1 100`; do
|
||||
tx=`head -c 8 /dev/urandom | hexdump -ve '1/1 "%.2X"'`
|
||||
curl -s 127.0.0.1:46657/broadcast_tx_async?tx=\"$tx\" &> /dev/null
|
||||
# done
|
||||
done
|
||||
sleep 1
|
||||
# done
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
104
test/persist/test2.sh
Normal file
104
test/persist/test2.sh
Normal file
@ -0,0 +1,104 @@
|
||||
#! /bin/bash
|
||||
|
||||
|
||||
export TMROOT=$HOME/.tendermint_persist
|
||||
|
||||
rm -rf $TMROOT
|
||||
tendermint init
|
||||
|
||||
function start_procs(){
|
||||
name=$1
|
||||
indexToFail=$2
|
||||
echo "Starting persistent dummy and tendermint"
|
||||
dummy --persist $TMROOT/dummy &> "dummy_${name}.log" &
|
||||
PID_DUMMY=$!
|
||||
if [[ "$indexToFail" == "" ]]; then
|
||||
# run in background, dont fail
|
||||
tendermint node &> tendermint_${name}.log &
|
||||
PID_TENDERMINT=$!
|
||||
else
|
||||
# run in foreground, fail
|
||||
FAIL_TEST_INDEX=$indexToFail tendermint node &> tendermint_${name}.log
|
||||
PID_TENDERMINT=$!
|
||||
fi
|
||||
}
|
||||
|
||||
function kill_procs(){
|
||||
kill -9 $PID_DUMMY $PID_TENDERMINT
|
||||
wait $PID_DUMMY
|
||||
wait $PID_TENDERMINT
|
||||
}
|
||||
|
||||
|
||||
# wait till node is up, send txs
|
||||
function send_txs(){
|
||||
addr="127.0.0.1:46657"
|
||||
curl -s $addr/status > /dev/null
|
||||
ERR=$?
|
||||
while [ "$ERR" != 0 ]; do
|
||||
sleep 1
|
||||
curl -s $addr/status > /dev/null
|
||||
ERR=$?
|
||||
done
|
||||
|
||||
# send a bunch of txs over a few blocks
|
||||
echo "Node is up, sending txs"
|
||||
for i in `seq 1 5`; do
|
||||
for j in `seq 1 100`; do
|
||||
tx=`head -c 8 /dev/urandom | hexdump -ve '1/1 "%.2X"'`
|
||||
curl -s $addr/broadcast_tx_async?tx=\"$tx\" &> /dev/null
|
||||
done
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
failsStart=0
|
||||
fails=`grep -r "fail.Fail" --include \*.go . | wc -l`
|
||||
failsEnd=$(($fails-1))
|
||||
|
||||
for failIndex in `seq $failsStart $failsEnd`; do
|
||||
echo ""
|
||||
echo "* Test FailIndex $failIndex"
|
||||
# test failure at failIndex
|
||||
|
||||
send_txs &
|
||||
start_procs 1 $failIndex
|
||||
|
||||
# tendermint should fail when it hits the fail index
|
||||
kill -9 $PID_DUMMY
|
||||
wait $PID_DUMMY
|
||||
|
||||
start_procs 2
|
||||
|
||||
# wait for node to handshake and make a new block
|
||||
addr="localhost:46657"
|
||||
curl -s $addr/status > /dev/null
|
||||
ERR=$?
|
||||
i=0
|
||||
while [ "$ERR" != 0 ]; do
|
||||
sleep 1
|
||||
curl -s $addr/status > /dev/null
|
||||
ERR=$?
|
||||
i=$(($i + 1))
|
||||
if [[ $i == 10 ]]; then
|
||||
echo "Timed out waiting for tendermint to start"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# wait for a new block
|
||||
h1=`curl -s $addr/status | jq .result[1].latest_block_height`
|
||||
h2=$h1
|
||||
while [ "$h2" == "$h1" ]; do
|
||||
sleep 1
|
||||
h2=`curl -s $addr/status | jq .result[1].latest_block_height`
|
||||
done
|
||||
|
||||
kill_procs
|
||||
|
||||
echo "* Passed Test for FailIndex $failIndex"
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "Passed Test: Persistence"
|
Reference in New Issue
Block a user