diff options
author | 2017-08-21 18:09:30 +0200 | |
---|---|---|
committer | 2017-08-22 09:13:23 +0200 | |
commit | 167d7e9cbb778e2af7c7c7e2417d9da2e89eaa5d (patch) | |
tree | f4958eaa5161d16b9f0102679fc56d8c87a2cb8d /src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java | |
parent | 911930787d6c74210ca745737a035760281098f8 (diff) |
Blaze exports a feature for actions with objective c source in their transitive
closure.
PiperOrigin-RevId: 165934905
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java index 9e2d0c07d0..3409176a53 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java @@ -1601,4 +1601,45 @@ public class ObjcLibraryTest extends ObjcRuleTestCase { public void testCustomModuleMap() throws Exception { checkCustomModuleMap(RULE_TYPE); } + + private boolean containsObjcFeature(String srcName) throws Exception { + MockObjcSupport.setup( + mockToolsConfig, + "feature {", + " name: 'contains_objc_sources'", + " flag_set {", + " flag_group {", + " flag: 'DUMMY_FLAG'", + " }", + " action: 'c++-compile'", + " }", + "}"); + createLibraryTargetWriter("//bottom:lib").setList("srcs", srcName).write(); + createLibraryTargetWriter("//middle:lib") + .setList("srcs", "b.cc") + .setList("deps", "//bottom:lib") + .write(); + createLibraryTargetWriter("//top:lib") + .setList("srcs", "a.cc") + .setList("deps", "//middle:lib") + .write(); + + CommandAction compileAction = compileAction("//top:lib", "a.o"); + return compileAction.getArguments().contains("DUMMY_FLAG"); + } + + @Test + public void testObjcSourcesFeatureCC() throws Exception { + assertThat(containsObjcFeature("c.cc")).isFalse(); + } + + @Test + public void testObjcSourcesFeatureObjc() throws Exception { + assertThat(containsObjcFeature("c.m")).isTrue(); + } + + @Test + public void testObjcSourcesFeatureObjcPlusPlus() throws Exception { + assertThat(containsObjcFeature("c.mm")).isTrue(); + } } |