]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | set -e | |
3 | ||
4 | FAIL=0 | |
5 | PASS=0 | |
6 | ALL=0 | |
7 | ||
8 | FAILED_TESTS="" | |
9 | DIR=$(readlink -f $(dirname $0)) | |
10 | while [ -n "$1" ]; do | |
11 | if [ "$1" = "-q" ]; then | |
12 | export MSGLEVEL=2 | |
13 | elif [ "$1" = "-v" ]; then | |
14 | export MSGLEVEL=4 | |
15 | elif [ "$1" = '--color=no' ]; then | |
16 | export MSGCOLOR='NO' | |
17 | else | |
18 | echo >&2 "WARNING: Unknown parameter »$1« will be ignored" | |
19 | fi | |
20 | shift | |
21 | done | |
22 | export MSGLEVEL="${MSGLEVEL:-3}" | |
23 | ||
24 | if [ "$MSGCOLOR" != 'NO' ]; then | |
25 | if ! expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then | |
26 | export MSGCOLOR='NO' | |
27 | fi | |
28 | fi | |
29 | if [ "$MSGCOLOR" != 'NO' ]; then | |
30 | CTEST='\033[1;32m' | |
31 | CHIGH='\033[1;35m' | |
32 | CRESET='\033[0m' | |
33 | else | |
34 | CTEST='' | |
35 | CHIGH='' | |
36 | CRESET='' | |
37 | fi | |
38 | ||
39 | TOTAL="$(run-parts --list $DIR | grep '/test-' | wc -l)" | |
40 | for testcase in $(run-parts --list $DIR | grep '/test-'); do | |
41 | if [ "$MSGLEVEL" -le 2 ]; then | |
42 | echo -n "($(($ALL+1))/${TOTAL}) ${CTEST}Testcase ${CHIGH}$(basename ${testcase})${CRESET}: " | |
43 | else | |
44 | echo "${CTEST}Run Testcase ($(($ALL+1))/${TOTAL}) ${CHIGH}$(basename ${testcase})${CRESET}" | |
45 | fi | |
46 | if ! ${testcase}; then | |
47 | FAIL=$((FAIL+1)) | |
48 | FAILED_TESTS="$FAILED_TESTS $(basename $testcase)" | |
49 | echo >&2 "$(basename $testcase) ... FAIL" | |
50 | else | |
51 | PASS=$((PASS+1)) | |
52 | fi | |
53 | ALL=$((ALL+1)) | |
54 | if [ "$MSGLEVEL" -le 2 ]; then | |
55 | echo | |
56 | fi | |
57 | done | |
58 | ||
59 | echo >&2 "Statistics: $ALL tests were run: $PASS successfully and $FAIL failed" | |
60 | if [ -n "$FAILED_TESTS" ]; then | |
61 | echo >&2 "Failed tests: $FAILED_TESTS" | |
62 | else | |
63 | echo >&2 'All tests seem to have been run successfully. What could possibly go wrong?' | |
64 | fi | |
65 | # ensure we don't overflow | |
66 | exit $((FAIL <= 255 ? FAIL : 255)) |