blob: 432d975b12f37bffb7e203d89561425af575ff38 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#!/bin/sh
# Copyright 2014 Red Hat, Inc.
# Part of clufter project
# Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt)
# Specific tests can be specified as per [1], e.g.:
# tests.filter.XMLTraverse.testXSLTTemplate
# If nothing specified, auto-discovery is in place -> all the tests.
# ---
# [1] http://docs.python.org/2/library/unittest.html#command-line-interface
. ./run-check "$(dirname "${0}")/run-check" __norun__
stop=$(printf "\033\[0m")
blue=$(printf "\033[01;34m") red=$(printf "\033[01;31m")
green=$(printf "\033[01;32m") cyan=$(printf "\033[01;36m")
magenta=$(printf "\033[01;35m")
TAIL='2>&1 | sed \
-e "s/\(^\|[^A-Za-z]\)\(OK\)/\1${blue}\2${stop}/" \
-e "s/\(^\|[^A-Za-z]\)\(FAILED.*\)/\1${red}\2${stop}/" \
-e "s/\(^\|[^A-Za-z]\)\(ok\)/\1${green}\2${stop}/" \
-e "s/^\(\(FAIL\|ERROR\):.*\)/${magenta}\1${stop}/" \
-e "s/\(^\|[^A-Za-z]\)\(FAIL\)/\1${red}\2${stop}/" \
-e "s/\(^\|[^A-Za-z]\)\(ERROR\)/\1${red}\2${stop}/" \
-e "s/^\(Ran [1-9][0-9]*.*\)/${cyan}\1${stop}/"'
if ${PYTHONEXEC} -c "import sys; sys.exit(sys.version_info[:2] < (2,7))"; then
CMD="${PYTHONEXEC} -m unittest"
else
# pre-2.7 unittest doesn't offer test discovery, use external unittest2
CMD="unit2"
fi
DEBUG="env LOGLEVEL=WARNING"
PGR=${PAGER:-less}
VERBOSE=1
RUNCHECK=1
ACC=
while [ $# -gt 0 ]; do
case "$1" in
-a) # alternative && all
ret=0
for f in $(ls -1 tests/[!_]*.py); do
${PYTHONEXEC} "$f" >/dev/null 2>&1 \
&& echo OK \
|| { echo FAIL; ret=1; }
done
exit ${ret}
;;
-d)
DEBUG=
;;
-n)
RUNCHECK=0
;;
-q)
VERBOSE=0
;;
-p)
TAIL="${TAIL} 2>&1 | ${PGR}" # bash: " |& ${PGR}"
;;
-t)
TAIL=
;;
tests.*)
ACC="${ACC} $1"
;;
*)
ACC="${ACC} tests.$1"
;;
esac
shift
done
# "--verbose" game because of "Alternative Usage: unit2 discover [options]"
[ -n "${ACC}" ] \
&& { RUNCHECK=0; [ "${VERBOSE}" -eq 0 ] || ACC="--verbose ${ACC}"; } \
|| {
ACC="discover -s tests -p '*.py'"
[ "${VERBOSE}" -eq 0 ] || ACC="${ACC} --verbose"
}
[ -t 0 ] || TAIL=
# signal-based harness to catch non-zero retval while isolating PWD changes
# in the subshell
ret=0
trap 'ret=1' USR1
(
cd "$(dirname "$0")"; cd __project__ 2>/dev/null || :
eval "{ ${DEBUG} ${CMD} ${ACC}; [ \$? -eq 0 ] || kill -USR1 \$\$; } ${TAIL}"
)
[ "${RUNCHECK}" -eq 0 ] || run_check || ret=$((ret+2))
f() { return $1; }; f ${ret}
|