From fac7f3e1011df358f19e3f3ba25a695d1fb95669 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 29 Nov 2009 07:18:07 -0500 Subject: Fix some self-measurement problems. Now coverage_coverage.py works again (had to be sure to stop coverage if check_coverage threw an exception). --- coverage/collector.py | 5 +++++ coverage/control.py | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'coverage') diff --git a/coverage/collector.py b/coverage/collector.py index 5bbd02e..6ea419e 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 "" % 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 674bb15..7efc349 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): -- cgit v1.2.1