root / autotools / gen-py-coverage @ 11e90588
History | View | Annotate | Download (1.8 kB)
1 | 27e336af | Michael Hanselmann | #!/bin/bash |
---|---|---|---|
2 | 27e336af | Michael Hanselmann | # |
3 | 27e336af | Michael Hanselmann | |
4 | 90066780 | Iustin Pop | # Copyright (C) 2010, 2011, 2012 Google Inc. |
5 | 27e336af | Michael Hanselmann | # |
6 | 27e336af | Michael Hanselmann | # This program is free software; you can redistribute it and/or modify |
7 | 27e336af | Michael Hanselmann | # it under the terms of the GNU General Public License as published by |
8 | 27e336af | Michael Hanselmann | # the Free Software Foundation; either version 2 of the License, or |
9 | 27e336af | Michael Hanselmann | # (at your option) any later version. |
10 | 27e336af | Michael Hanselmann | # |
11 | 27e336af | Michael Hanselmann | # This program is distributed in the hope that it will be useful, but |
12 | 27e336af | Michael Hanselmann | # WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 27e336af | Michael Hanselmann | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | 27e336af | Michael Hanselmann | # General Public License for more details. |
15 | 27e336af | Michael Hanselmann | # |
16 | 27e336af | Michael Hanselmann | # You should have received a copy of the GNU General Public License |
17 | 27e336af | Michael Hanselmann | # along with this program; if not, write to the Free Software |
18 | 27e336af | Michael Hanselmann | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
19 | 27e336af | Michael Hanselmann | # 02110-1301, USA. |
20 | 27e336af | Michael Hanselmann | |
21 | 27e336af | Michael Hanselmann | set -e |
22 | da775218 | Michael Hanselmann | set -u |
23 | 27e336af | Michael Hanselmann | |
24 | 27e336af | Michael Hanselmann | : ${PYTHON:=python} |
25 | 141c8421 | Michael Hanselmann | : ${COVERAGE:?} |
26 | 27e336af | Michael Hanselmann | : ${COVERAGE_FILE:?} |
27 | 27e336af | Michael Hanselmann | : ${TEXT_COVERAGE:?} |
28 | 141c8421 | Michael Hanselmann | : ${HTML_COVERAGE:=} |
29 | 577b170b | Iustin Pop | : ${GANETI_TEMP_DIR:?} |
30 | 27e336af | Michael Hanselmann | |
31 | da775218 | Michael Hanselmann | reportargs=( |
32 | da775218 | Michael Hanselmann | '--include=*' |
33 | 90066780 | Iustin Pop | '--omit=test/py/*' |
34 | da775218 | Michael Hanselmann | ) |
35 | 27e336af | Michael Hanselmann | |
36 | 27e336af | Michael Hanselmann | $COVERAGE erase |
37 | 27e336af | Michael Hanselmann | |
38 | 141c8421 | Michael Hanselmann | if [[ -n "$HTML_COVERAGE" ]]; then |
39 | 141c8421 | Michael Hanselmann | if [[ ! -d "$HTML_COVERAGE" ]]; then |
40 | 141c8421 | Michael Hanselmann | echo "Not a directory: $HTML_COVERAGE" >&2 |
41 | 141c8421 | Michael Hanselmann | exit 1 |
42 | 141c8421 | Michael Hanselmann | fi |
43 | 141c8421 | Michael Hanselmann | |
44 | 141c8421 | Michael Hanselmann | # At least coverage 3.4 fails to overwrite files |
45 | 141c8421 | Michael Hanselmann | find "$HTML_COVERAGE" \( -type f -o -type l \) -delete |
46 | 141c8421 | Michael Hanselmann | fi |
47 | 141c8421 | Michael Hanselmann | |
48 | 27e336af | Michael Hanselmann | for script; do |
49 | df69e0a0 | Bernardo Dal Seno | if [[ "$script" == *-runasroot.py ]]; then |
50 | df69e0a0 | Bernardo Dal Seno | if [[ -z "$FAKEROOT" ]]; then |
51 | 7ebadeb3 | Bernardo Dal Seno | echo "WARNING: FAKEROOT variable not set: skipping $script" >&2 |
52 | 7ebadeb3 | Bernardo Dal Seno | continue |
53 | df69e0a0 | Bernardo Dal Seno | fi |
54 | df69e0a0 | Bernardo Dal Seno | cmdprefix="$FAKEROOT" |
55 | df69e0a0 | Bernardo Dal Seno | else |
56 | df69e0a0 | Bernardo Dal Seno | cmdprefix= |
57 | df69e0a0 | Bernardo Dal Seno | fi |
58 | da775218 | Michael Hanselmann | $cmdprefix $COVERAGE run --branch --append "${reportargs[@]}" $script |
59 | 27e336af | Michael Hanselmann | done |
60 | 27e336af | Michael Hanselmann | |
61 | 27e336af | Michael Hanselmann | echo "Writing text report to $TEXT_COVERAGE ..." >&2 |
62 | da775218 | Michael Hanselmann | $COVERAGE report "${reportargs[@]}" | tee "$TEXT_COVERAGE" |
63 | 27e336af | Michael Hanselmann | |
64 | 27e336af | Michael Hanselmann | if [[ -n "$HTML_COVERAGE" ]]; then |
65 | 27e336af | Michael Hanselmann | echo "Generating HTML report in $HTML_COVERAGE ..." >&2 |
66 | da775218 | Michael Hanselmann | $COVERAGE html "${reportargs[@]}" -d "$HTML_COVERAGE" |
67 | 27e336af | Michael Hanselmann | fi |