diff --git a/daemon/test/test.sh b/daemon/test/test.sh index a1e5f88f6..346984107 100755 --- a/daemon/test/test.sh +++ b/daemon/test/test.sh @@ -12,6 +12,8 @@ DIR2=/tmp/lightning.$$.2 REDIR1="$DIR1/output" REDIR2="$DIR2/output" +REDIRERR1="$DIR1/errors" +REDIRERR2="$DIR2/errors" FGREP="fgrep -q" if [ x"$1" = x"--verbose" ]; then @@ -23,19 +25,29 @@ else exec >/dev/null fi -if [ x"$1" = x"--valgrind" ]; then +# Always use valgrind. +PREFIX1="valgrind -q --error-exitcode=7" +PREFIX2="valgrind -q --error-exitcode=7" + +if [ x"$1" = x"--valgrind-vgdb" ]; then PREFIX1="valgrind --vgdb-error=1" PREFIX2="valgrind --vgdb-error=1" REDIR1="/dev/tty" REDIR2="/dev/tty" + REDIRERR1="/dev/tty" + REDIRERR2="/dev/tty" shift elif [ x"$1" = x"--gdb1" ]; then PREFIX1="gdb --args -ex run" REDIR1="/dev/tty" + REDIRERR1="/dev/tty" + REDIRERR2="/dev/tty" shift elif [ x"$1" = x"--gdb2" ]; then PREFIX2="gdb --args -ex run" REDIR2="/dev/tty" + REDIRERR1="/dev/tty" + REDIRERR2="/dev/tty" shift fi @@ -78,16 +90,19 @@ check_tx_spend() all_ok() { + # Look for valgrind errors. + if grep ^== $DIR1/errors; then exit 1; fi + if grep ^== $DIR2/errors; then exit 1; fi scripts/shutdown.sh trap "rm -rf $DIR1 $DIR2" EXIT exit 0 } - -trap "echo Results in $DIR1 and $DIR2" EXIT + +trap "echo Results in $DIR1 and $DIR2 >&2; cat $DIR1/errors $DIR2/errors >&2" EXIT mkdir $DIR1 $DIR2 -$PREFIX1 ../daemon/lightningd --log-level=debug --bitcoind-poll=1 --min-expiry=900 --lightning-dir=$DIR1 > $REDIR1 & -$PREFIX2 ../daemon/lightningd --log-level=debug --bitcoind-poll=1 --min-expiry=900 --lightning-dir=$DIR2 > $REDIR2 & +$PREFIX1 ../daemon/lightningd --log-level=debug --bitcoind-poll=1 --min-expiry=900 --lightning-dir=$DIR1 > $REDIR1 2> $REDIRERR1 & +$PREFIX2 ../daemon/lightningd --log-level=debug --bitcoind-poll=1 --min-expiry=900 --lightning-dir=$DIR2 > $REDIR2 2> $REDIRERR2 & i=0 while ! $LCLI1 getlog 2>/dev/null | $FGREP Hello; do @@ -136,7 +151,7 @@ if [ "x$1" = x"--timeout-anchor" ]; then fi $FGREP 'Entered error state STATE_ERR_ANCHOR_TIMEOUT' $DIR2/crash.log - sleep 1 + sleep 2 # It should send out commit tx. $LCLI1 getpeers | $FGREP -w STATE_CLOSE_WAIT_CLOSE_OURCOMMIT @@ -152,12 +167,12 @@ if [ "x$1" = x"--timeout-anchor" ]; then $CLI generate 1 TIME=$(($TIME + 1)) $LCLI1 dev-mocktime $TIME - sleep 1 + sleep 2 # Sometimes it skips poll because it's busy. Do it again. TIME=$(($TIME + 1)) $LCLI1 dev-mocktime $TIME - sleep 1 + sleep 2 $LCLI1 getpeers | $FGREP -w STATE_CLOSE_WAIT_CLOSE_SPENDOURS @@ -168,7 +183,7 @@ if [ "x$1" = x"--timeout-anchor" ]; then $CLI generate 99 TIME=$(($TIME + 1)) $LCLI1 dev-mocktime $TIME - sleep 1 + sleep 2 # Considers it all done now. $LCLI1 getpeers | tr -s '\012\011 ' ' ' | $FGREP '"peers" : [ ]'