aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2016-02-19 12:09:12 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-02-19 14:55:30 +0000
commitd629bb285cafade33b40d9cde236ee87146a832e (patch)
treef4427be509152a7684a7fc39d52e88650960c0a4 /src/test/java/com/google/devtools/build/lib
parentc0a9fb61212bd18547802f03cb62d9d4184d776d (diff)
Add repository_ctx.which(str): returns the path of a command
This methods mimick the behavior of the `which` utility. Issue #893: Step 4 of http://goo.gl/OZV3o0. See http://goo.gl/fD4ZsY. -- MOS_MIGRATED_REVID=115050970
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r--src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java
index 2e782ef1cc..9d49587aca 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.syntax.Argument.Passed;
import com.google.devtools.build.lib.syntax.BuiltinFunction;
import com.google.devtools.build.lib.syntax.FuncallExpression;
import com.google.devtools.build.lib.syntax.Identifier;
+import com.google.devtools.build.lib.syntax.Runtime;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.testutil.Scratch;
import com.google.devtools.build.lib.vfs.Path;
@@ -96,4 +97,22 @@ public class SkylarkRepositoryContextTest {
assertThat(context.getAttr().getKeys()).contains("foo");
assertThat(context.getAttr().getValue("foo")).isEqualTo("bar");
}
+
+ @Test
+ public void testWhich() throws Exception {
+ setUpContexForRule("test");
+ SkylarkRepositoryContext.setPathEnvironment("/bin", "/path/sbin", ".");
+ scratch.file("/bin/true").setExecutable(true);
+ scratch.file("/path/sbin/true").setExecutable(true);
+ scratch.file("/path/sbin/false").setExecutable(true);
+ scratch.file("/path/bin/undef").setExecutable(true);
+ scratch.file("/path/bin/def").setExecutable(true);
+ scratch.file("/bin/undef");
+
+ assertThat(context.which("anything")).isEqualTo(Runtime.NONE);
+ assertThat(context.which("def")).isEqualTo(Runtime.NONE);
+ assertThat(context.which("undef")).isEqualTo(Runtime.NONE);
+ assertThat(context.which("true").toString()).isEqualTo("/bin/true");
+ assertThat(context.which("false").toString()).isEqualTo("/path/sbin/false");
+ }
}