diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java index 8f5f91eb33..a91016c90e 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java @@ -709,6 +709,54 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { } @Test + public void testProcessHeadersInDependencies() throws Exception { + AnalysisMock.get() + .ccSupport() + .setupCrosstool(mockToolsConfig, MockCcSupport.HEADER_PROCESSING_FEATURE_CONFIGURATION); + useConfiguration("--features=parse_headers", "--process_headers_in_dependencies"); + ConfiguredTarget x = + scratchConfiguredTarget( + "foo", + "x", + "cc_library(name = 'x', deps = [':y'])", + "cc_library(name = 'y', hdrs = ['y.h'])"); + assertThat(ActionsTestUtil.baseNamesOf(getOutputGroup(x, OutputGroupProvider.HIDDEN_TOP_LEVEL))) + .isEqualTo("y.h.processed"); + } + + @Test + public void testDoNotProcessHeadersInDependencies() throws Exception { + AnalysisMock.get() + .ccSupport() + .setupCrosstool(mockToolsConfig, MockCcSupport.HEADER_PROCESSING_FEATURE_CONFIGURATION); + useConfiguration("--features=parse_headers"); + ConfiguredTarget x = + scratchConfiguredTarget( + "foo", + "x", + "cc_library(name = 'x', deps = [':y'])", + "cc_library(name = 'y', hdrs = ['y.h'])"); + assertThat(ActionsTestUtil.baseNamesOf(getOutputGroup(x, OutputGroupProvider.HIDDEN_TOP_LEVEL))) + .isEmpty(); + } + + @Test + public void testProcessHeadersInCompileOnlyMode() throws Exception { + AnalysisMock.get() + .ccSupport() + .setupCrosstool(mockToolsConfig, MockCcSupport.HEADER_PROCESSING_FEATURE_CONFIGURATION); + useConfiguration("--features=parse_headers", "--process_headers_in_dependencies"); + ConfiguredTarget y = + scratchConfiguredTarget( + "foo", + "y", + "cc_library(name = 'x', deps = [':y'])", + "cc_library(name = 'y', hdrs = ['y.h'])"); + assertThat(ActionsTestUtil.baseNamesOf(getOutputGroup(y, OutputGroupProvider.FILES_TO_COMPILE))) + .isEqualTo("y.h.processed"); + } + + @Test public void testIncludePathOrder() throws Exception { scratch.file("foo/BUILD", "cc_library(", |