53 lines
		
	
	
		
			1015 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1015 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								# bash run.sh (testid0 testid1 ...)
							 | 
						||
| 
								 | 
							
								# runs tests tests/testid0.sh tests/testid1.sh ...
							 | 
						||
| 
								 | 
							
								# without arguments, it runs all tests
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								. tests/common.sh
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								TESTS=
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ "$#" -eq 0 ]; then
							 | 
						||
| 
								 | 
							
								  for NAME in tests/??.sh; do
							 | 
						||
| 
								 | 
							
								    i=`basename $NAME .sh`
							 | 
						||
| 
								 | 
							
								    TESTS="$TESTS $i"
							 | 
						||
| 
								 | 
							
								  done
							 | 
						||
| 
								 | 
							
								else
							 | 
						||
| 
								 | 
							
								  TESTS=$@
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ETH=../../ethereum
							 | 
						||
| 
								 | 
							
								DIR="/tmp/eth.test/nodes"
							 | 
						||
| 
								 | 
							
								TIMEOUT=10
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mkdir -p $DIR/js
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo "running tests $TESTS"
							 | 
						||
| 
								 | 
							
								for NAME in $TESTS; do
							 | 
						||
| 
								 | 
							
								  PIDS=
							 | 
						||
| 
								 | 
							
								  CHAIN="tests/$NAME.chain"
							 | 
						||
| 
								 | 
							
								  JSFILE="$DIR/js/$NAME.js"
							 | 
						||
| 
								 | 
							
								  CHAIN_TEST="$DIR/$NAME/chain"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  echo "RUN: test $NAME"
							 | 
						||
| 
								 | 
							
								  cat tests/common.js > $JSFILE
							 | 
						||
| 
								 | 
							
								  . tests/$NAME.sh
							 | 
						||
| 
								 | 
							
								  sleep $TIMEOUT
							 | 
						||
| 
								 | 
							
								  echo "timeout after $TIMEOUT seconds: killing $PIDS"
							 | 
						||
| 
								 | 
							
								  kill $PIDS
							 | 
						||
| 
								 | 
							
								  if [ -r "$CHAIN" ]; then
							 | 
						||
| 
								 | 
							
								    if diff $CHAIN $CHAIN_TEST >/dev/null ; then
							 | 
						||
| 
								 | 
							
								      echo "chain ok: $CHAIN=$CHAIN_TEST"
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      echo "FAIL: chains differ: expected $CHAIN ; got $CHAIN_TEST"
							 | 
						||
| 
								 | 
							
								      continue
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								  ERRORS=$DIR/errors
							 | 
						||
| 
								 | 
							
								  if [ -r "$ERRORS" ]; then
							 | 
						||
| 
								 | 
							
								    echo "FAIL: "
							 | 
						||
| 
								 | 
							
								    cat $ERRORS
							 | 
						||
| 
								 | 
							
								  else
							 | 
						||
| 
								 | 
							
								    echo PASS
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								done
							 |