run-tests 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/bin/sh
  2. set -e
  3. FAIL=0
  4. FAILED_TESTS=""
  5. DIR=$(readlink -f $(dirname $0))
  6. if [ "$1" = "-q" ]; then
  7. export MSGLEVEL=2
  8. elif [ "$1" = "-v" ]; then
  9. export MSGLEVEL=4
  10. fi
  11. if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then
  12. CTEST='\033[1;32m'
  13. CHIGH='\033[1;35m'
  14. CRESET='\033[0m'
  15. elif [ -z "${MSGLEVEL}" ]; then
  16. export MSGLEVEL=2
  17. fi
  18. if [ -z "$MSGLEVEL" ]; then
  19. MSGLEVEL=5
  20. fi
  21. for testcase in $(run-parts --list $DIR | grep '/test-'); do
  22. if [ "$MSGLEVEL" -le 2 ]; then
  23. echo -n "${CTEST}Testcase ${CHIGH}$(basename ${testcase})${CRESET}: "
  24. else
  25. echo "${CTEST}Run Testcase ${CHIGH}$(basename ${testcase})${CRESET}"
  26. fi
  27. if ! ${testcase}; then
  28. FAIL=$((FAIL+1))
  29. FAILED_TESTS="$FAILED_TESTS $(basename $testcase)"
  30. echo "$(basename $testcase) ... FAIL"
  31. fi
  32. if [ "$MSGLEVEL" -le 2 ]; then
  33. echo
  34. fi
  35. done
  36. echo "failures: $FAIL"
  37. if [ -n "$FAILED_TESTS" ]; then
  38. echo "Failed tests: $FAILED_TESTS";
  39. fi
  40. # ensure we don't overflow
  41. exit $((FAIL <= 255 ? FAIL : 255))