Update tests to avoid depset union.
Progress towards https://github.com/bazelbuild/bazel/issues/5817
RELNOTES: None.
PiperOrigin-RevId: 245242309
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
index 0390def..a79bd29 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
@@ -266,11 +266,8 @@
scratch.file(
"test/aspect.bzl",
"def _impl(target, ctx):",
- " s = depset([target.label])",
- " c = depset([ctx.rule.kind])",
- " for i in ctx.rule.attr.deps:",
- " s += i.target_labels",
- " c += i.rule_kinds",
+ " s = depset([target.label], transitive = [i.target_labels for i in ctx.rule.attr.deps])",
+ " c = depset([ctx.rule.kind], transitive = [i.rule_kinds for i in ctx.rule.attr.deps])",
" return struct(target_labels = s, rule_kinds = c)",
"",
"MyAspect = aspect(",
@@ -314,16 +311,18 @@
scratch.file(
"test/aspect.bzl",
"def _impl(target, ctx):",
- " s = depset([target.label])",
- " c = depset([ctx.rule.kind])",
+ " s = []",
+ " c = []",
" a = ctx.rule.attr",
- " if hasattr(a, '_defaultattr') and a._defaultattr:",
- " s += a._defaultattr.target_labels",
- " c += a._defaultattr.rule_kinds",
- " if hasattr(a, '_cc_toolchain') and a._cc_toolchain:",
- " s += a._cc_toolchain.target_labels",
- " c += a._cc_toolchain.rule_kinds",
- " return struct(target_labels = s, rule_kinds = c)",
+ " if getattr(a, '_defaultattr', None):",
+ " s += [a._defaultattr.target_labels]",
+ " c += [a._defaultattr.rule_kinds]",
+ " if getattr(a, '_cc_toolchain', None):",
+ " s += [a._cc_toolchain.target_labels]",
+ " c += [a._cc_toolchain.rule_kinds]",
+ " return struct(",
+ " target_labels = depset([target.label], transitive = s),",
+ " rule_kinds = depset([ctx.rule.kind], transitive = c))",
"",
"def _rule_impl(ctx):",
" pass",
@@ -558,15 +557,11 @@
scratch.file(
"test/aspect.bzl",
"def _aspect_impl(target, ctx):",
- " s = depset([target.label])",
- " for i in ctx.rule.attr.deps:",
- " s += i.target_labels",
+ " s = depset([target.label], transitive = [i.target_labels for i in ctx.rule.attr.deps])",
" return struct(target_labels = s)",
"",
"def _rule_impl(ctx):",
- " s = depset([])",
- " for i in ctx.attr.attr:",
- " s += i.target_labels",
+ " s = depset(transitive = [i.target_labels for i in ctx.attr.attr])",
" return struct(rule_deps = s)",
"",
"MyAspect = aspect(",
@@ -1652,10 +1647,8 @@
private String[] aspectBzlFile(String attrAspects) {
return new String[] {
"def _repro_aspect_impl(target, ctx):",
- " s = depset([str(target.label)])",
- " for d in ctx.rule.attr.deps:",
- " if hasattr(d, 'aspect_info'):",
- " s = s | d.aspect_info",
+ " s = depset([str(target.label)], transitive =",
+ " [d.aspect_info for d in ctx.rule.attr.deps if hasattr(d, 'aspect_info')])",
" return struct(aspect_info = s)",
"",
"_repro_aspect = aspect(",
@@ -1664,10 +1657,8 @@
")",
"",
"def repro_impl(ctx):",
- " s = depset()",
- " for d in ctx.attr.deps:",
- " if hasattr(d, 'aspect_info'):",
- " s = s | d.aspect_info",
+ " s = depset(transitive = ",
+ " [d.aspect_info for d in ctx.attr.deps if hasattr(d, 'aspect_info')])",
" return struct(rule_info = s)",
"",
"def repro_no_aspect_impl(ctx):",
@@ -1706,9 +1697,7 @@
"rule_bin_out = rule(_rule_impl, output_to_genfiles=False)",
"rule_gen_out = rule(_rule_impl, output_to_genfiles=True)",
"def _main_rule_impl(ctx):",
- " s = depset()",
- " for d in ctx.attr.deps:",
- " s = s | depset([d.aspect_file])",
+ " s = depset([d.aspect_file for d in ctx.attr.deps])",
" return struct(aspect_files = s)",
"main_rule = rule(_main_rule_impl,",
" attrs = { 'deps' : attr.label_list(aspects = [my_aspect]) },",
@@ -1839,10 +1828,9 @@
scratch.file(
"test/aspect.bzl",
"def _impl(target, ctx):",
- " s = depset([target.label])",
- " if hasattr(ctx.rule.attr, 'runtime_deps'):",
- " for i in ctx.rule.attr.runtime_deps:",
- " s += i.target_labels",
+ " s = depset([target.label], transitive =",
+ " [i.target_labels for i in ctx.rule.attr.runtime_deps]",
+ " if hasattr(ctx.rule.attr, 'runtime_deps') else [])",
" return struct(target_labels = s)",
"",
"MyAspect = aspect(",
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
index cb7f3d8..175c38b 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
@@ -304,8 +304,7 @@
"test/skylark/extension.bzl",
"load('//myinfo:myinfo.bzl', 'MyInfo')",
"def _impl(ctx):",
- " f = ctx.attr.dep.output_groups['_hidden_top_level" + INTERNAL_SUFFIX + "']",
- " g = ctx.attr.dep.output_groups['_hidden_top_level" + INTERNAL_SUFFIX + "'] | depset([])",
+ " g = depset(ctx.attr.dep.output_groups['_hidden_top_level" + INTERNAL_SUFFIX + "'])",
" return [MyInfo(result = g),",
" OutputGroupInfo(my_group = g)]",
"my_rule = rule(implementation = _impl,",
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
index 3f37168..b780ef2 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
@@ -923,7 +923,7 @@
Object result =
evalRuleContextCode(
ruleContext,
- "ftb = depset() + ruleContext.files.srcs",
+ "ftb = depset(ruleContext.files.srcs)",
"ruleContext.runfiles(transitive_files = ftb)");
assertThat(ImmutableList.of("a.txt", "b.img"))
.isEqualTo(ActionsTestUtil.baseArtifactNames(getRunfileArtifacts(result)));
@@ -996,7 +996,7 @@
@Test
public void testNsetContainsList() throws Exception {
checkErrorContains(
- "depsets cannot contain items of type 'list'", "depset() + [ruleContext.files.srcs]");
+ "depsets cannot contain items of type 'list'", "depset([[ruleContext.files.srcs]])");
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index 1cd50c0..12a789a 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -1496,7 +1496,7 @@
@Test
public void testUnionSet() throws Exception {
- new SkylarkTest()
+ new SkylarkTest("--incompatible_depset_union=false")
.testStatement("str(depset([1, 3]) | depset([1, 2]))", "depset([1, 2, 3])")
.testStatement("str(depset([1, 2]) | [1, 3])", "depset([1, 2, 3])")
.testIfExactError("unsupported operand type(s) for |: 'int' and 'int'", "2 | 4");
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java
index ed522f7..3a106da 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java
@@ -366,6 +366,7 @@
@Test
public void testUnionIncompatibleOrder() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
checkEvalError(
"Order mismatch: topological != postorder",
"depset(['a', 'b'], order='postorder') + depset(['c', 'd'], order='topological')");
@@ -373,13 +374,9 @@
@Test
public void testUnionWithNonsequence() throws Exception {
- new BothModesTest()
- .testIfExactError(
- "cannot union value of type 'int' to a depset",
- "depset([]).union(5)")
- .testIfExactError(
- "cannot union value of type 'string' to a depset",
- "depset(['a']).union('b')");
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
+ checkEvalError("cannot union value of type 'int' to a depset", "depset([]).union(5)");
+ checkEvalError("cannot union value of type 'string' to a depset", "depset(['a']).union('b')");
}
@Test
@@ -393,6 +390,7 @@
@Test
public void testUnionNoSideEffects() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
eval(
"def func():",
" s1 = depset(['a'])",
@@ -404,6 +402,7 @@
@Test
public void testFunctionReturnsDepset() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
eval(
"def func():",
" t = depset()",
@@ -416,6 +415,7 @@
@Test
public void testPlusEqualsWithList() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
eval(
"def func():",
" t = depset()",
@@ -427,6 +427,7 @@
@Test
public void testPlusEqualsNoSideEffects() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
eval(
"def func():",
" s1 = depset()",
@@ -440,6 +441,7 @@
@Test
public void testFuncParamNoSideEffects() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
eval(
"def func1(t):",
" t += ['b']",
@@ -454,6 +456,7 @@
@Test
public void testTransitiveOrdering() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
eval(
"def func():",
" sa = depset(['a'], order='postorder')",
@@ -467,6 +470,7 @@
@Test
public void testLeftRightDirectOrdering() throws Exception {
+ env = newEnvironmentWithSkylarkOptions("--incompatible_depset_union=false");
eval(
"def func():",
" t = depset()",