Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Side by Side Diff: pylib/gyp/input_test.py

Issue 664253005: Simplify and optimize FindCycles (Closed) Base URL: https://chromium.googlesource.com/external/gyp.git@master
Patch Set: Rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pylib/gyp/input.py ('k') | test/errors/dependency_cycle.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 # Copyright 2013 Google Inc. All rights reserved. 3 # Copyright 2013 Google Inc. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """Unit tests for the input.py file.""" 7 """Unit tests for the input.py file."""
8 8
9 import gyp.input 9 import gyp.input
10 import unittest 10 import unittest
(...skipping 26 matching lines...) Expand all
37 self._create_dependency(self.nodes['a'], self.nodes['b']) 37 self._create_dependency(self.nodes['a'], self.nodes['b'])
38 self._create_dependency(self.nodes['a'], self.nodes['c']) 38 self._create_dependency(self.nodes['a'], self.nodes['c'])
39 self._create_dependency(self.nodes['b'], self.nodes['c']) 39 self._create_dependency(self.nodes['b'], self.nodes['c'])
40 40
41 for label, node in self.nodes.iteritems(): 41 for label, node in self.nodes.iteritems():
42 self.assertEquals([], node.FindCycles()) 42 self.assertEquals([], node.FindCycles())
43 43
44 def test_cycle_self_reference(self): 44 def test_cycle_self_reference(self):
45 self._create_dependency(self.nodes['a'], self.nodes['a']) 45 self._create_dependency(self.nodes['a'], self.nodes['a'])
46 46
47 self.assertEquals([(self.nodes['a'], self.nodes['a'])], 47 self.assertEquals([[self.nodes['a'], self.nodes['a']]],
48 self.nodes['a'].FindCycles()) 48 self.nodes['a'].FindCycles())
49 49
50 def test_cycle_two_nodes(self): 50 def test_cycle_two_nodes(self):
51 self._create_dependency(self.nodes['a'], self.nodes['b']) 51 self._create_dependency(self.nodes['a'], self.nodes['b'])
52 self._create_dependency(self.nodes['b'], self.nodes['a']) 52 self._create_dependency(self.nodes['b'], self.nodes['a'])
53 53
54 self.assertEquals([(self.nodes['a'], self.nodes['b'], self.nodes['a'])], 54 self.assertEquals([[self.nodes['a'], self.nodes['b'], self.nodes['a']]],
55 self.nodes['a'].FindCycles()) 55 self.nodes['a'].FindCycles())
56 self.assertEquals([(self.nodes['b'], self.nodes['a'], self.nodes['b'])], 56 self.assertEquals([[self.nodes['b'], self.nodes['a'], self.nodes['b']]],
57 self.nodes['b'].FindCycles()) 57 self.nodes['b'].FindCycles())
58 58
59 def test_two_cycles(self): 59 def test_two_cycles(self):
60 self._create_dependency(self.nodes['a'], self.nodes['b']) 60 self._create_dependency(self.nodes['a'], self.nodes['b'])
61 self._create_dependency(self.nodes['b'], self.nodes['a']) 61 self._create_dependency(self.nodes['b'], self.nodes['a'])
62 62
63 self._create_dependency(self.nodes['b'], self.nodes['c']) 63 self._create_dependency(self.nodes['b'], self.nodes['c'])
64 self._create_dependency(self.nodes['c'], self.nodes['b']) 64 self._create_dependency(self.nodes['c'], self.nodes['b'])
65 65
66 cycles = self.nodes['a'].FindCycles() 66 cycles = self.nodes['a'].FindCycles()
67 self.assertTrue( 67 self.assertTrue(
68 (self.nodes['a'], self.nodes['b'], self.nodes['a']) in cycles) 68 [self.nodes['a'], self.nodes['b'], self.nodes['a']] in cycles)
69 self.assertTrue( 69 self.assertTrue(
70 (self.nodes['b'], self.nodes['c'], self.nodes['b']) in cycles) 70 [self.nodes['b'], self.nodes['c'], self.nodes['b']] in cycles)
71 self.assertEquals(2, len(cycles)) 71 self.assertEquals(2, len(cycles))
72 72
73 def test_big_cycle(self): 73 def test_big_cycle(self):
74 self._create_dependency(self.nodes['a'], self.nodes['b']) 74 self._create_dependency(self.nodes['a'], self.nodes['b'])
75 self._create_dependency(self.nodes['b'], self.nodes['c']) 75 self._create_dependency(self.nodes['b'], self.nodes['c'])
76 self._create_dependency(self.nodes['c'], self.nodes['d']) 76 self._create_dependency(self.nodes['c'], self.nodes['d'])
77 self._create_dependency(self.nodes['d'], self.nodes['e']) 77 self._create_dependency(self.nodes['d'], self.nodes['e'])
78 self._create_dependency(self.nodes['e'], self.nodes['a']) 78 self._create_dependency(self.nodes['e'], self.nodes['a'])
79 79
80 self.assertEquals([(self.nodes['a'], 80 self.assertEquals([[self.nodes['a'],
81 self.nodes['b'], 81 self.nodes['b'],
82 self.nodes['c'], 82 self.nodes['c'],
83 self.nodes['d'], 83 self.nodes['d'],
84 self.nodes['e'], 84 self.nodes['e'],
85 self.nodes['a'])], 85 self.nodes['a']]],
86 self.nodes['a'].FindCycles()) 86 self.nodes['a'].FindCycles())
87 87
88 88
89 if __name__ == '__main__': 89 if __name__ == '__main__':
90 unittest.main() 90 unittest.main()
OLDNEW
« no previous file with comments | « pylib/gyp/input.py ('k') | test/errors/dependency_cycle.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698