Fix tests to work with Starlark objc_library/objc_import
RELNOTES:none
PiperOrigin-RevId: 370718879
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java
index ccb23f7..50ae3ca 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.rules.objc;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth8.assertThat;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
@@ -99,8 +100,10 @@
configurationGenfiles("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, null)
+ "/" + includePath);
- assertThat(objcProtoProvider.getProtobufHeaderSearchPaths().toList())
- .containsExactly(includePath, genIncludePath);
+ assertThat(
+ objcProtoProvider.getProtobufHeaderSearchPaths().toList().stream()
+ .map(x -> removeConfigFragment(x.toString())))
+ .containsExactly(includePath.toString(), removeConfigFragment(genIncludePath.toString()));
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java
index e0f4485..bb9bb72 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java
@@ -51,11 +51,12 @@
" return_kwargs = {}",
" for cpu_value in ctx.split_attr.deps:",
" for child_target in ctx.split_attr.deps[cpu_value]:",
- " return_kwargs[cpu_value] = struct(objc=child_target.objc)",
+ " return_kwargs[cpu_value] = struct(objc=child_target[apple_common.Objc])",
" return MyInfo(**return_kwargs)",
"my_rule = rule(implementation = my_rule_impl,",
" attrs = {",
- " 'deps': attr.label_list(cfg=apple_common.multi_arch_split, providers=[['objc']]),",
+ " 'deps': attr.label_list(cfg=apple_common.multi_arch_split, providers=[['objc'],"
+ + " [apple_common.Objc]]),",
" 'platform_type': attr.string(mandatory=True),",
" 'minimum_os_version': attr.string(mandatory=True)},",
" fragments = ['apple'],",
@@ -101,13 +102,13 @@
"def my_rule_impl(ctx):",
" dep = ctx.attr.deps[0]",
" return MyInfo(",
- " found_libs = dep.objc.library,",
+ " found_libs = dep[apple_common.Objc].library,",
" found_hdrs = dep[CcInfo].compilation_context.headers,",
" )",
"my_rule = rule(implementation = my_rule_impl,",
" attrs = {",
" 'deps': attr.label_list(allow_files = False, mandatory = False,",
- " providers = ['objc', CcInfo]),",
+ " providers = [['objc', CcInfo], [apple_common.Objc, CcInfo]]),",
"})");
scratch.file("examples/apple_starlark/a.m");
scratch.file(
@@ -147,11 +148,11 @@
"def _root_rule_impl(ctx):",
" dep = ctx.attr.deps[0]",
" return MyInfo(",
- " linkopt = dep.objc.linkopt,",
+ " linkopt = dep[apple_common.Objc].linkopt,",
" )",
"",
"root_rule = rule(implementation = _root_rule_impl,",
- " attrs = {'deps': attr.label_list(providers = ['objc']),",
+ " attrs = {'deps': attr.label_list(providers = [['objc'], [apple_common.Objc]]),",
"})",
"dep_rule = rule(implementation = _dep_rule_impl)");
scratch.file(
@@ -179,7 +180,7 @@
"examples/rule/apple_rules.bzl",
"def my_rule_impl(ctx):",
" dep = ctx.attr.deps[0]",
- " objc_provider = dep.objc", // this is line 3
+ " objc_provider = dep[apple_common.Objc]", // this is line 3
" return []",
"my_rule = rule(implementation = my_rule_impl,",
" attrs = {",
@@ -214,7 +215,7 @@
.hasMessageThat()
.contains(
"<target //examples/apple_starlark:lib> (rule 'cc_library') "
- + "doesn't have provider 'objc'");
+ + "doesn't contain declared provider 'objc'");
}
@Test
@@ -224,8 +225,8 @@
"examples/rule/apple_rules.bzl",
"load('//myinfo:myinfo.bzl', 'MyInfo')",
"def my_rule_impl(ctx):",
- " cc_has_provider = hasattr(ctx.attr.deps[0], 'objc')",
- " objc_has_provider = hasattr(ctx.attr.deps[1], 'objc')",
+ " cc_has_provider = apple_common.Objc in ctx.attr.deps[0]",
+ " objc_has_provider = apple_common.Objc in ctx.attr.deps[1]",
" return MyInfo(cc_has_provider=cc_has_provider, objc_has_provider=objc_has_provider)",
"my_rule = rule(implementation = my_rule_impl,",
" attrs = {",
@@ -264,11 +265,12 @@
"examples/rule/apple_rules.bzl",
"def my_rule_impl(ctx):",
" dep = ctx.attr.deps[0]",
- " objc_provider = dep.objc",
+ " objc_provider = dep[apple_common.Objc]",
" return [objc_provider]",
"swift_library = rule(implementation = my_rule_impl,",
" attrs = {",
- " 'deps': attr.label_list(allow_files = False, mandatory = False, providers = ['objc'])",
+ " 'deps': attr.label_list(allow_files = False, mandatory = False, providers = [['objc'],"
+ + " [apple_common.Objc]])",
"})");
scratch.file("examples/apple_starlark/a.m");
@@ -877,7 +879,8 @@
"implementation = swift_binary_impl,",
"attrs = {",
" 'deps': attr.label_list(",
- "allow_files = False, mandatory = False, providers = ['objc'])",
+ "allow_files = False, mandatory = False, providers = [['objc'],"
+ + " [apple_common.Objc]])",
"})"
},
String.class);
@@ -1017,7 +1020,7 @@
" dep = ctx.attr.deps[0]",
" frameworks = depset(['framework_from_impl'])",
" created_provider = apple_common.new_objc_provider\\",
- "(providers=[dep.objc], sdk_framework=frameworks)",
+ "(providers=[dep[apple_common.Objc]], sdk_framework=frameworks)",
" return [created_provider]");
Depset foundFrameworks = starlarkTarget.get(ObjcProvider.STARLARK_CONSTRUCTOR).sdkFramework();
@@ -1101,7 +1104,7 @@
"examples/rule/apple_rules.bzl",
"load('//myinfo:myinfo.bzl', 'MyInfo')",
"def swift_binary_impl(ctx):",
- " objc_provider = ctx.attr.deps[0].objc",
+ " objc_provider = ctx.attr.deps[0][apple_common.Objc]",
" return MyInfo(",
" empty_value=objc_provider.linkopt,",
" )",
@@ -1109,7 +1112,8 @@
"implementation = swift_binary_impl,",
"fragments = ['apple'],",
"attrs = {",
- " 'deps': attr.label_list(allow_files = False, mandatory = False, providers = ['objc'])",
+ " 'deps': attr.label_list(allow_files = False, mandatory = False, providers = [['objc'],"
+ + " [apple_common.Objc]])",
"})");
scratch.file("examples/apple_starlark/a.m");
@@ -1138,13 +1142,14 @@
"load('//myinfo:myinfo.bzl', 'MyInfo')",
"def _test_rule_impl(ctx):",
" dep = ctx.attr.deps[0]",
- " objc_provider = dep.objc",
+ " objc_provider = dep[apple_common.Objc]",
" return MyInfo(",
" sdk_frameworks=objc_provider.sdk_framework,",
" )",
"test_rule = rule(implementation = _test_rule_impl,",
" attrs = {",
- " 'deps': attr.label_list(allow_files = False, mandatory = False, providers = ['objc'])",
+ " 'deps': attr.label_list(allow_files = False, mandatory = False, providers = [['objc'],"
+ + " [apple_common.Objc]])",
"})");
scratch.file(
diff --git a/src/test/shell/bazel/apple/bazel_objc_test.sh b/src/test/shell/bazel/apple/bazel_objc_test.sh
index b2b64b1..a53fbb9 100755
--- a/src/test/shell/bazel/apple/bazel_objc_test.sh
+++ b/src/test/shell/bazel/apple/bazel_objc_test.sh
@@ -52,7 +52,7 @@
bazel build --verbose_failures --apple_platform_type=ios \
--ios_sdk_version=$IOS_SDK_VERSION \
//ios:lib >$TEST_log 2>&1 || fail "should pass"
- ls bazel-out/apl-ios_x86_64-fastbuild/bin/ios/liblib.a \
+ ls bazel-out/*/bin/ios/liblib.a \
|| fail "should generate lib.a"
}
@@ -111,9 +111,9 @@
# Dec 31 1969 or Jan 1 1970 -- either is fine.
# We would use 'date' here, but the format is slightly different (Jan 1 vs.
# Jan 01).
- ar -tv bazel-out/apl-ios_x86_64-fastbuild/bin/objclib/libobjclib.a \
+ ar -tv bazel-out/*/bin/objclib/libobjclib.a \
| grep "mysrc" | grep "Dec 31" | grep "1969" \
- || ar -tv bazel-out/apl-ios_x86_64-fastbuild/bin/objclib/libobjclib.a \
+ || ar -tv bazel-out/*/bin/objclib/libobjclib.a \
| grep "mysrc" | grep "Jan 1" | grep "1970" || \
fail "Timestamp of contents of archive file should be zero"
}