aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2017-08-31 00:48:01 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-08-31 13:44:56 +0200
commit618a2bf3574015d1d341d59a34e4d0bf285ad5bf (patch)
tree669626a5c80f37660007faa1827d4541e1759ca5 /src/test/java/com/google/devtools
parent58e3891d7092b7fe28126d411fb602d307538e89 (diff)
Rollforward #2 of "AppleBinary and AppleStaticLibrary no longer propagate unwrapped ObjcProvider", after changes made to apple bazel rules to be compatible.
RELNOTES: None. PiperOrigin-RevId: 167061765
Diffstat (limited to 'src/test/java/com/google/devtools')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java21
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java13
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java8
7 files changed, 42 insertions, 12 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java
index 2c4026e678..e9085c8cec 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleBinaryTest.java
@@ -1440,7 +1440,7 @@ public class AppleBinaryTest extends ObjcRuleTestCase {
@Test
public void testCustomModuleMap() throws Exception {
- checkCustomModuleMap(RULE_TYPE);
+ checkCustomModuleMap(RULE_TYPE, true);
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
index d76970aa85..ca89f67c94 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
@@ -149,7 +149,9 @@ public class AppleStaticLibraryTest extends ObjcRuleTestCase {
" resources = [':avoid.png']",
")");
- ObjcProvider provider = providerForTarget("//package:test");
+ ObjcProvider provider = getConfiguredTarget("//package:test")
+ .get(AppleStaticLibraryProvider.SKYLARK_CONSTRUCTOR)
+ .getDepsObjcProvider();
// Do not remove SDK_FRAMEWORK values in avoid_deps.
assertThat(provider.get(ObjcProvider.SDK_FRAMEWORK))
.containsAllOf(new SdkFramework("AvoidSDK"), new SdkFramework("BaseSDK"));
@@ -623,4 +625,4 @@ public class AppleStaticLibraryTest extends ObjcRuleTestCase {
assertThat(Artifact.toRootRelativePaths(action.getInputs())).doesNotContain(
"package/libavoidCcLib.a");
}
-} \ No newline at end of file
+}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java
index 7bb3872c31..6c31986a0a 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/IosTestTest.java
@@ -1167,7 +1167,22 @@ public class IosTestTest extends ObjcRuleTestCase {
// Usually, an ios_test would depend on apple_binary through a skylark_ios_application in its
// 'binary' attribute. Since we don't have skylark_ios_application here, we use the 'deps'
// attribute instead.
+ scratch.file("skylarkstub/BUILD");
+ scratch.file("skylarkstub/skylark_stub.bzl",
+ "def skylark_ios_application_stub_impl(ctx):",
+ " bin_provider = ctx.attr.binary[apple_common.AppleExecutableBinary]",
+ " return struct(objc=bin_provider.objc)",
+ "skylark_ios_application_stub = rule(",
+ " skylark_ios_application_stub_impl,",
+ // Both 'binary' and 'deps' are needed because ObjcProtoAspect is applied transitively
+ // along attribute 'deps' only.
+ " attrs = {'binary': attr.label(mandatory=True,",
+ " providers=[apple_common.AppleExecutableBinary])},",
+ " fragments = ['apple', 'objc'],",
+ ")");
+
scratch.file("x/BUILD",
+ "load('//skylarkstub:skylark_stub.bzl', 'skylark_ios_application_stub')",
"genrule(",
" name = 'gen_hdrs',",
" outs = ['generated.h'],",
@@ -1179,6 +1194,10 @@ public class IosTestTest extends ObjcRuleTestCase {
" platform_type = 'ios',",
" hdrs = ['generated.h'],",
")",
+ "skylark_ios_application_stub(",
+ " name = 'stub_application',",
+ " binary = ':apple_bin',",
+ ")",
"objc_binary(",
" name = 'bin',",
" srcs = ['bin.m'],",
@@ -1192,7 +1211,7 @@ public class IosTestTest extends ObjcRuleTestCase {
" srcs = ['test.m'],",
" xctest = 1,",
" xctest_app = ':testApp',",
- " deps = [':apple_bin']",
+ " deps = [':stub_application']",
")");
CommandAction compileAction = compileAction("//x:test", "test.o");
// The genfiles root for child configurations must be present in the compile action so that
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java
index 255841d605..591eeaca3b 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryTest.java
@@ -928,7 +928,7 @@ public class ObjcBinaryTest extends ObjcRuleTestCase {
@Test
public void testCustomModuleMap() throws Exception {
- checkCustomModuleMap(RULE_TYPE);
+ checkCustomModuleMap(RULE_TYPE, false);
}
@Test
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 056a607c39..074a556097 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
@@ -1564,6 +1564,6 @@ public class ObjcLibraryTest extends ObjcRuleTestCase {
@Test
public void testCustomModuleMap() throws Exception {
- checkCustomModuleMap(RULE_TYPE);
+ checkCustomModuleMap(RULE_TYPE, false);
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
index 043f21b8cb..ca872738ca 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryTest.java
@@ -679,12 +679,12 @@ public class ObjcProtoLibraryTest extends ObjcRuleTestCase {
@Test
public void testModulemapCreatedForNonLinkingTargets() throws Exception {
- checkOnlyLibModuleMapsArePresentForTarget("//package:opl_protobuf");
+ checkOnlyLibModuleMapsArePresentForTarget("//package:opl_protobuf", false);
}
@Test
public void testModulemapNotCreatedForLinkingTargets() throws Exception {
- checkOnlyLibModuleMapsArePresentForTarget("//package:opl_binary");
+ checkOnlyLibModuleMapsArePresentForTarget("//package:opl_binary", true);
}
@Test
@@ -760,7 +760,8 @@ public class ObjcProtoLibraryTest extends ObjcRuleTestCase {
return Joiner.on('\n').join(Ordering.natural().immutableSortedCopy(elements));
}
- private void checkOnlyLibModuleMapsArePresentForTarget(String target) throws Exception {
+ private void checkOnlyLibModuleMapsArePresentForTarget(String target,
+ boolean fromBinary) throws Exception {
Artifact libModuleMap =
getGenfilesArtifact(
"opl_protobuf.modulemaps/module.modulemap",
@@ -770,7 +771,11 @@ public class ObjcProtoLibraryTest extends ObjcRuleTestCase {
"protobuf_lib.modulemaps/module.modulemap",
getConfiguredTarget("//objcproto:protobuf_lib"));
- ObjcProvider provider = providerForTarget(target);
+ ObjcProvider provider = fromBinary
+ ? getConfiguredTarget(target)
+ .get(AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR)
+ .getDepsObjcProvider()
+ : providerForTarget(target);
assertThat(Artifact.toRootRelativePaths(provider.get(ObjcProvider.MODULE_MAP).toSet()))
.containsExactlyElementsIn(
Artifact.toRootRelativePaths(ImmutableSet.of(libModuleMap, protolibModuleMap)));
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
index 7baa058ad7..6051f4ae00 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
@@ -4892,7 +4892,7 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
.isEqualTo("a.o");
}
- protected void checkCustomModuleMap(RuleType ruleType) throws Exception {
+ protected void checkCustomModuleMap(RuleType ruleType, boolean fromBinary) throws Exception {
useConfiguration("--experimental_objc_enable_module_maps");
ruleType.scratchTarget(scratch, "srcs", "['a.m']", "deps", "['//z:testModuleMap']");
scratch.file("x/a.m");
@@ -4920,7 +4920,11 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
assertThat(Artifact.toExecPaths(provider.get(MODULE_MAP)))
.containsExactly("y/module.modulemap");
- provider = providerForTarget("//x:x");
+ provider = fromBinary
+ ? getConfiguredTarget("//x:x")
+ .get(AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR)
+ .getDepsObjcProvider()
+ : providerForTarget("//x:x");
assertThat(Artifact.toExecPaths(provider.get(MODULE_MAP))).contains("y/module.modulemap");
}