Reject empty separator in string.split Related: #7355 #8726 Closes #8836. PiperOrigin-RevId: 257614252
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java index 6aa2045..3d50b23 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -145,8 +145,9 @@ "--incompatible_disallow_legacy_javainfo=" + rand.nextBoolean(), "--incompatible_disallow_legacy_java_provider=" + rand.nextBoolean(), "--incompatible_disallow_old_style_args_add=" + rand.nextBoolean(), - "--incompatible_disallow_struct_provider_syntax=" + rand.nextBoolean(), "--incompatible_disallow_rule_execution_platform_constraints_allowed=" + rand.nextBoolean(), + "--incompatible_disallow_split_empty_separator=" + rand.nextBoolean(), + "--incompatible_disallow_struct_provider_syntax=" + rand.nextBoolean(), "--incompatible_do_not_split_linking_cmdline=" + rand.nextBoolean(), "--incompatible_expand_directories=" + rand.nextBoolean(), "--incompatible_new_actions_api=" + rand.nextBoolean(), @@ -198,8 +199,9 @@ .incompatibleDisallowLegacyJavaInfo(rand.nextBoolean()) .incompatibleDisallowLegacyJavaProvider(rand.nextBoolean()) .incompatibleDisallowOldStyleArgsAdd(rand.nextBoolean()) - .incompatibleDisallowStructProviderSyntax(rand.nextBoolean()) .incompatibleDisallowRuleExecutionPlatformConstraintsAllowed(rand.nextBoolean()) + .incompatibleDisallowSplitEmptySeparator(rand.nextBoolean()) + .incompatibleDisallowStructProviderSyntax(rand.nextBoolean()) .incompatibleDoNotSplitLinkingCmdline(rand.nextBoolean()) .incompatibleExpandDirectories(rand.nextBoolean()) .incompatibleNewActionsApi(rand.nextBoolean())
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 f78d647..5a913d9 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
@@ -3100,6 +3100,30 @@ } @Test + public void testSplitEmptySeparatorForbidden() throws Exception { + setSkylarkSemanticsOptions("--incompatible_disallow_split_empty_separator=true"); + + scratch.file("test/extension.bzl", "y = 'abc'.split('')"); + + scratch.file("test/BUILD", "load('//test:extension.bzl', 'y')", "cc_library(name = 'r')"); + + reporter.removeHandler(failFastHandler); + getConfiguredTarget("//test:r"); + assertContainsEvent("Empty separator"); + } + + @Test + public void testSplitEmptySeparator() throws Exception { + setSkylarkSemanticsOptions("--incompatible_disallow_split_empty_separator=false"); + + scratch.file("test/extension.bzl", "y = 'abc'.split('')"); + + scratch.file("test/BUILD", "load('//test:extension.bzl', 'y')", "cc_library(name = 'r')"); + + getConfiguredTarget("//test:r"); + } + + @Test public void testNoOutputsError() throws Exception { scratch.file( "test/skylark/test_rule.bzl",