diff options
author | Steven Knight <knight@baldmt.com> | 2004-12-29 21:04:56 +0000 |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-12-29 21:04:56 +0000 |
commit | a2b119edf2fdd972c426f08f9898fb2efbe36646 (patch) | |
tree | 12b6722f049211b37574477e82ab5c49a0521052 /src/engine/SCons/BuilderTests.py | |
parent | 9113805b081ef58fdf56bd5b5a9be6afad0b7a41 (diff) | |
download | scons-a2b119edf2fdd972c426f08f9898fb2efbe36646.tar.gz |
Add a Memoizer metaclass to collect the logic for caching values in one location. Convert by-hand caching to use of Memoizer. (Kevin Quick)
Diffstat (limited to 'src/engine/SCons/BuilderTests.py')
-rw-r--r-- | src/engine/SCons/BuilderTests.py | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/src/engine/SCons/BuilderTests.py b/src/engine/SCons/BuilderTests.py index 5cb07e80..005f3de4 100644 --- a/src/engine/SCons/BuilderTests.py +++ b/src/engine/SCons/BuilderTests.py @@ -948,9 +948,9 @@ class BuilderTestCase(unittest.TestCase): src = tgt.sources[0] assert tgt.builder.target_scanner != scanner, tgt.builder.target_scanner assert tgt.builder.source_scanner is None, tgt.builder.source_scanner - assert tgt.get_source_scanner(bar_y, env1) is None, tgt.get_source_scanner(bar_y, env1) + assert tgt.get_source_scanner(bar_y) is None, tgt.get_source_scanner(bar_y) assert not src.has_builder(), src.has_builder() - assert src.get_source_scanner(bar_y, env1) is None, src.get_source_scanner(bar_y, env1) + assert src.get_source_scanner(bar_y) is None, src.get_source_scanner(bar_y) # An Environment that has suffix-specified SCANNERS should # provide a source scanner to the target. @@ -974,10 +974,10 @@ class BuilderTestCase(unittest.TestCase): src = tgt.sources[0] assert tgt.builder.target_scanner != scanner, tgt.builder.target_scanner assert not tgt.builder.source_scanner, tgt.builder.source_scanner - assert tgt.get_source_scanner(bar_y, env3), tgt.get_source_scanner(bar_y, env3) - assert str(tgt.get_source_scanner(bar_y, env3)) == 'EnvTestScanner', tgt.get_source_scanner(bar_y, env3) + assert tgt.get_source_scanner(bar_y), tgt.get_source_scanner(bar_y) + assert str(tgt.get_source_scanner(bar_y)) == 'EnvTestScanner', tgt.get_source_scanner(bar_y) assert not src.has_builder(), src.has_builder() - assert src.get_source_scanner(bar_y, env3) is None, src.get_source_scanner(bar_y, env3) + assert src.get_source_scanner(bar_y) is None, src.get_source_scanner(bar_y) # Can't simply specify the scanner as a builder argument; it's # global to all invocations of this builder. @@ -985,10 +985,10 @@ class BuilderTestCase(unittest.TestCase): src = tgt.sources[0] assert tgt.builder.target_scanner != scanner, tgt.builder.target_scanner assert not tgt.builder.source_scanner, tgt.builder.source_scanner - assert tgt.get_source_scanner(bar_y, env3), tgt.get_source_scanner(bar_y, env3) - assert str(tgt.get_source_scanner(bar_y, env3)) == 'EnvTestScanner', tgt.get_source_scanner(bar_y, env3) + assert tgt.get_source_scanner(bar_y), tgt.get_source_scanner(bar_y) + assert str(tgt.get_source_scanner(bar_y)) == 'EnvTestScanner', tgt.get_source_scanner(bar_y) assert not src.has_builder(), src.has_builder() - assert src.get_source_scanner(bar_y, env3) is None, src.get_source_scanner(bar_y, env3) + assert src.get_source_scanner(bar_y) is None, src.get_source_scanner(bar_y) # Now use a builder that actually has scanners and ensure that # the target is set accordingly (using the specified scanner @@ -1002,11 +1002,11 @@ class BuilderTestCase(unittest.TestCase): assert tgt.builder.source_scanner, tgt.builder.source_scanner assert tgt.builder.source_scanner == scanner, tgt.builder.source_scanner assert str(tgt.builder.source_scanner) == 'TestScanner', str(tgt.builder.source_scanner) - assert tgt.get_source_scanner(bar_y, env3), tgt.get_source_scanner(bar_y, env3) - assert tgt.get_source_scanner(bar_y, env3) == scanner, tgt.get_source_scanner(bar_y, env3) - assert str(tgt.get_source_scanner(bar_y, env3)) == 'TestScanner', tgt.get_source_scanner(bar_y, env3) + assert tgt.get_source_scanner(bar_y), tgt.get_source_scanner(bar_y) + assert tgt.get_source_scanner(bar_y) == scanner, tgt.get_source_scanner(bar_y) + assert str(tgt.get_source_scanner(bar_y)) == 'TestScanner', tgt.get_source_scanner(bar_y) assert not src.has_builder(), src.has_builder() - assert src.get_source_scanner(bar_y, env3) is None, src.get_source_scanner(bar_y, env3) + assert src.get_source_scanner(bar_y) is None, src.get_source_scanner(bar_y) @@ -1418,13 +1418,25 @@ class BuilderTestCase(unittest.TestCase): assert b3.get_name(env) == 'bldr3', b3.get_name(env) assert b4.get_name(env) == 'bldr4', b4.get_name(env) assert b5.get_name(env) == 'builder5', b5.get_name(env) - assert b6.get_name(env) == 'SCons.Builder.BuilderBase', b6.get_name(env) + # With no name, get_name will return the class. Allow + # for caching... + assert b6.get_name(env) in [ + 'SCons.Builder.BuilderBase', + "<class 'SCons.Builder.BuilderBase'>", + 'SCons.Memoize.BuilderBase', + "<class 'SCons.Memoize.BuilderBase'>", + ], b6.get_name(env) assert b1.get_name(env2) == 'B1', b1.get_name(env2) assert b2.get_name(env2) == 'B2', b2.get_name(env2) assert b3.get_name(env2) == 'B3', b3.get_name(env2) assert b4.get_name(env2) == 'B4', b4.get_name(env2) assert b5.get_name(env2) == 'builder5', b5.get_name(env2) - assert b6.get_name(env2) == 'SCons.Builder.BuilderBase', b6.get_name(env2) + assert b6.get_name(env2) in [ + 'SCons.Builder.BuilderBase', + "<class 'SCons.Builder.BuilderBase'>", + 'SCons.Memoize.BuilderBase', + "<class 'SCons.Memoize.BuilderBase'>", + ], b6.get_name(env2) for B in b3.get_src_builders(env): assert B.get_name(env) == 'bldr1' |