Esempio n. 1
0
    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]])
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
    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)
Esempio n. 6
0
 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)