Index: tools/gn/header_checker_unittest.cc |
diff --git a/tools/gn/header_checker_unittest.cc b/tools/gn/header_checker_unittest.cc |
index 19d5e4054fd4f850d0f6672180166c57b7ca8abb..f719247079b63ce58ca4283a4ce64437f68e1a6d 100644 |
--- a/tools/gn/header_checker_unittest.cc |
+++ b/tools/gn/header_checker_unittest.cc |
@@ -288,3 +288,31 @@ TEST_F(HeaderCheckerTest, CheckIncludeAllowCircular) { |
EXPECT_TRUE(checker->CheckInclude(&b_, input_file, a_public, range, &err)); |
EXPECT_FALSE(err.has_error()); |
} |
+ |
+TEST_F(HeaderCheckerTest, SkipGeneratedFilesFromOtherTargets) { |
+ Err err; |
+ |
+ Target action(setup_.settings(), Label(SourceDir("//a"), "generate_file")); |
+ action.set_output_type(Target::ACTION); |
+ action.SetToolchain(setup_.toolchain(), &err); |
+ action.visibility().SetPublic(); |
+ action.action_values().outputs() = |
+ SubstitutionList::MakeForTest("//out/Debug/gen/a/a.h"); |
+ |
+ Target target(setup_.settings(), Label(SourceDir("//a"), "use_file")); |
+ target.set_output_type(Target::SOURCE_SET); |
+ target.SetToolchain(setup_.toolchain(), &err); |
+ target.visibility().SetPublic(); |
+ target.sources().push_back(SourceFile("//out/Debug/gen/a/a.h")); |
+ |
+ std::vector<const Target*> all_targets; |
+ all_targets.push_back(&action); |
+ all_targets.push_back(&target); |
+ std::vector<const Target*> to_check; |
+ to_check.push_back(&target); |
+ bool force_check = false; |
+ std::vector<Err> errs; |
+ scoped_refptr<HeaderChecker> checker( |
+ new HeaderChecker(setup_.build_settings(), all_targets)); |
+ EXPECT_TRUE(checker->Run(to_check, force_check, &errs)); |
+} |