diff options
| author | Steven Knight <knight@baldmt.com> | 2001-11-28 04:47:15 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2001-11-28 04:47:15 (GMT) |
| commit | 6b1cb3d8c409854bbeaa06e61fc70435950f8d39 (patch) | |
| tree | 51b9c3a9351672b9a6b553d4503c4a668b95459d /src/engine/SCons/TaskmasterTests.py | |
| parent | ad78319ad3ede8f7065f9c945a3585cad04c3731 (diff) | |
| download | SCons-6b1cb3d8c409854bbeaa06e61fc70435950f8d39.zip SCons-6b1cb3d8c409854bbeaa06e61fc70435950f8d39.tar.gz SCons-6b1cb3d8c409854bbeaa06e61fc70435950f8d39.tar.bz2 | |
Detect dependency cycles
Diffstat (limited to 'src/engine/SCons/TaskmasterTests.py')
| -rw-r--r-- | src/engine/SCons/TaskmasterTests.py | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/engine/SCons/TaskmasterTests.py b/src/engine/SCons/TaskmasterTests.py index 23f2082..ca3037d 100644 --- a/src/engine/SCons/TaskmasterTests.py +++ b/src/engine/SCons/TaskmasterTests.py @@ -27,7 +27,7 @@ import sys import unittest import SCons.Taskmaster - +import SCons.Errors built = None @@ -74,7 +74,8 @@ class Node: and x), self.children(), 1) - + def __str__(self): + return self.name class TaskmasterTestCase(unittest.TestCase): @@ -210,7 +211,21 @@ class TaskmasterTestCase(unittest.TestCase): assert not tm.is_blocked() t = tm.next_task() assert tm. next_task() == None - + + def test_cycle_detection(self): + n1 = Node("n1") + n2 = Node("n2", [n1]) + n3 = Node("n3", [n2]) + n1.kids = [n3] + n3.parents.append(n1) + + try: + tm = SCons.Taskmaster.Taskmaster([n3]) + t = tm.next_task() + except SCons.Errors.UserError, e: + assert str(e) == "Dependency cycle: n3 -> n1 -> n2 -> n3" + else: + assert 0 def test_is_blocked(self): """Test whether a task is blocked |
