aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar Chris Parsons <cparsons@google.com>2016-02-10 21:15:11 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-11 11:49:41 +0000
commit9a9573b0f158be662691cb9c0de6359ffd13f125 (patch)
tree0bbe2f9a6bf02aec6bbe0a02baf90560247a9b4d /src/test
parent1acd4666ec48240e0044e692fadb0c3101b0d3ae (diff)
Allow propagation of execution requirements to the ctx.resolve_command function. In the case of the requires-darwin tag, /bin/bash will be used instead
of an alternative, which matches the current genrule implementation. -- MOS_MIGRATED_REVID=114360408
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java12
1 files changed, 12 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 961a2cb5ae..15369f1430 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
@@ -545,6 +545,18 @@ public class SkylarkRuleImplementationFunctionsTest extends SkylarkTestCase {
assertThat(argv.get(1)).isEqualTo("-c");
assertMatches("argv[2]", "A.*/mytool .*/mytool.sh B.*file3.dat", argv.get(2));
}
+
+ @Test
+ public void testResolveCommandExecutionRequirements() throws Exception {
+ // Tests that requires-darwin execution requirements result in the usage of /bin/bash.
+ evalRuleContextCode(
+ createRuleContext("//foo:resolve_me"),
+ "inputs, argv, manifests = ruleContext.resolve_command(",
+ " execution_requirements={'requires-darwin': ''})");
+ @SuppressWarnings("unchecked")
+ List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
+ assertMatches("argv[0]", "^/bin/bash$", argv.get(0));
+ }
@Test
public void testResolveCommandScript() throws Exception {