def test_complex(self): graph = build.DependencyGraph() graph.add_file('genfiles/bletter', {}, set(), {}, False) graph.add_file('genfiles/bnumber', {}, set(), {}, False) graph.add_file('genfiles/fmost', {}, set(), {}, False) chunks = list(build._deps_to_compile_together(graph)) expected = ['genfiles/i_number_1', 'genfiles/i_number_2', 'genfiles/i_letter_a', 'genfiles/i_letter_b'] self.assertItemsEqual(expected, [f for (f, deprule) in chunks[0]]) # fmost is at the same level as fletter and fnumber, but is # chunked differently because it's a different compile-rule. # Either one could come first. if chunks[1][0][0] == 'genfiles/fmost': expected1 = ['genfiles/fmost'] expected2 = ['genfiles/fletter', 'genfiles/fnumber'] else: expected1 = ['genfiles/fletter', 'genfiles/fnumber'] expected2 = ['genfiles/fmost'] self.assertItemsEqual(expected1, [f for (f, deprule) in chunks[1]]) self.assertItemsEqual(expected2, [f for (f, deprule) in chunks[2]]) expected = ['genfiles/bletter', 'genfiles/bnumber'] self.assertItemsEqual(expected, [f for (f, deprule) in chunks[3]])
def test_maybe_symlink_to_has_a_lower_level(self): graph = build.DependencyGraph() self._add_to_dependency_graph('genfiles/i_number_3', graph) expected = ['genfiles/bletter', 'genfiles/fletter', 'genfiles/i_letter_a', 'genfiles/i_letter_b', 'genfiles/i_number_3'] self.assertItemsEqual(expected, self._files(graph)) self.assertEqual(4, graph._get('genfiles/i_number_3').level) self.assertEqual(3, graph._get('genfiles/bletter').level)
def test_chained_deps(self): graph = build.DependencyGraph() self._add_to_dependency_graph('genfiles/bletter', graph) expected = ['genfiles/bletter', 'genfiles/fletter', 'genfiles/i_letter_a', 'genfiles/i_letter_b'] self.assertItemsEqual(expected, self._files(graph)) self.assertEqual(1, graph._get('genfiles/i_letter_a').level) self.assertEqual(1, graph._get('genfiles/i_letter_b').level) self.assertEqual(2, graph._get('genfiles/fletter').level) self.assertEqual(3, graph._get('genfiles/bletter').level)
def test_non_input_deps(self): graph = build.DependencyGraph() self._add_to_dependency_graph('genfiles/bnumber', graph) expected = ['genfiles/bnumber', 'genfiles/fnumber', 'genfiles/i_number_1', 'genfiles/i_number_2', 'genfiles/i_letter_a'] self.assertItemsEqual(expected, self._files(graph)) self.assertEqual(1, graph._get('genfiles/i_number_1').level) self.assertEqual(1, graph._get('genfiles/i_number_2').level) self.assertEqual(2, graph._get('genfiles/fnumber').level) self.assertEqual(3, graph._get('genfiles/bnumber').level) self.assertEqual(1, graph._get('genfiles/i_letter_a').level)
def test_circular_dep(self): # testing circular deps compile_rule.register_compile('CIRCULAR 1', 'genfiles/circular1', ['genfiles/circular2'], self.copy_compile) compile_rule.register_compile('CIRCULAR 2', 'genfiles/circular2', ['genfiles/circular1'], self.copy_compile) graph = build.DependencyGraph() with self.assertRaises(build.CompileFailure): self._add_to_dependency_graph('genfiles/circular1', graph)
def test_simple(self): graph = build.DependencyGraph() self._add_to_dependency_graph('genfiles/i_letter_1', graph) self.assertEqual(['genfiles/i_letter_1'], self._files(graph)) self.assertEqual(1, graph._get('genfiles/i_letter_1').level)