[llvm-commits] [LNT] r154401 - in /lnt/trunk: tests/.coveragerc tests/lit.cfg utils/check-coverage

Daniel Dunbar daniel at zuster.org
Tue Apr 10 09:39:11 PDT 2012


Author: ddunbar
Date: Tue Apr 10 11:39:11 2012
New Revision: 154401

URL: http://llvm.org/viewvc/llvm-project?rev=154401&view=rev
Log:
[tests] Add easy support for running tests w/ code coverage.

Added:
    lnt/trunk/tests/.coveragerc
    lnt/trunk/utils/check-coverage   (with props)
Modified:
    lnt/trunk/tests/lit.cfg

Added: lnt/trunk/tests/.coveragerc
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/tests/.coveragerc?rev=154401&view=auto
==============================================================================
--- lnt/trunk/tests/.coveragerc (added)
+++ lnt/trunk/tests/.coveragerc Tue Apr 10 11:39:11 2012
@@ -0,0 +1,8 @@
+# .coveragerc to control coverage.py
+[run]
+branch = True
+parallel = True
+source = lnt
+
+[html]
+directory = coverage_html_report

Modified: lnt/trunk/tests/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/tests/lit.cfg?rev=154401&r1=154400&r2=154401&view=diff
==============================================================================
--- lnt/trunk/tests/lit.cfg (original)
+++ lnt/trunk/tests/lit.cfg Tue Apr 10 11:39:11 2012
@@ -28,3 +28,9 @@
 config.environment['PYTHONPATH'] = src_root
 
 config.substitutions.append(('%src_root', src_root))
+
+# Enable coverage.py reporting, assuming sitecustomize.py in the virtualenv has
+# been modified appropriately.
+if lit.params.get('check-coverage', None):
+    config.environment['COVERAGE_PROCESS_START'] = os.path.join(
+        os.path.dirname(__file__), ".coveragerc")

Added: lnt/trunk/utils/check-coverage
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/utils/check-coverage?rev=154401&view=auto
==============================================================================
--- lnt/trunk/utils/check-coverage (added)
+++ lnt/trunk/utils/check-coverage Tue Apr 10 11:39:11 2012
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+prog=$(basename $0)
+
+# Expect to be run from the parent LNT directory.
+if [ ! -f README.txt ] || [ ! -d lnt ]; then
+    printf 1>&2 "%s: expected to be run from base LNT directory\n" "$prog"
+    exit 1
+fi
+
+# Check arguments.
+if [ $# == "0" ]; then
+    printf 1>&2 "usage: %s {lit-arguments}*\n" "$prog"
+    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

Propchange: lnt/trunk/utils/check-coverage
------------------------------------------------------------------------------
    svn:executable = *





More information about the llvm-commits mailing list