diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-11-22 09:44:28 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-11-22 09:44:28 -0500 |
commit | fefdf345a788b85633c48012693926c5c3e7261e (patch) | |
tree | db57a1854fefa7d467dc21c81305537c9fecad9e /coverage/collector.py | |
parent | d0f86e760c5abc96d9c8d5bb2c3279aa3facafcf (diff) | |
download | python-coveragepy-fefdf345a788b85633c48012693926c5c3e7261e.tar.gz |
Add statistics gathering to help find a problem in the C tracer.
Diffstat (limited to 'coverage/collector.py')
-rw-r--r-- | coverage/collector.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/coverage/collector.py b/coverage/collector.py index 1a831c1..5bbd02e 100644 --- a/coverage/collector.py +++ b/coverage/collector.py @@ -94,6 +94,10 @@ class PyTracer(object): """Stop this Tracer.""" sys.settrace(None) + def get_stats(self): + """Return a dictionary of statistics, or None.""" + return None + class Collector(object): """Collects trace data. @@ -203,9 +207,9 @@ class Collector(object): assert self._collectors assert self._collectors[-1] is self - self.pause() + self.pause() self.tracers = [] - + # Remove this Collector from the stack, and resume the one underneath # (if any). self._collectors.pop() @@ -216,6 +220,11 @@ class Collector(object): """Pause tracing, but be prepared to `resume`.""" for tracer in self.tracers: tracer.stop() + stats = tracer.get_stats() + if stats: + print("\nCoverage.py tracer stats:") + for k in sorted(stats.keys()): + print("%16s: %s" % (k, stats[k])) threading.settrace(None) def resume(self): |