diff options
| author | Steven Knight <knight@baldmt.com> | 2003-07-23 14:20:43 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2003-07-23 14:20:43 (GMT) |
| commit | 5d238601a22fa009de4df38e0257c405f9b243db (patch) | |
| tree | fb5cb1676ff40c4f66c49b4fb5893fa30d72765a /src/engine/SCons/Node/FSTests.py | |
| parent | 628a6c6cbdbcbcceec438d2063f51b16e65f37aa (diff) | |
| download | SCons-5d238601a22fa009de4df38e0257c405f9b243db.zip SCons-5d238601a22fa009de4df38e0257c405f9b243db.tar.gz SCons-5d238601a22fa009de4df38e0257c405f9b243db.tar.bz2 | |
Fix a problem when using --cache-show.
Diffstat (limited to 'src/engine/SCons/Node/FSTests.py')
| -rw-r--r-- | src/engine/SCons/Node/FSTests.py | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index 13f171e..a80c8f9 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -86,11 +86,11 @@ class Action: return [self] class Builder: - def __init__(self, factory): + def __init__(self, factory, action=Action()): self.factory = factory self.env = Environment() self.overrides = {} - self.action = Action() + self.action = action def get_actions(self): return [self] @@ -1499,6 +1499,32 @@ class CacheDirTestCase(unittest.TestCase): SCons.Warnings.warningAsException(old_warn_exceptions) SCons.Warnings.suppressWarningClass(SCons.Warnings.CacheWriteErrorWarning) + # Verify that we don't blow up if there's no strfunction() + # for an action. + act = Action() + act.strfunction = None + f8 = fs.File("cd.f8") + f8.builder_set(Builder(fs.File, action=act)) + f8.env_set(Environment()) + try: + SCons.Node.FS.CacheRetrieveSilent = retrieve_succeed + self.retrieved = [] + built_it = None + + f8.build() + assert self.retrieved == [f8], self.retrieved + assert built_it is None, built_it + + SCons.Node.FS.CacheRetrieveSilent = retrieve_fail + self.retrieved = [] + built_it = None + + f8.build() + assert self.retrieved == [f8], self.retrieved + assert built_it, built_it + finally: + SCons.Node.FS.CacheRetrieveSilent = save_CacheRetrieveSilent + class clearTestCase(unittest.TestCase): def runTest(self): fs = SCons.Node.FS.FS() |
