From 42c0d2e336122b4ac5d84a61581cbbf4d5dd4f97 Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Fri, 5 Jan 2007 18:12:04 -0700 Subject: [PATCH] disable figleaf tracing during py_ecc, since it takes *forever*, especially on the slow buildslave --- Makefile | 2 +- src/allmydata/encode.py | 2 +- src/allmydata/test/trial_figleaf.py | 7 ++++++- src/allmydata/util/figleaf.py | 18 +++++++++--------- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 515edc76..efac3630 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ REPORTER= test: build $(PP) trial $(REPORTER) $(TEST) -test-figleaf: +test-figleaf: build $(PP) trial --reporter=bwverbose-figleaf $(TEST) figleaf-output: diff --git a/src/allmydata/encode.py b/src/allmydata/encode.py index ae102789..d337689c 100644 --- a/src/allmydata/encode.py +++ b/src/allmydata/encode.py @@ -114,7 +114,7 @@ class PyRSEncoder(object): # of 6.7kBps. Zooko's mom's 1.8GHz G5 got 2.2kBps . slave3 took 40s to # construct the LUT and encodes at 1.5kBps, and for some reason took more # than 20 minutes to run the test_encode_share tests, so I disabled most - # of them. + # of them. (uh, hello, it's running figleaf) def set_params(self, data_size, required_shares, total_shares): assert required_shares <= total_shares diff --git a/src/allmydata/test/trial_figleaf.py b/src/allmydata/test/trial_figleaf.py index 5b00615b..57859f12 100644 --- a/src/allmydata/test/trial_figleaf.py +++ b/src/allmydata/test/trial_figleaf.py @@ -60,7 +60,12 @@ from twisted.trial.reporter import TreeReporter, VerboseTextReporter # finish in printSummary. from allmydata.util import figleaf -figleaf.start() +# don't cover py_ecc, it takes forever +from allmydata.py_ecc import rs_code +import os +py_ecc_dir = os.path.realpath(os.path.dirname(rs_code.__file__)) +figleaf.start(ignore_prefixes=[py_ecc_dir]) + class FigleafReporter(TreeReporter): def __init__(self, *args, **kwargs): diff --git a/src/allmydata/util/figleaf.py b/src/allmydata/util/figleaf.py index 38045ef4..03d8c08d 100644 --- a/src/allmydata/util/figleaf.py +++ b/src/allmydata/util/figleaf.py @@ -158,10 +158,10 @@ class CodeTracer: """ Basic code coverage tracking, using sys.settrace. """ - def __init__(self, ignore_prefix=None): + def __init__(self, ignore_prefixes=[]): self.c = {} self.started = False - self.ignore_prefix = ignore_prefix + self.ignore_prefixes = ignore_prefixes def start(self): """ @@ -187,9 +187,9 @@ class CodeTracer: global trace function. """ if e is 'call': - if self.ignore_prefix and \ - f.f_code.co_filename.startswith(self.ignore_prefix): - return + for p in self.ignore_prefixes: + if f.f_code.co_filename.startswith(p): + return return self.t @@ -316,7 +316,7 @@ def annotate_coverage(in_fp, out_fp, covered, all_lines, _t = None -def start(ignore_python_lib=True): +def start(ignore_python_lib=True, ignore_prefixes=[]): """ Start tracing code coverage. If 'ignore_python_lib' is True, ignore all files that live below the same directory as the 'os' @@ -324,10 +324,10 @@ def start(ignore_python_lib=True): """ global _t if _t is None: - ignore_path = None + ignore_prefixes = ignore_prefixes[:] if ignore_python_lib: - ignore_path = os.path.realpath(os.path.dirname(os.__file__)) - _t = CodeTracer(ignore_path) + ignore_prefixes.append(os.path.realpath(os.path.dirname(os.__file__))) + _t = CodeTracer(ignore_prefixes) _t.start() -- 2.45.2