aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-08-15 12:42:12 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-15 12:43:53 -0700
commitdc9b3cd9b3105f40a59cee33d4f05dc19fcd13e4 (patch)
tree86a31b8ab656203348bab799763c0962a6fcc6f7 /src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
parentb6c0996f444c5ea273a51cf034519dfa2014d12b (diff)
Throw an EvalException when run_shell is passed both a command string sequence and arguments.
Previously, this resulted in an uncaught UnsupportedOperationException. Closes #5892. RELNOTES: None. PiperOrigin-RevId: 208865301
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java10
1 files changed, 10 insertions, 0 deletions
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 92e384a4b7..6ab6fe42dd 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
@@ -400,6 +400,16 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
" command = 'dummy_command')");
}
+ @Test
+ public void testRunShellArgumentsWithCommandSequence() throws Exception {
+ checkErrorContains(
+ createRuleContext("//foo:foo"),
+ "'arguments' must be empty if 'command' is a sequence of strings",
+ "ruleContext.actions.run_shell(outputs = ruleContext.files.srcs,",
+ " command = [\"echo\", \"'hello world'\", \"&&\", \"touch\"],",
+ " arguments = [ruleContext.files.srcs[0].path])");
+ }
+
private void setupToolInInputsTest(String... ruleImpl) throws Exception {
ImmutableList.Builder<String> lines = ImmutableList.builder();
lines.add("def _main_rule_impl(ctx):");