Index: tools/gn/target_unittest.cc |
diff --git a/tools/gn/target_unittest.cc b/tools/gn/target_unittest.cc |
index 9bfeed5c32ebb7873f95142508c84b8949684d92..9b413ef8e1d72c5497da7dac15d50157c3bc6190 100644 |
--- a/tools/gn/target_unittest.cc |
+++ b/tools/gn/target_unittest.cc |
@@ -869,6 +869,39 @@ TEST(Target, ResolvePrecompiledHeaders) { |
err.help_text()); |
} |
+TEST(Target, PrecompiledHeaderSupport) { |
+ TestWithScope setup; |
+ Err err; |
+ |
+ std::string pch_1("pch.h"); |
+ SourceFile pcs_1("//pcs.cc"); |
+ |
+ // No source files, so it doesn't matter |
+ TestTarget a(setup, "//a", Target::SOURCE_SET); |
+ a.config_values().set_precompiled_header(pch_1); |
+ a.config_values().set_precompiled_source(pcs_1); |
+ ASSERT_TRUE(a.OnResolved(&err)); |
+ |
+ // TestWithScope toolchain doesn't support precompiled headers. |
+ TestTarget b(setup, "//b", Target::SOURCE_SET); |
+ b.config_values().set_precompiled_header(pch_1); |
+ b.config_values().set_precompiled_source(pcs_1); |
+ b.sources().push_back(SourceFile("//foo/b1.c")); |
+ ASSERT_FALSE(b.OnResolved(&err)); |
+ |
+ Tool* cxx = setup.toolchain()->GetTool(Toolchain::TYPE_CXX); |
+ ASSERT_NE(nullptr, cxx); |
+ |
+ cxx->set_precompiled_header_type(Tool::PCH_GCC); |
+ |
+ // CXX tool now supports PCHs. |
+ TestTarget c(setup, "//c", Target::SOURCE_SET); |
+ c.config_values().set_precompiled_header(pch_1); |
+ c.config_values().set_precompiled_source(pcs_1); |
+ c.sources().push_back(SourceFile("//foo/c1.cpp")); |
+ ASSERT_TRUE(c.OnResolved(&err)); |
+} |
+ |
TEST(Target, AssertNoDeps) { |
TestWithScope setup; |
Err err; |