Rev 3086: Add a --coverage option to selftest. in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Dec 6 13:50:51 GMT 2007
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 3086
revision-id:pqm at pqm.ubuntu.com-20071206135045-uhim2fpy9d2n4esa
parent: pqm at pqm.ubuntu.com-20071206063448-0fk3ky25yb3lwxi8
parent: andrew.bennetts at canonical.com-20071206120335-o7s9lfxyupf08nfm
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2007-12-06 13:50:45 +0000
message:
Add a --coverage option to selftest.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
------------------------------------------------------------
revno: 3084.1.1
revision-id:andrew.bennetts at canonical.com-20071206120335-o7s9lfxyupf08nfm
parent: pqm at pqm.ubuntu.com-20071205233104-ghmsse3nmhbnz0n1
committer: Andrew Bennetts <andrew.bennetts at canonical.com>
branch nick: selftest-coverage
timestamp: Thu 2007-12-06 23:03:35 +1100
message:
Add a --coverage option to selftest.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
=== modified file 'NEWS'
--- a/NEWS 2007-12-05 22:52:58 +0000
+++ b/NEWS 2007-12-06 12:03:35 +0000
@@ -9,6 +9,8 @@
IMPROVEMENTS:
+ * Added a --coverage option to selftest. (Andrew Bennetts)
+
* ``bzr commit`` now doesn't print the revision number twice. (Matt
Nordhoff, #172612)
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2007-12-05 23:31:04 +0000
+++ b/bzrlib/builtins.py 2007-12-06 12:03:35 +0000
@@ -2604,6 +2604,9 @@
' expression.'),
Option('strict', help='Fail on missing dependencies or '
'known failures.'),
+ Option('coverage', type=str, argname="DIRECTORY",
+ help='Generate line coverage report in this'
+ 'directory.'),
]
encoding_type = 'replace'
@@ -2611,7 +2614,7 @@
transport=None, benchmark=None,
lsprof_timed=None, cache_dir=None,
first=False, list_only=False,
- randomize=None, exclude=None, strict=False):
+ randomize=None, exclude=None, strict=False, coverage=None):
import bzrlib.ui
from bzrlib.tests import selftest
import bzrlib.benchmarks as benchmarks
@@ -2653,6 +2656,7 @@
random_seed=randomize,
exclude_pattern=exclude,
strict=strict,
+ coverage_dir=coverage,
)
finally:
if benchfile is not None:
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py 2007-12-04 00:42:43 +0000
+++ b/bzrlib/tests/__init__.py 2007-12-06 12:03:35 +0000
@@ -42,8 +42,9 @@
from subprocess import Popen, PIPE
import sys
import tempfile
+import time
+import trace
import unittest
-import time
import warnings
@@ -2286,6 +2287,7 @@
random_seed=None,
exclude_pattern=None,
strict=False,
+ coverage_dir=None,
):
TestCase._gather_lsprof_in_benchmarks = lsprof_timed
if verbose:
@@ -2323,8 +2325,19 @@
else:
suite = filter_suite_by_re(suite, pattern, exclude_pattern,
random_order)
+
+ if coverage_dir is not None:
+ tracer = trace.Trace(count=1, trace=0)
+ sys.settrace(tracer.globaltrace)
+
result = runner.run(suite)
+ if coverage_dir is not None:
+ sys.settrace(None)
+ results = tracer.results()
+ results.write_results(show_missing=1, summary=False,
+ coverdir=coverage_dir)
+
if strict:
return result.wasStrictlySuccessful()
@@ -2341,6 +2354,7 @@
random_seed=None,
exclude_pattern=None,
strict=False,
+ coverage_dir=None,
):
"""Run the whole test suite under the enhanced runner"""
# XXX: Very ugly way to do this...
@@ -2368,7 +2382,8 @@
list_only=list_only,
random_seed=random_seed,
exclude_pattern=exclude_pattern,
- strict=strict)
+ strict=strict,
+ coverage_dir=coverage_dir)
finally:
default_transport = old_transport
More information about the bazaar-commits
mailing list