diff --git a/daemon/test/test.sh b/daemon/test/test.sh index 89de055f4..a1e5f88f6 100755 --- a/daemon/test/test.sh +++ b/daemon/test/test.sh @@ -1,4 +1,4 @@ -#! /bin/sh -ex +#! /bin/sh -e # We steal the test-cli scripts. cd test-cli @@ -12,6 +12,16 @@ DIR2=/tmp/lightning.$$.2 REDIR1="$DIR1/output" REDIR2="$DIR2/output" +FGREP="fgrep -q" + +if [ x"$1" = x"--verbose" ]; then + shift + set -x + FGREP="fgrep" +else + # Suppress command output. + exec >/dev/null +fi if [ x"$1" = x"--valgrind" ]; then PREFIX1="valgrind --vgdb-error=1" @@ -41,13 +51,13 @@ check_status() them_fee=$5 them_htlcs="$6" - if $LCLI1 getpeers | tr -s '\012\011 ' ' ' | fgrep -q '"channel" : { "us" : { "pay" : '$us_pay', "fee" : '$us_fee', "htlcs" : [ '"$us_htlcs"'] }, "them" : { "pay" : '$them_pay', "fee" : '$them_fee', "htlcs" : [ '"$them_htlcs"'] } }'; then :; else + if $LCLI1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"channel" : { "us" : { "pay" : '$us_pay', "fee" : '$us_fee', "htlcs" : [ '"$us_htlcs"'] }, "them" : { "pay" : '$them_pay', "fee" : '$them_fee', "htlcs" : [ '"$them_htlcs"'] } }'; then :; else echo Cannot find peer1: '"channel" : { "us" : { "pay" : '$us_pay', "fee" : '$us_fee', "htlcs" : [ '"$us_htlcs"'] }, "them" : { "pay" : '$them_pay', "fee" : '$them_fee', "htlcs" : [ '"$them_htlcs"'] } }' >&2 $LCLI1 getpeers | tr -s '\012\011 ' ' ' >&2 return 1 fi - if $LCLI2 getpeers | tr -s '\012\011 ' ' ' | fgrep -q '"channel" : { "us" : { "pay" : '$them_pay', "fee" : '$them_fee', "htlcs" : [ '"$them_htlcs"'] }, "them" : { "pay" : '$us_pay', "fee" : '$us_fee', "htlcs" : [ '"$us_htlcs"'] } }'; then :; else + if $LCLI2 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"channel" : { "us" : { "pay" : '$them_pay', "fee" : '$them_fee', "htlcs" : [ '"$them_htlcs"'] }, "them" : { "pay" : '$us_pay', "fee" : '$us_fee', "htlcs" : [ '"$us_htlcs"'] } }'; then :; else echo Cannot find peer2: '"channel" : { "us" : { "pay" : '$them_pay', "fee" : '$them_fee', "htlcs" : [ '"$them_htlcs"'] }, "them" : { "pay" : '$us_pay', "fee" : '$us_fee', "htlcs" : [ '"$us_htlcs"'] } }' >&2 $LCLI2 getpeers | tr -s '\012\011 ' ' ' >&2 return 1 @@ -80,7 +90,7 @@ $PREFIX1 ../daemon/lightningd --log-level=debug --bitcoind-poll=1 --min-expiry=9 $PREFIX2 ../daemon/lightningd --log-level=debug --bitcoind-poll=1 --min-expiry=900 --lightning-dir=$DIR2 > $REDIR2 & i=0 -while ! $LCLI1 getlog | grep Hello; do +while ! $LCLI1 getlog 2>/dev/null | $FGREP Hello; do sleep 1 i=$(($i + 1)) if [ $i -gt 10 ]; then @@ -89,7 +99,7 @@ while ! $LCLI1 getlog | grep Hello; do fi done -while ! $LCLI2 getlog | grep 'listener on port'; do +while ! $LCLI2 getlog 2>/dev/null | $FGREP 'listener on port'; do sleep 1 i=$(($i + 1)) if [ $i -gt 10 ]; then @@ -107,8 +117,8 @@ $LCLI1 connect localhost $PORT2 999999 sleep 2 # Expect them to be waiting for anchor. -$LCLI1 getpeers | grep STATE_OPEN_WAITING_OURANCHOR -$LCLI2 getpeers | grep STATE_OPEN_WAITING_THEIRANCHOR +$LCLI1 getpeers | $FGREP STATE_OPEN_WAITING_OURANCHOR +$LCLI2 getpeers | $FGREP STATE_OPEN_WAITING_THEIRANCHOR if [ "x$1" = x"--timeout-anchor" ]; then # Anchor gets 1 commit. @@ -120,16 +130,16 @@ if [ "x$1" = x"--timeout-anchor" ]; then $LCLI1 dev-mocktime $TIME # This will crash immediately - if $LCLI2 dev-mocktime $TIME >&2; then + if $LCLI2 dev-mocktime $TIME 2> /dev/null; then echo Node2 did not crash >&2 exit 1 fi - fgrep 'Entered error state STATE_ERR_ANCHOR_TIMEOUT' $DIR2/crash.log + $FGREP 'Entered error state STATE_ERR_ANCHOR_TIMEOUT' $DIR2/crash.log sleep 1 # It should send out commit tx. - $LCLI1 getpeers | fgrep -w STATE_CLOSE_WAIT_CLOSE_OURCOMMIT + $LCLI1 getpeers | $FGREP -w STATE_CLOSE_WAIT_CLOSE_OURCOMMIT # Generate a block (should include commit tx) check_tx_spend @@ -149,7 +159,7 @@ if [ "x$1" = x"--timeout-anchor" ]; then $LCLI1 dev-mocktime $TIME sleep 1 - $LCLI1 getpeers | fgrep -w STATE_CLOSE_WAIT_CLOSE_SPENDOURS + $LCLI1 getpeers | $FGREP -w STATE_CLOSE_WAIT_CLOSE_SPENDOURS # Now it should have spent the commit tx. check_tx_spend @@ -161,7 +171,7 @@ if [ "x$1" = x"--timeout-anchor" ]; then sleep 1 # Considers it all done now. - $LCLI1 getpeers | tr -s '\012\011 ' ' ' | fgrep '"peers" : [ ]' + $LCLI1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]' $LCLI1 stop all_ok @@ -174,8 +184,8 @@ $CLI generate 2 # They poll every second, so give them time to process. sleep 2 -$LCLI1 getpeers | grep STATE_NORMAL_HIGHPRIO -$LCLI2 getpeers | grep STATE_NORMAL_LOWPRIO +$LCLI1 getpeers | $FGREP STATE_NORMAL_HIGHPRIO +$LCLI2 getpeers | $FGREP STATE_NORMAL_LOWPRIO check_status 949999000 50000000 "" 0 0 "" @@ -224,8 +234,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"' +$LCLI1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' +$LCLI2 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' # Give it 99 blocks. $CLI generate 99 @@ -234,8 +244,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"' +$LCLI1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' +$LCLI2 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"STATE_CLOSE_WAIT_CLOSE"' # Now the final one. $CLI generate 1 @@ -244,8 +254,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" : [ ]' +$LCLI1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]' +$LCLI2 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]' $LCLI1 stop $LCLI2 stop