summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/TaskmasterTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-12-11 04:52:18 (GMT)
committerSteven Knight <knight@baldmt.com>2001-12-11 04:52:18 (GMT)
commitae0bbc2d9e90c35913e217e1c0ceb3fb86b2b1ee (patch)
tree9d2ba271abf1f8872a14916f5c69d31062f0b1a5 /src/engine/SCons/TaskmasterTests.py
parent8daebfdc7cdbded48bfd8621ef22fbfc379aaac8 (diff)
downloadSCons-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.py27
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")