summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/ExecutorTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2005-01-23 03:05:05 (GMT)
committerSteven Knight <knight@baldmt.com>2005-01-23 03:05:05 (GMT)
commit9b2dae34a2a0fd013b7849e4f8a8d7adb1bc136c (patch)
treea3d67b02d8d2a64a38b697baafaede1d7004be79 /src/engine/SCons/ExecutorTests.py
parentf7158d025b936cc3cf3f0579ef39df98dc74e8cb (diff)
downloadSCons-9b2dae34a2a0fd013b7849e4f8a8d7adb1bc136c.zip
SCons-9b2dae34a2a0fd013b7849e4f8a8d7adb1bc136c.tar.gz
SCons-9b2dae34a2a0fd013b7849e4f8a8d7adb1bc136c.tar.bz2
Use WeakValueDicts in the Memoizer to cut down on memory use.
Diffstat (limited to 'src/engine/SCons/ExecutorTests.py')
-rw-r--r--src/engine/SCons/ExecutorTests.py28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/engine/SCons/ExecutorTests.py b/src/engine/SCons/ExecutorTests.py
index 555d485..189cbad 100644
--- a/src/engine/SCons/ExecutorTests.py
+++ b/src/engine/SCons/ExecutorTests.py
@@ -66,6 +66,7 @@ class MyNode:
self.implicit = []
self.pre_actions = pre
self.post_actions = post
+ self.missing_val = None
def __str__(self):
return self.name
def build(self, errfunc=None):
@@ -81,6 +82,10 @@ class MyNode:
return ['dep-' + str(self)]
def add_to_implicit(self, deps):
self.implicit.extend(deps)
+ def missing(self):
+ return self.missing_val
+ def calc_signature(self, calc):
+ return 'cs-'+calc+'-'+self.name
class MyScanner:
def path(self, env, cwd, target, source):
@@ -287,7 +292,7 @@ class ExecutorTestCase(unittest.TestCase):
def test_scan(self):
"""Test scanning the sources for implicit dependencies"""
- env = MyEnvironment(S='string', SCANNERVAL='scn')
+ env = MyEnvironment(S='string')
targets = [MyNode('t')]
sources = [MyNode('s1'), MyNode('s2')]
x = SCons.Executor.Executor('b', env, [{}], targets, sources)
@@ -295,6 +300,27 @@ class ExecutorTestCase(unittest.TestCase):
deps = x.scan(scanner)
assert targets[0].implicit == ['dep-s1', 'dep-s2'], targets[0].implicit
+ def test_get_missing_sources(self):
+ """Test the ability to check if any sources are missing"""
+ env = MyEnvironment()
+ targets = [MyNode('t')]
+ sources = [MyNode('s1'), MyNode('s2')]
+ x = SCons.Executor.Executor('b', env, [{}], targets, sources)
+ sources[0].missing_val = 1
+ missing = x.get_missing_sources()
+ assert missing == [sources[0]], missing
+
+ def test_get_source_binfo(self):
+ """Test fetching the build signature info for the sources"""
+ env = MyEnvironment()
+ targets = [MyNode('t')]
+ sources = [MyNode('s1'), MyNode('s2')]
+ x = SCons.Executor.Executor('b', env, [{}], targets, sources)
+ b = x.get_source_binfo('C')
+ assert b == [(sources[0], 'cs-C-s1', 's1'),
+ (sources[1], 'cs-C-s2', 's2')], b
+
+
if __name__ == "__main__":
suite = unittest.TestSuite()