blob: 4660d8d9ba33939f919c233db2048e342e46b95d (
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
96
97
98
99
100
101
102
|
#!/bin/sh
## TODO:
## find zexy (either in ../src or ../)
## if it is not there, assume it is split into externals
if [ "x${PD}" = "x" ]
then
PD=pd
fi
#SUFFIX="$$"
SUFFIX=$(date +%y%m%d-%H%M%S)
RUNTESTS_TXT=runtests.txt
RUNTESTS_LOG=log-runtests.${SUFFIX}
LIBFLAGS="-path ../src/.libs/:../src/:../ -lib zexy -path ../abs/"
list_tests() {
# find . -mindepth 2 -name "*.pd" | sed 's|\.pd$|;|'
ls -1 */*.pd | sed 's|\.pd$|;|'
}
debug() {
:
if [ "x${DEBUG}" = "xyes" ]; then echo $@; fi
}
evaluate_tests() {
local logfile
local testfile
local numtests
testfile=$1
logfile=$2
debug "now evaluating results in ${logfile} (${testfile}"
numtests=$(grep -c . ${testfile})
numpass=$(egrep -c "regression-test: (.*/fail.*: failed|.*: OK)$" ${logfile})
numfail=0
failtests=""
for t in $(egrep "regression-test: .*: (failed|OK)$" ${logfile} | egrep -v "regression-test: (.*/fail.*: failed|.*: OK)$" | awk '{print $2}')
do
failtests="${failtests} ${t%:}"
let numfail=numfail+1
done
debug "number of tests = ${numtests}"
echo "regression-test: ======================================" >> ${logfile}
echo "regression-test: ${numtests} regression-tests total" >> ${logfile}
echo "regression-test: ${numpass} regression-tests passed" >> ${logfile}
echo "regression-test: ${numfail} regression-tests failed" >> ${logfile}
echo "regression-test: ======================================" >> ${logfile}
echo "regression-test: failed tests: ${failtests}" >> ${logfile}
debug "show results"
cat ${logfile} | egrep "^regression-test: " | sed -e 's/^regression-test: //'
}
run_nogui() {
debug "running test without gui"
${PD} ${LIBFLAGS} -nogui runtests_nogui.pd > ${RUNTESTS_LOG} 2>&1
debug "testing done"
evaluate_tests ${RUNTESTS_TXT} ${RUNTESTS_LOG}
debug "testing finished"
}
run_withgui() {
debug "running test with gui"
${PD} ${LIBFLAGS} -stderr runtests.pd 2>&1 | tee ${RUNTESTS_LOG}
echo "testing completed, no evaluation will be done; see ${RUNTESTS_LOG} for results"
}
list_tests > ${RUNTESTS_TXT}
USEGUI=""
DEBUG=""
while [ "$@" ]
do
if test "x$1" = "x-gui"; then
USEGUI="yes"
fi
if test "x$1" = "x-debug"; then
DEBUG="yes"
fi
if test "x$1" = "x-d"; then
DEBUG="yes"
fi
shift
done
if [ "x${USEGUI}" = "xyes" ]; then
run_withgui
else
run_nogui
fi
echo $@
|