test_practracker.sh 1.4 KB

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