diff options
| author | Steven Knight <knight@baldmt.com> | 2001-12-11 04:52:18 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2001-12-11 04:52:18 (GMT) |
| commit | ae0bbc2d9e90c35913e217e1c0ceb3fb86b2b1ee (patch) | |
| tree | 9d2ba271abf1f8872a14916f5c69d31062f0b1a5 /src/engine/SCons/TaskmasterTests.py | |
| parent | 8daebfdc7cdbded48bfd8621ef22fbfc379aaac8 (diff) | |
| download | SCons-ae0bbc2d9e90c35913e217e1c0ceb3fb86b2b1ee.zip SCons-ae0bbc2d9e90c35913e217e1c0ceb3fb86b2b1ee.tar.gz SCons-ae0bbc2d9e90c35913e217e1c0ceb3fb86b2b1ee.tar.bz2 | |
Delay scanning a node from when we ask for its children to just before we're going to descend to its dependencies.
Diffstat (limited to 'src/engine/SCons/TaskmasterTests.py')
| -rw-r--r-- | src/engine/SCons/TaskmasterTests.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/engine/SCons/TaskmasterTests.py b/src/engine/SCons/TaskmasterTests.py index ca3037d..5e661ee 100644 --- a/src/engine/SCons/TaskmasterTests.py +++ b/src/engine/SCons/TaskmasterTests.py @@ -34,9 +34,10 @@ built = None executed = None class Node: - def __init__(self, name, kids = []): + def __init__(self, name, kids = [], scans = []): self.name = name self.kids = kids + self.scans = scans self.builder = Node.build self.bsig = None self.csig = None @@ -52,6 +53,12 @@ class Node: def children(self): return self.kids + + def scan(self): + self.kids = self.kids + self.scans + for scan in self.scans: + scan.parents.append(self) + self.scans = [] def get_parents(self): return self.parents @@ -210,7 +217,23 @@ class TaskmasterTestCase(unittest.TestCase): t.executed() assert not tm.is_blocked() t = tm.next_task() - assert tm. next_task() == None + assert tm.next_task() == None + + + n1 = Node("n1") + n2 = Node("n2") + n3 = Node("n3", [n1], [n2]) + tm = SCons.Taskmaster.Taskmaster([n3]) + t = tm.next_task() + assert t.get_target() == n1 + t.executed() + t = tm.next_task() + assert t.get_target() == n2 + t.executed() + t = tm.next_task() + assert t.get_target() == n3 + t.executed() + assert tm.next_task() == None def test_cycle_detection(self): n1 = Node("n1") |
