aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2017-07-20 22:34:04 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-07-21 09:15:40 +0200
commit36d0330e5034f335ef0ed506600059a0b4c996b1 (patch)
treecf7fa956ce3cc1f34864fc4e3103d9664f8ef6c8 /src/test/java/com/google/devtools/build/lib/rules/objc
parent5b99e50da3e57ffe8ab14e453f28e590a299255f (diff)
ObjcProvider is propagated as a native declared provider.
This has the added benefit of improving ObjcProvider documentation generated in bazel docs. RELNOTES: None. PiperOrigin-RevId: 162658384
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/objc')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleStubBinaryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java38
2 files changed, 39 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStubBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStubBinaryTest.java
index b6c5d09933..695a218a7b 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStubBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStubBinaryTest.java
@@ -140,7 +140,7 @@ public class AppleStubBinaryTest extends ObjcRuleTestCase {
")");
ConfiguredTarget target = getConfiguredTarget("//x:bin");
- ObjcProvider objc = (ObjcProvider) target.get(ObjcProvider.OBJC_SKYLARK_PROVIDER_NAME);
+ ObjcProvider objc = (ObjcProvider) target.get(ObjcProvider.SKYLARK_NAME);
// The propagated objc provider should only contain one file, and that file is the one selected
// for the given platform type.
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
index 3f7e492882..2cfdbad0a5 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java
@@ -1208,6 +1208,44 @@ public class ObjcSkylarkTest extends ObjcRuleTestCase {
}
}
+ /**
+ * This test verifies that its possible to use the skylark constructor of ObjcProvider as a
+ * provider key to obtain the provider. This test only needs to exist as long as there are
+ * two methods of retrieving ObjcProvider (which is true for legacy reasons). This is the
+ * 'new' method of retrieving ObjcProvider.
+ */
+ @Test
+ public void testObjcProviderSkylarkConstructor() throws Exception {
+ scratch.file("examples/rule/BUILD");
+ scratch.file(
+ "examples/rule/apple_rules.bzl",
+ "def my_rule_impl(ctx):",
+ " dep = ctx.attr.deps[0]",
+ " objc_provider = dep[apple_common.Objc]",
+ " return struct(objc=objc_provider)",
+ "my_rule = rule(implementation = my_rule_impl,",
+ " attrs = {",
+ " 'deps': attr.label_list(allow_files = False, mandatory = False),",
+ "})");
+ scratch.file("examples/apple_skylark/a.cc");
+ scratch.file(
+ "examples/apple_skylark/BUILD",
+ "package(default_visibility = ['//visibility:public'])",
+ "load('/examples/rule/apple_rules', 'my_rule')",
+ "my_rule(",
+ " name = 'my_target',",
+ " deps = [':lib'],",
+ ")",
+ "objc_library(",
+ " name = 'lib',",
+ " srcs = ['a.m'],",
+ " hdrs = ['a.h']",
+ ")");
+
+ ConfiguredTarget skylarkTarget = getConfiguredTarget("//examples/apple_skylark:my_target");
+ assertThat(skylarkTarget.getProvider(ObjcProvider.class)).isNotNull();
+ }
+
private void checkSkylarkRunMemleaksWithExpectedValue(boolean expectedValue) throws Exception {
scratch.file("examples/rule/BUILD");
scratch.file(