Code

litte more information
[inkscape.git] / share / extensions / test / run-all-extension-tests
1 #!/bin/bash
3 echo -e "\n##### Extension Tests #####"
5 cd "$(dirname "$0")"
7 has_py_coverage=false
8 py_cover_files=$( mktemp )
9 failed_tests=$( mktemp )
11 if coverage.py -e >/dev/null 2>/dev/null; then
12   has_py_coverage=true
13   cover_py_cmd=coverage.py
14 else
15   if coverage -e >/dev/null 2>/dev/null; then
16     has_py_coverage=true
17     cover_py_cmd=coverage
18   fi
19 fi
21 #if $has_py_coverage; then
22 #  $cover_py_cmd -e
23 #fi
25 function run_py_test() {
26   echo -e "\n>> Testing $1"
27   if $has_py_coverage; then
28     if ! $cover_py_cmd -x "$1.test.py"; then
29       echo "$1" >> $failed_tests
30     fi
31     echo "../$1.py" >> $py_cover_files
32   else
33     if ! python "$1.test.py"; then
34       echo "$1" >> $failed_tests
35     fi
36   fi
37   return 0
38 }
40 tot_FAILED=0
42 for testFile in *.test.py; do
43   if ! run_py_test $( echo $testFile | sed -r 's/^([^.]+)..*$/\1/' ); then
44     let tot_FAILED++
45   fi
46 done
48 if $has_py_coverage; then
49   echo -e "\n>> Coverage Report:"
50   cat $py_cover_files | xargs $cover_py_cmd -r
51 fi
53 fail=false
54 if ! test -z "$( cat $failed_tests )"; then
55   echo -e "\nFailed $( cat $failed_tests | wc -l ) of $( ls -1 *.test.py | wc -l ) extension tests:"
56   cat $failed_tests | sed 's/^/  - /'
57   fail=true
58 fi
59 echo ""
61 rm $py_cover_files $failed_tests
63 $fail && exit 1