mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-15 10:39:47 +00:00
[lit] Add a script for checking test coverage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174000 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
356dcac20e
commit
412d805841
11
utils/lit/tests/.coveragerc
Normal file
11
utils/lit/tests/.coveragerc
Normal file
@ -0,0 +1,11 @@
|
||||
# .coveragerc to control coverage.py
|
||||
[run]
|
||||
branch = False
|
||||
parallel = False
|
||||
source = lit
|
||||
|
||||
[html]
|
||||
directory = coverage_html_report
|
||||
|
||||
[report]
|
||||
omit = Inputs
|
2
utils/lit/utils/README.txt
Normal file
2
utils/lit/utils/README.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Utilities for the project that aren't intended to be part of a source
|
||||
distribution.
|
50
utils/lit/utils/check-coverage
Executable file
50
utils/lit/utils/check-coverage
Executable file
@ -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
|
Loading…
x
Reference in New Issue
Block a user