Mercurial > hg-stable
changeset 2068:4a49daa3a40c
let run-tests run optional code coverage tests.
to enable, set env var TEST_COVERAGE to non-empty string. run-tests will
print report after running.
after coverage run, file tests/.coverage will contain coverage data. use
tests/coverage.py to get more info, like annotated source code.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Thu, 13 Apr 2006 17:11:04 -0700 |
parents | 3094becfd8e8 |
children | 15ec724ba351 |
files | .hgignore tests/run-tests |
diffstat | 2 files changed, 30 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Thu Apr 13 17:06:57 2006 -0700 +++ b/.hgignore Thu Apr 13 17:11:04 2006 -0700 @@ -8,6 +8,7 @@ *.pyc *.swp *.prof +tests/.coverage* tests/*.err build dist
--- a/tests/run-tests Thu Apr 13 17:06:57 2006 -0700 +++ b/tests/run-tests Thu Apr 13 17:11:04 2006 -0700 @@ -1,4 +1,9 @@ #!/bin/sh -e +# +# environment variables: +# +# TEST_COVERAGE - set non-empty if you want to print test coverage report +# COVERAGE_STDLIB - set non-empty to report coverage of standard library LANG="C"; export LANG LC_CTYPE="C"; export LC_CTYPE @@ -64,7 +69,19 @@ fi cd "$TESTDIR" -BINDIR="$INST/bin" +BINDIR="$INST/bin"; export BINDIR +if [ -n "$TEST_COVERAGE" ]; then + COVERAGE_FILE="$TESTDIR/.coverage"; export COVERAGE_FILE + rm -f "$COVERAGE_FILE" + mv "$BINDIR/hg" "$BINDIR/hg.py" + { + echo '#!/bin/sh' + echo "exec \"${PYTHON-python}\" \"$TESTDIR/coverage.py\"" \ + "-x \"$BINDIR/hg.py\" \"\$@\"" + } > "$BINDIR/hg" + chmod 700 "$BINDIR/hg" +fi + PATH="$BINDIR:$PATH"; export PATH if [ -n "$PYTHON" ]; then { @@ -153,6 +170,17 @@ echo echo "Ran $tests tests, $failed failed." +if [ -n "$TEST_COVERAGE" ]; then + unset PYTHONPATH + $ECHO_N "$BINDIR,$TESTDIR,$HGTMP/test-," > "$HGTMP/omit" + if [ -z "$COVERAGE_STDLIB" ]; then + "${PYTHON-python}" -c 'import sys; print ",".join(sys.path)' \ + >> "$HGTMP/omit" + fi + cd "$PYTHONDIR" + "${PYTHON-python}" "$TESTDIR/coverage.py" -r --omit="`cat \"$HGTMP/omit\"`" +fi + if [ $failed -gt 0 ] ; then exit 1 fi