unit-tests.sh 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/sh
  2. # Exit on errors
  3. set -e
  4. # Verbose mode
  5. set -v
  6. # Output is prefixed with the name of the script
  7. myname=$(basename "$0")
  8. # Respect the user's $PYTHON
  9. PYTHON=${PYTHON:-python}
  10. echo "$myname: using python '$PYTHON'"
  11. echo "$myname: finding chutney directory"
  12. TEST_DIR=$(dirname "$0")
  13. CHUTNEY_DIR=$(dirname "$TEST_DIR")
  14. echo "$myname: changing to chutney directory"
  15. cd "$CHUTNEY_DIR"
  16. echo "$myname: running Debug.py tests"
  17. LOG_FILE=$(mktemp)
  18. export LOG_FILE
  19. test -n "$LOG_FILE"
  20. unset CHUTNEY_DEBUG
  21. export CHUTNEY_DEBUG
  22. $PYTHON lib/chutney/Debug.py | tee "$LOG_FILE"
  23. LOG_FILE_LINES=$(wc -l < "$LOG_FILE")
  24. test "$LOG_FILE_LINES" -eq 1
  25. LOG_FILE=$(mktemp)
  26. export LOG_FILE
  27. test -n "$LOG_FILE"
  28. export CHUTNEY_DEBUG=1
  29. $PYTHON lib/chutney/Debug.py | tee "$LOG_FILE"
  30. LOG_FILE_LINES=$(wc -l < "$LOG_FILE")
  31. test "$LOG_FILE_LINES" -eq 2
  32. unset CHUTNEY_DEBUG
  33. export CHUTNEY_DEBUG
  34. echo "$myname: running Templating.py tests"
  35. LOG_FILE=$(mktemp)
  36. export LOG_FILE
  37. test -n "$LOG_FILE"
  38. $PYTHON lib/chutney/Templating.py torrc_templates/common.i | tee "$LOG_FILE"
  39. grep -q owning_controller_process "$LOG_FILE"
  40. grep -q connlimit "$LOG_FILE"
  41. grep -q controlport "$LOG_FILE"
  42. grep -q nick "$LOG_FILE"
  43. grep -q authorities "$LOG_FILE"
  44. grep -q dir "$LOG_FILE"
  45. echo "$myname: running Traffic.py tests"
  46. LOG_FILE=$(mktemp)
  47. export LOG_FILE
  48. test -n "$LOG_FILE"
  49. # Choose an arbitrary port
  50. PYTHONPATH=$PYTHONPATH:lib $PYTHON lib/chutney/Traffic.py 9999 \
  51. | tee "$LOG_FILE"
  52. # Traffic.py produces output with a single newline. But we don't want to get
  53. # too picky about the details: allow an extra line and a few extra chars.
  54. LOG_FILE_LINES=$(wc -l < "$LOG_FILE")
  55. test "$LOG_FILE_LINES" -le 2
  56. LOG_FILE_CHARS=$(wc -c < "$LOG_FILE")
  57. test "$LOG_FILE_CHARS" -le 4
  58. # We don't test TorNet.py: it's integration tested with tor using the
  59. # chutney/chutney script