4 # Force UTC, so time stamps are printed in a standard time zone, and
5 # tests don't have to be run in the time zone in which the output
11 # Get the tests directory from $0.
13 testsdir
=`dirname "$0"`
16 # Convert it to an absolute path, so it works even after we do a cd.
18 testsdir
=`cd ${testsdir}; pwd`
20 echo Running tests from
${testsdir}
22 passedfile
=`pwd`/tests
/.passed
23 failedfile
=`pwd`/tests
/.failed
24 failureoutput
=`pwd`/tests
/failure-outputs.txt
27 cat /dev
/null
> ${failureoutput}
31 for i
in ${testsdir}/*.sh
34 ${testsdir}/TEST
*.sh
) continue;;
35 ${testsdir}/\
*.sh
) continue;;
38 (cd tests
&& sh
$i ${srcdir})
40 passed
=`cat ${passedfile}`
41 failed
=`cat ${failedfile}`
47 cat ${testsdir}/TESTLIST |
while read name input output options
54 [ "$only" != "" -a "$name" != "$only" ] && continue
55 # I hate shells with their stupid, useless subshells.
56 passed
=`cat ${passedfile}`
57 failed
=`cat ${failedfile}`
58 (cd tests
# run TESTonce in tests directory
59 if ${testsdir}/TESTonce $name ${testsdir}/$input ${testsdir}/$output "$options"
61 passed
=`expr $passed + 1`
62 echo $passed >${passedfile}
64 failed
=`expr $failed + 1`
65 echo $failed >${failedfile}
67 [ "$only" != "" -a "$name" = "$only" ] && break
69 # I hate shells with their stupid, useless subshells.
70 passed
=`cat ${passedfile}`
71 failed
=`cat ${failedfile}`
76 echo $passed >${passedfile}
77 echo $failed >${failedfile}
86 echo "Usage: $0 [test_name]"
90 # exit with number of failing tests.
91 echo '------------------------------------------------'
92 printf "%4u tests failed\n" $failed
93 printf "%4u tests passed\n" $passed