From 45fa89e1348445380f61081509f25de3222e7e15 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Sun, 24 Apr 2016 19:34:13 +0930 Subject: [PATCH] daemon/test/test.sh: neaten state checks. Better debugging when things go wrong. Signed-off-by: Rusty Russell --- daemon/test/test.sh | 46 ++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/daemon/test/test.sh b/daemon/test/test.sh index c0415f4f6..fd86f4643 100755 --- a/daemon/test/test.sh +++ b/daemon/test/test.sh @@ -139,6 +139,26 @@ check_tx_spend() fi } +check_peerstate() +{ + if $1 getpeers | $FGREP -w $2; then : + else + echo "$1" not in state "$2": >&2 + $1 getpeers >&2 + exit 1 + fi +} + +check_no_peers() +{ + if $1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]'; then : + else + echo "$1" still has peers: >&2 + $1 getpeers >&2 + exit 1 + fi +} + all_ok() { # Look for valgrind errors. @@ -199,8 +219,8 @@ lcli1 connect localhost $PORT2 $TX sleep 5 # Expect them to be waiting for anchor. -lcli1 getpeers | $FGREP STATE_OPEN_WAITING_OURANCHOR -lcli2 getpeers | $FGREP STATE_OPEN_WAITING_THEIRANCHOR +check_peerstate lcli1 STATE_OPEN_WAITING_OURANCHOR +check_peerstate lcli2 STATE_OPEN_WAITING_THEIRANCHOR if [ -n "$TIMEOUT_ANCHOR" ]; then # Anchor gets 1 commit. @@ -221,7 +241,7 @@ if [ -n "$TIMEOUT_ANCHOR" ]; then sleep 2 # It should send out commit tx. - lcli1 getpeers | $FGREP -w STATE_CLOSE_WAIT_OURCOMMIT + check_peerstate lcli1 STATE_CLOSE_WAIT_OURCOMMIT # Generate a block (should include commit tx) check_tx_spend @@ -247,7 +267,7 @@ if [ -n "$TIMEOUT_ANCHOR" ]; then lcli1 dev-mocktime $TIME sleep 2 - lcli1 getpeers | $FGREP -w STATE_CLOSE_WAIT_SPENDOURS + check_peerstate lcli1 STATE_CLOSE_WAIT_SPENDOURS # Now it should have spent the commit tx. check_tx_spend @@ -259,7 +279,7 @@ if [ -n "$TIMEOUT_ANCHOR" ]; then sleep 2 # Considers it all done now. - lcli1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]' + check_no_peers lcli1 lcli1 stop all_ok @@ -272,8 +292,8 @@ $CLI generate 2 # They poll every second, so give them time to process. sleep 2 -lcli1 getpeers | $FGREP STATE_NORMAL -lcli2 getpeers | $FGREP STATE_NORMAL +check_peerstate lcli1 STATE_NORMAL +check_peerstate lcli2 STATE_NORMAL A_AMOUNT=$(($AMOUNT - $NO_HTLCS_FEE)) A_FEE=$NO_HTLCS_FEE @@ -370,8 +390,8 @@ lcli1 close $ID2 sleep 1 # They should be waiting for close. -lcli1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' -lcli2 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' +check_peerstate lcli1 STATE_CLOSE_WAIT_CLOSE +check_peerstate lcli2 STATE_CLOSE_WAIT_CLOSE # Give it 99 blocks. $CLI generate 99 @@ -380,8 +400,8 @@ $CLI generate 99 lcli1 dev-mocktime $(($EXPIRY + 32)) lcli2 dev-mocktime $(($EXPIRY + 32)) sleep 1 -lcli1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' -lcli2 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' +check_peerstate lcli1 STATE_CLOSE_WAIT_CLOSE +check_peerstate lcli2 STATE_CLOSE_WAIT_CLOSE # Now the final one. $CLI generate 1 @@ -390,8 +410,8 @@ lcli1 dev-mocktime $TIME lcli2 dev-mocktime $TIME sleep 1 -lcli1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]' -lcli2 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]' +check_no_peers lcli1 +check_no_peers lcli2 lcli1 stop lcli2 stop