summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Tools/scripts/trace.py47
1 files changed, 30 insertions, 17 deletions
diff --git a/Tools/scripts/trace.py b/Tools/scripts/trace.py
index 2f9fb04..ea43f0e 100644
--- a/Tools/scripts/trace.py
+++ b/Tools/scripts/trace.py
@@ -41,7 +41,8 @@ Sample use, programmatically
# run the new command using the given trace
trace.run(coverage.globaltrace, 'main()')
# make a report, telling it where you want output
- trace.print_results(show_missing=1)
+ r = trace.results()
+ r.write_results(show_missing=1)
"""
import sys, os, tempfile, types, copy, operator, inspect, exceptions, marshal
@@ -51,9 +52,6 @@ try:
except ImportError:
import pickle
-true = 1
-false = None
-
# DEBUG_MODE=1 # make this true to get printouts which help you understand what's going on
def usage(outfile):
@@ -147,7 +145,8 @@ class Ignore:
return 0
class CoverageResults:
- def __init__(self, counts=None, calledfuncs=None, infile=None, outfile=None):
+ def __init__(self, counts=None, calledfuncs=None, infile=None,
+ outfile=None):
self.counts = counts
if self.counts is None:
self.counts = {}
@@ -163,7 +162,9 @@ class CoverageResults:
try:
thingie = pickle.load(open(self.infile, 'r'))
if type(thingie) is types.DictType:
- # backwards compatibility for old trace.py after Zooko touched it but before calledfuncs --Zooko 2001-10-24
+ # backwards compatibility for old trace.py after
+ # Zooko touched it but before calledfuncs --Zooko
+ # 2001-10-24
self.update(self.__class__(thingie))
elif type(thingie) is types.TupleType and len(thingie) == 2:
counts, calledfuncs = thingie
@@ -171,7 +172,8 @@ class CoverageResults:
except (IOError, EOFError):
pass
except pickle.UnpicklingError:
- # backwards compatibility for old trace.py before Zooko touched it --Zooko 2001-10-24
+ # backwards compatibility for old trace.py before
+ # Zooko touched it --Zooko 2001-10-24
self.update(self.__class__(marshal.load(open(self.infile))))
def update(self, other):
@@ -182,7 +184,10 @@ class CoverageResults:
other_calledfuncs = other.calledfuncs
for key in other_counts.keys():
- if key != 'calledfuncs': # backwards compatibility for abortive attempt to stuff calledfuncs into self.counts, by Zooko --Zooko 2001-10-24
+ if key != 'calledfuncs':
+ # backwards compatibility for abortive attempt to
+ # stuff calledfuncs into self.counts, by Zooko
+ # --Zooko 2001-10-24
counts[key] = counts.get(key, 0) + other_counts[key]
for key in other_calledfuncs.keys():
@@ -397,14 +402,22 @@ def commonprefix(dirs):
return os.sep.join(prefix)
class Trace:
- def __init__(self, count=1, trace=1, countfuncs=0, ignoremods=(), ignoredirs=(), infile=None, outfile=None):
+ def __init__(self, count=1, trace=1, countfuncs=0, ignoremods=(),
+ ignoredirs=(), infile=None, outfile=None):
"""
- @param count true iff it should count number of times each line is executed
- @param trace true iff it should print out each line that is being counted
- @param countfuncs true iff it should just output a list of (filename, modulename, funcname,) for functions that were called at least once; This overrides `count' and `trace'
+ @param count true iff it should count number of times each
+ line is executed
+ @param trace true iff it should print out each line that is
+ being counted
+ @param countfuncs true iff it should just output a list of
+ (filename, modulename, funcname,) for functions
+ that were called at least once; This overrides
+ `count' and `trace'
@param ignoremods a list of the names of modules to ignore
- @param ignoredirs a list of the names of directories to ignore all of the (recursive) contents of
- @param infile file from which to read stored counts to be added into the results
+ @param ignoredirs a list of the names of directories to ignore
+ all of the (recursive) contents of
+ @param infile file from which to read stored counts to be
+ added into the results
@param outfile file in which to write the results
"""
self.infile = infile
@@ -506,7 +519,7 @@ class Trace:
filename, lineno, funcname, context, lineindex = \
inspect.getframeinfo(frame, 1)
- key = (filename, lineno,)
+ key = filename, lineno
self.counts[key] = self.counts.get(key, 0) + 1
# XXX not convinced that this memoizing is a performance
@@ -605,7 +618,7 @@ def main(argv=None):
ignore_dirs = []
coverdir = None
summary = 0
- listfuncs = false
+ listfuncs = False
for opt, val in opts:
if opt == "--help":
@@ -617,7 +630,7 @@ def main(argv=None):
sys.exit(0)
if opt == "-l" or opt == "--listfuncs":
- listfuncs = true
+ listfuncs = True
continue
if opt == "-t" or opt == "--trace":