run-all-extension-tests revision 05c0670a5ec29b57709b1a0bd01010d120a76d8d
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington#!/bin/bash
19c7b1a0293498a3e36692c59646ed6e15ffc8d0Tinderbox User
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsecho -e "\n##### Extension Tests #####"
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updatercd "$(dirname "$0")"
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonhas_py_coverage=false
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellingtonpy_cover_files=$( mktemp )
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrewsfailed_tests=$( mktemp )
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrewsif coverage.py -e >/dev/null 2>/dev/null; then
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews has_py_coverage=true
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews cover_py_cmd=coverage.py
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrewselse
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews if coverage -e >/dev/null 2>/dev/null; then
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington has_py_coverage=true
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User cover_py_cmd=coverage
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntfi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#if $has_py_coverage; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $cover_py_cmd -e
94bd918b63001277f1b28ae4581645f8a835688fBob Halley#fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntfunction run_py_test() {
94bd918b63001277f1b28ae4581645f8a835688fBob Halley echo -e "\n>> Testing $1"
94bd918b63001277f1b28ae4581645f8a835688fBob Halley if $has_py_coverage; then
94bd918b63001277f1b28ae4581645f8a835688fBob Halley if ! $cover_py_cmd -x "$1.test.py"; then
94bd918b63001277f1b28ae4581645f8a835688fBob Halley echo "$1" >> $failed_tests
94bd918b63001277f1b28ae4581645f8a835688fBob Halley fi
94bd918b63001277f1b28ae4581645f8a835688fBob Halley echo "../$1.py" >> $py_cover_files
94bd918b63001277f1b28ae4581645f8a835688fBob Halley else
94bd918b63001277f1b28ae4581645f8a835688fBob Halley if ! python "$1.test.py"; then
94bd918b63001277f1b28ae4581645f8a835688fBob Halley echo "$1" >> $failed_tests
94bd918b63001277f1b28ae4581645f8a835688fBob Halley fi
94bd918b63001277f1b28ae4581645f8a835688fBob Halley fi
94bd918b63001277f1b28ae4581645f8a835688fBob Halley return 0
94bd918b63001277f1b28ae4581645f8a835688fBob Halley}
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeintot_FAILED=0
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinfor testFile in *.test.py; do
c1a883f2e04d94e99c433b1f6cfd0c0338f4ed85Mark Andrews if ! run_py_test $( echo $testFile | sed -r 's/^([^.]+)..*$/\1/' ); then
cfa2326b5c96a3a4c720262e077b2baf9fc27970Tinderbox User let tot_FAILED++
938440694b33cd752e9e4b71a526368b4811c177Tinderbox User fi
19c7b1a0293498a3e36692c59646ed6e15ffc8d0Tinderbox Userdone
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinif $has_py_coverage; then
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein echo -e "\n>> Coverage Report:"
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein cat $py_cover_files | xargs $cover_py_cmd -r
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinfi
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinfail=false
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinif ! test -z "$( cat $failed_tests )"; then
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein echo -e "\nFailed $( cat $failed_tests | wc -l ) of $( ls -1 *.test.py | wc -l ) extension tests:"
94bd918b63001277f1b28ae4581645f8a835688fBob Halley cat $failed_tests | sed 's/^/ - /'
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fail=true
94bd918b63001277f1b28ae4581645f8a835688fBob Halleyfi
94bd918b63001277f1b28ae4581645f8a835688fBob Halleyecho ""
94bd918b63001277f1b28ae4581645f8a835688fBob Halley
94bd918b63001277f1b28ae4581645f8a835688fBob Halleyrm $py_cover_files $failed_tests
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
30eec077db2bdcb6f2a0dc388a3cdde2ede75ec1Mark Andrewsif [ x$fail == xtrue ]; then
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein exit 1
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinelse
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein exit 0
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinfi
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein