def test_two_deps(self): depfile = action_tracer.parse_depfile([ "A: B", "C: D E", ]) self.assertEqual(depfile.deps, [ action_tracer.DepEdges(ins={"B"}, outs={"A"}), action_tracer.DepEdges(ins={"D", "E"}, outs={"C"}), ]) self.assertEqual(depfile.all_ins, {"B", "D", "E"}) self.assertEqual(depfile.all_outs, {"A", "C"})
def test_blank_line(self): depfile = action_tracer.parse_depfile([ "a:b", " ", "b:", ]) self.assertEqual(depfile.deps, [ action_tracer.DepEdges(ins={"b"}, outs={"a"}), action_tracer.DepEdges(ins=set(), outs={"b"}), ]) self.assertEqual(depfile.all_ins, {"b"}) self.assertEqual(depfile.all_outs, {"a", "b"})
def test_space_in_filename(self): depfile = action_tracer.parse_depfile(["a\\ b: c d"]) self.assertEqual(depfile.deps, [ action_tracer.DepEdges(ins={"c", "d"}, outs={"a b"}), ]) self.assertEqual(depfile.all_ins, {"c", "d"}) self.assertEqual(depfile.all_outs, {"a b"})
def test_multiple_ins_multiple_outs(self): depfile = action_tracer.parse_depfile(["a b: c d"]) self.assertEqual(depfile.deps, [ action_tracer.DepEdges(ins={"c", "d"}, outs={"a", "b"}), ]) self.assertEqual(depfile.all_ins, {"c", "d"}) self.assertEqual(depfile.all_outs, {"a", "b"})
def test_comment(self): depfile = action_tracer.parse_depfile([ " # a:b", "b:", ]) self.assertEqual(depfile.deps, [ action_tracer.DepEdges(ins=set(), outs={"b"}), ]) self.assertEqual(depfile.all_ins, set()) self.assertEqual(depfile.all_outs, {"b"})
def test_carriage_continuation(self): depfile = action_tracer.parse_depfile([ "a \\\r\n", "b: c \\\r\n", "d e", ]) self.assertEqual(depfile.deps, [ action_tracer.DepEdges(ins={"c", "d", "e"}, outs={"a", "b"}), ]) self.assertEqual(depfile.all_ins, {"c", "d", "e"}) self.assertEqual(depfile.all_outs, {"a", "b"})