diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-11-29 07:18:07 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-11-29 07:18:07 -0500 |
commit | 7fb8e7193f775775dff1b1a27c948797c6fc836d (patch) | |
tree | 59398cafeef7402fbee8b56b8aae55f99f181eb4 /coverage | |
parent | 7c40a5e2bbc216e276ce49dc0ea1ec84062bd6a7 (diff) | |
download | python-coveragepy-git-7fb8e7193f775775dff1b1a27c948797c6fc836d.tar.gz |
Fix some self-measurement problems. Now coverage_coverage.py works again (had to be sure to stop coverage if check_coverage threw an exception).
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/collector.py | 5 | ||||
-rw-r--r-- | coverage/control.py | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/coverage/collector.py b/coverage/collector.py index 5bbd02e0..6ea419ee 100644 --- a/coverage/collector.py +++ b/coverage/collector.py @@ -148,6 +148,9 @@ class Collector(object): # trace function. self._trace_class = Tracer or PyTracer + def __repr__(self): + return "<Collector at 0x%x>" % id(self) + def tracer_name(self): """Return the class name of the tracer we're using.""" return self._trace_class.__name__ @@ -196,6 +199,7 @@ class Collector(object): if self._collectors: self._collectors[-1].pause() self._collectors.append(self) + #print >>sys.stderr, "Started: %r" % self._collectors # Install the tracer on this thread. self._start_tracer() # Install our installation tracer in threading, to jump start other @@ -204,6 +208,7 @@ class Collector(object): def stop(self): """Stop collecting trace information.""" + #print >>sys.stderr, "Stopping: %r" % self._collectors assert self._collectors assert self._collectors[-1] is self diff --git a/coverage/control.py b/coverage/control.py index 674bb15e..7efc3492 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -1,6 +1,6 @@ """Core control stuff for Coverage.""" -import os, socket +import atexit, os, socket from coverage.annotate import AnnotateReporter from coverage.backward import string_class # pylint: disable-msg=W0622 @@ -56,7 +56,8 @@ class coverage(object): self.cover_pylib = cover_pylib self.auto_data = auto_data - + self.atexit_registered = False + self.exclude_re = "" self.exclude_list = [] @@ -168,8 +169,9 @@ class coverage(object): if self.auto_data: self.load() # Save coverage data when Python exits. - import atexit - atexit.register(self.save) + if not self.atexit_registered: + atexit.register(self.save) + self.atexit_registered = True self.collector.start() def stop(self): |