summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/NodeTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-10-04 18:50:26 (GMT)
committerSteven Knight <knight@baldmt.com>2001-10-04 18:50:26 (GMT)
commita0e380faef8af1b62213a0ea1840b38fa0ecf6e4 (patch)
treebe77f7a8bd158e0297a3d566f30ecc5a631945e1 /src/engine/SCons/Node/NodeTests.py
parent659c690b1a731e72a8f79b726bc1ba8b8691a5ac (diff)
downloadSCons-a0e380faef8af1b62213a0ea1840b38fa0ecf6e4.zip
SCons-a0e380faef8af1b62213a0ea1840b38fa0ecf6e4.tar.gz
SCons-a0e380faef8af1b62213a0ea1840b38fa0ecf6e4.tar.bz2
Add a node Walker for descending the dependency tree.
Diffstat (limited to 'src/engine/SCons/Node/NodeTests.py')
-rw-r--r--src/engine/SCons/Node/NodeTests.py43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py
index e77e1b6..309229e 100644
--- a/src/engine/SCons/Node/NodeTests.py
+++ b/src/engine/SCons/Node/NodeTests.py
@@ -150,9 +150,50 @@ class NodeTestCase(unittest.TestCase):
node.add_dependency(['four', 'five', 'six'])
kids = node.children()
kids.sort()
- print kids
assert kids == ['five', 'four', 'one', 'six', 'three', 'two']
+ def test_walker(self):
+ """Test walking a Node tree.
+ """
+
+ class MyNode(SCons.Node.Node):
+ def __init__(self, name):
+ SCons.Node.Node.__init__(self)
+ self.name = name
+
+ n1 = MyNode("n1")
+
+ nw = SCons.Node.Walker(n1)
+ assert nw.next().name == "n1"
+ assert nw.next() == None
+
+ n2 = MyNode("n2")
+ n3 = MyNode("n3")
+ n1.add_source([n2, n3])
+
+ nw = SCons.Node.Walker(n1)
+ assert nw.next().name == "n2"
+ assert nw.next().name == "n3"
+ assert nw.next().name == "n1"
+ assert nw.next() == None
+
+ n4 = MyNode("n4")
+ n5 = MyNode("n5")
+ n6 = MyNode("n6")
+ n7 = MyNode("n7")
+ n2.add_source([n4, n5])
+ n3.add_dependency([n6, n7])
+
+ nw = SCons.Node.Walker(n1)
+ assert nw.next().name == "n4"
+ assert nw.next().name == "n5"
+ assert nw.next().name == "n2"
+ assert nw.next().name == "n6"
+ assert nw.next().name == "n7"
+ assert nw.next().name == "n3"
+ assert nw.next().name == "n1"
+ assert nw.next() == None
+
if __name__ == "__main__":