diff options
author | 2017-07-20 22:34:04 +0200 | |
---|---|---|
committer | 2017-07-21 09:15:40 +0200 | |
commit | 36d0330e5034f335ef0ed506600059a0b4c996b1 (patch) | |
tree | cf7fa956ce3cc1f34864fc4e3103d9664f8ef6c8 /src/test/java/com/google/devtools/build/lib/rules/objc | |
parent | 5b99e50da3e57ffe8ab14e453f28e590a299255f (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.java | 2 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java | 38 |
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( |