diff options
author | Daniel Dunbar <daniel@zuster.org> | 2013-01-31 00:21:44 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2013-01-31 00:21:44 +0000 |
commit | d00a5e5455fe711b9ca7b3b990efe12980a22920 (patch) | |
tree | d8a8d1f58990b6c60a7d078717a93efd52132d80 /llvm/utils/lit | |
parent | 40722cc9ffce9089d2380b2571e66365dcd250c8 (diff) | |
download | bcm5719-llvm-d00a5e5455fe711b9ca7b3b990efe12980a22920.tar.gz bcm5719-llvm-d00a5e5455fe711b9ca7b3b990efe12980a22920.zip |
[lit] Add a script for checking test coverage.
llvm-svn: 174000
Diffstat (limited to 'llvm/utils/lit')
-rw-r--r-- | llvm/utils/lit/tests/.coveragerc | 11 | ||||
-rw-r--r-- | llvm/utils/lit/utils/README.txt | 2 | ||||
-rwxr-xr-x | llvm/utils/lit/utils/check-coverage | 50 |
3 files changed, 63 insertions, 0 deletions
diff --git a/llvm/utils/lit/tests/.coveragerc b/llvm/utils/lit/tests/.coveragerc new file mode 100644 index 00000000000..f6764fe1844 --- /dev/null +++ b/llvm/utils/lit/tests/.coveragerc @@ -0,0 +1,11 @@ +# .coveragerc to control coverage.py +[run] +branch = False +parallel = False +source = lit + +[html] +directory = coverage_html_report + +[report] +omit = Inputs diff --git a/llvm/utils/lit/utils/README.txt b/llvm/utils/lit/utils/README.txt new file mode 100644 index 00000000000..81862ba0991 --- /dev/null +++ b/llvm/utils/lit/utils/README.txt @@ -0,0 +1,2 @@ +Utilities for the project that aren't intended to be part of a source +distribution. diff --git a/llvm/utils/lit/utils/check-coverage b/llvm/utils/lit/utils/check-coverage new file mode 100755 index 00000000000..bb3d17e7579 --- /dev/null +++ b/llvm/utils/lit/utils/check-coverage @@ -0,0 +1,50 @@ +#!/bin/sh + +prog=$(basename $0) + +# Expect to be run from the parent lit directory. +if [ ! -f setup.py ] || [ ! -d lit ]; then + printf 1>&2 "%s: expected to be run from base lit directory\n" "$prog" + exit 1 +fi + +# Parse command line arguments. +if [ "$1" == "--generate-html" ]; then + GENERATE_HTML=1 + shift +fi + +# If invoked with no arguments, run all the tests. +if [ $# == "0" ]; then + set -- "tests" +fi + +# Check that the active python has been modified to enable coverage in its +# sitecustomize. +if ! python -c \ + 'import sitecustomize, sys; sys.exit("coverage" not in dir(sitecustomize))' \ + &> /dev/null; then + printf 1>&2 "error: active python does not appear to enable coverage in its 'sitecustomize.py'\n" + exit 1 +fi + +# First, remove any existing coverage data files. +rm -f tests/.coverage +find tests -name .coverage.\* -exec rm {} \; + +# Next, run the tests. +lit -sv --param check-coverage=1 "$@" + +# Next, move all the data files from subdirectories up. +find tests/* -name .coverage.\* -exec mv {} tests \; + +# Combine all the data files. +(cd tests && python -m coverage combine) + +# Finally, generate the report. +(cd tests && python -m coverage report) + +# Generate the HTML report, if requested. +if [ ! -z "$GENERATE_HTML" ]; then + (cd tests && python -m coverage html) +fi |