diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-04-29 21:50:23 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-04-29 21:50:23 -0400 |
commit | 7cd0901a6082aae0d39f2faa675533325e95a537 (patch) | |
tree | c942b636d69138aff69754269e6bc4ed9f125acc /coverage | |
parent | 06b74ffa1a8b47672e5c948783a60cf21c106742 (diff) | |
download | python-coveragepy-git-7cd0901a6082aae0d39f2faa675533325e95a537.tar.gz |
Python stdlib is now not measured by default. If needed, turn it on with the -L switch.coverage-3.0b2
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/cmdline.py | 7 | ||||
-rw-r--r-- | coverage/control.py | 16 |
2 files changed, 17 insertions, 6 deletions
diff --git a/coverage/cmdline.py b/coverage/cmdline.py index 8c6688a8..39d92927 100644 --- a/coverage/cmdline.py +++ b/coverage/cmdline.py @@ -9,10 +9,11 @@ Coverage version %(__version__)s Usage: -coverage -x [-p] MODULE.py [ARG1 ARG2 ...] +coverage -x [-p] [-L] MODULE.py [ARG1 ARG2 ...] Execute the module, passing the given command-line arguments, collecting coverage data. With the -p option, include the machine name and process - ID in the .coverage file name. + ID in the .coverage file name. With -L, measure coverage even inside the + Python standard library, which isn't done by default. coverage -e Erase collected coverage data. @@ -86,6 +87,7 @@ class CoverageScript: '-e': 'erase', '-h': 'help', '-i': 'ignore-errors', + '-L': 'stdlib', '-m': 'show-missing', '-p': 'parallel-mode', '-r': 'report', @@ -135,6 +137,7 @@ class CoverageScript: # Do something. self.coverage.parallel_mode = settings.get('parallel-mode') + self.coverage.cover_stdlib = settings.get('stdlib') self.coverage.get_ready() if settings.get('erase'): diff --git a/coverage/control.py b/coverage/control.py index d03c69b3..6d3187d6 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -1,6 +1,6 @@ """Core control stuff for coverage.py""" -import os, socket +import os, socket, sys from coverage.annotate import AnnotateReporter from coverage.codeunit import code_unit_factory @@ -17,11 +17,13 @@ class coverage: self.parallel_mode = False self.exclude_re = '' + self.cover_stdlib = False self.nesting = 0 + self.file_locator = FileLocator() + self.sysprefix = self.file_locator.abs_file(sys.prefix) self.collector = Collector(self.should_trace) - self.data = CoverageData(collector="coverage.py v%s" % __version__) # The default exclude pattern. @@ -36,14 +38,20 @@ class coverage: Returns a canonicalized filename if it should be traced, False if it should not. + """ if filename == '<string>': # There's no point in ever tracing string executions, we can't do # anything with the data later anyway. return False - # TODO: flag: ignore std lib? + + canonical = self.file_locator.canonical_filename(filename) + if not self.cover_stdlib: + if canonical.startswith(self.sysprefix): + return False + # TODO: ignore by module as well as file? - return self.file_locator.canonical_filename(filename) + return canonical def use_cache(self, usecache): """Control the use of a data file (incorrectly called a cache). |