aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-08-21 18:09:30 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-08-22 09:13:23 +0200
commit167d7e9cbb778e2af7c7c7e2417d9da2e89eaa5d (patch)
treef4958eaa5161d16b9f0102679fc56d8c87a2cb8d /src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
parent911930787d6c74210ca745737a035760281098f8 (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.java41
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();
+ }
}