test-network.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #! /bin/sh
  2. ECHO_N="/bin/echo -n"
  3. until [ -z $1 ]
  4. do
  5. case $1 in
  6. --chutney-path)
  7. export CHUTNEY_PATH="$2"
  8. shift
  9. ;;
  10. --tor-path)
  11. export TOR_DIR="$2"
  12. shift
  13. ;;
  14. --flavo?r|--network-flavo?r)
  15. export NETWORK_FLAVOUR="$2"
  16. shift
  17. ;;
  18. --delay|--sleep|--bootstrap-time|--time)
  19. export BOOTSTRAP_TIME="$2"
  20. shift
  21. ;;
  22. *)
  23. echo "Sorry, I don't know what to do with '$1'."
  24. exit 2
  25. ;;
  26. esac
  27. shift
  28. done
  29. TOR_DIR="${TOR_DIR:-$PWD}"
  30. NETWORK_FLAVOUR=${NETWORK_FLAVOUR:-basic}
  31. CHUTNEY_NETWORK=networks/$NETWORK_FLAVOUR
  32. myname=$(basename $0)
  33. [ -d "$CHUTNEY_PATH" ] && [ -x "$CHUTNEY_PATH/chutney" ] || {
  34. echo "$myname: missing 'chutney' in CHUTNEY_PATH ($CHUTNEY_PATH)"
  35. exit 1
  36. }
  37. cd "$CHUTNEY_PATH"
  38. # For picking up the right tor binaries.
  39. PATH="$TOR_DIR/src/or:$TOR_DIR/src/tools:$PATH"
  40. ./tools/bootstrap-network.sh $NETWORK_FLAVOUR || exit 2
  41. # Sleep some, waiting for the network to bootstrap.
  42. # TODO: Add chutney command 'bootstrap-status' and use that instead.
  43. BOOTSTRAP_TIME=${BOOTSTRAP_TIME:-18}
  44. $ECHO_N "$myname: sleeping for $BOOTSTRAP_TIME seconds"
  45. n=$BOOTSTRAP_TIME; while [ $n -gt 0 ]; do
  46. sleep 1; n=$(expr $n - 1); $ECHO_N .
  47. done; echo ""
  48. ./chutney verify $CHUTNEY_NETWORK
  49. VERIFY_EXIT_STATUS=$?
  50. # work around a bug/feature in make -j2 (or more)
  51. # where make hangs if any child processes are still alive
  52. ./chutney stop $CHUTNEY_NETWORK
  53. exit $VERIFY_EXIT_STATUS