test_practracker.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/sh
  2. umask 077
  3. unset TOR_DISABLE_PRACTRACKER
  4. TMPDIR=""
  5. clean () {
  6. if [ -n "$TMPDIR" ] && [ -d "$TMPDIR" ]; then
  7. rm -rf "$TMPDIR"
  8. fi
  9. }
  10. trap clean EXIT HUP INT TERM
  11. if test "${PRACTRACKER_DIR}" = "" ||
  12. test ! -e "${PRACTRACKER_DIR}/practracker.py" ; then
  13. PRACTRACKER_DIR=$(dirname "$0")
  14. fi
  15. TMPDIR="$(mktemp -d -t pracktracker.test.XXXXXX)"
  16. if test -z "${TMPDIR}" || test ! -d "${TMPDIR}" ; then
  17. echo >&2 "mktemp failed."
  18. exit 1;
  19. fi
  20. DATA="${PRACTRACKER_DIR}/testdata"
  21. run_practracker() {
  22. "${PYTHON:-python}" "${PRACTRACKER_DIR}/practracker.py" \
  23. --include-dir "" \
  24. --max-file-size=0 \
  25. --max-function-size=0 \
  26. --max-h-file-size=0 \
  27. --max-h-include-count=0 \
  28. --max-include-count=0 \
  29. --terse \
  30. "${DATA}/" "$@";
  31. }
  32. compare() {
  33. # we can't use cmp because we need to use -b for windows
  34. diff -b -u "$@" > "${TMPDIR}/test-diff"
  35. if test -z "$(cat "${TMPDIR}"/test-diff)"; then
  36. echo "OK"
  37. else
  38. cat "${TMPDIR}/test-diff"
  39. echo "FAILED"
  40. exit 1
  41. fi
  42. }
  43. echo "unit tests:"
  44. "${PYTHON:-python}" "${PRACTRACKER_DIR}/practracker_tests.py" || exit 1
  45. echo "ex0:"
  46. run_practracker --exceptions "${DATA}/ex0.txt" > "${TMPDIR}/ex0-received.txt"
  47. compare "${TMPDIR}/ex0-received.txt" "${DATA}/ex0-expected.txt"
  48. echo "ex1:"
  49. run_practracker --exceptions "${DATA}/ex1.txt" > "${TMPDIR}/ex1-received.txt"
  50. compare "${TMPDIR}/ex1-received.txt" "${DATA}/ex1-expected.txt"
  51. echo "ex1.overbroad:"
  52. run_practracker --exceptions "${DATA}/ex1.txt" --list-overbroad > "${TMPDIR}/ex1-overbroad-received.txt"
  53. compare "${TMPDIR}/ex1-overbroad-received.txt" "${DATA}/ex1-overbroad-expected.txt"