summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/TaskmasterTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-05-08 22:56:08 (GMT)
committerSteven Knight <knight@baldmt.com>2004-05-08 22:56:08 (GMT)
commitf424fc07e9aed44d3f5df0a14d4b44081c806ff1 (patch)
tree8830c93a12c2f2919c66c0f92ec736f9b85bceda /src/engine/SCons/TaskmasterTests.py
parentb155ebc4a869e0669ee2f7124531e0b5950c7528 (diff)
downloadSCons-f424fc07e9aed44d3f5df0a14d4b44081c806ff1.zip
SCons-f424fc07e9aed44d3f5df0a14d4b44081c806ff1.tar.gz
SCons-f424fc07e9aed44d3f5df0a14d4b44081c806ff1.tar.bz2
Cleaner Task interface when using the -c option.
Diffstat (limited to 'src/engine/SCons/TaskmasterTests.py')
-rw-r--r--src/engine/SCons/TaskmasterTests.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/engine/SCons/TaskmasterTests.py b/src/engine/SCons/TaskmasterTests.py
index 1f66e06..8ca7e86 100644
--- a/src/engine/SCons/TaskmasterTests.py
+++ b/src/engine/SCons/TaskmasterTests.py
@@ -470,6 +470,71 @@ class TaskmasterTestCase(unittest.TestCase):
assert str(e.value) == "from make_ready()", str(e.value)
+ def test_make_ready_all(self):
+ class MyCalc(SCons.Taskmaster.Calc):
+ def current(self, node, sig):
+ n = str(node)
+ return n[0] == 'c'
+
+ class MyTask(SCons.Taskmaster.Task):
+ make_ready = SCons.Taskmaster.Task.make_ready_all
+
+ n1 = Node("n1")
+ c2 = Node("c2")
+ n3 = Node("n3")
+ c4 = Node("c4")
+
+ tm = SCons.Taskmaster.Taskmaster(targets = [n1, c2, n3, c4],
+ calc = MyCalc())
+
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is n1, target
+ assert target.state == SCons.Node.executing, target.state
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is c2, target
+ assert target.state == SCons.Node.up_to_date, target.state
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is n3, target
+ assert target.state == SCons.Node.executing, target.state
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is c4, target
+ assert target.state == SCons.Node.up_to_date, target.state
+ t = tm.next_task()
+ assert t is None
+
+ n1 = Node("n1")
+ c2 = Node("c2")
+ n3 = Node("n3")
+ c4 = Node("c4")
+
+ tm = SCons.Taskmaster.Taskmaster(targets = [n1, c2, n3, c4],
+ tasker = MyTask,
+ calc = MyCalc())
+
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is n1, target
+ assert target.state == SCons.Node.executing, target.state
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is c2, target
+ assert target.state == SCons.Node.executing, target.state
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is n3, target
+ assert target.state == SCons.Node.executing, target.state
+ t = tm.next_task()
+ target = t.get_target()
+ assert target is c4, target
+ assert target.state == SCons.Node.executing, target.state
+ t = tm.next_task()
+ assert t is None
+
+
def test_children_errors(self):
"""Test errors when fetching the children of a node.
"""