diff options
author | Damien Martin-Guillerez <dmarting@google.com> | 2016-02-19 12:09:12 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-02-19 14:55:30 +0000 |
commit | d629bb285cafade33b40d9cde236ee87146a832e (patch) | |
tree | f4427be509152a7684a7fc39d52e88650960c0a4 /src/test/java/com/google/devtools/build/lib | |
parent | c0a9fb61212bd18547802f03cb62d9d4184d776d (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.java | 19 |
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"); + } } |