diff options
author | 2018-01-15 09:08:04 -0800 | |
---|---|---|
committer | 2018-01-15 09:10:00 -0800 | |
commit | f2075d27ca124156fcd7c01242c552175c0cf145 (patch) | |
tree | 8759ed9a6d159cc5eecc093d0586a0d8d025b0de /src/test/java/com | |
parent | 1bf3e3685e124510a6a4874039a994ccf425e5ce (diff) |
Export the runfiles path of the JVM executable to Skylark.
RELNOTES: None.
PiperOrigin-RevId: 181973847
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java index 3b9065840a..646f8f42cd 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java @@ -48,7 +48,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { + "//tools/jdk:current_host_java_runtime"; @Test - public void testJavaRuntimeProviderJavaExecutable() throws Exception { + public void testJavaRuntimeProviderJavaExecutableAbsolute() throws Exception { scratch.file("a/BUILD", "load(':rule.bzl', 'jrule')", "java_runtime(name='jvm', srcs=[], java_home='/foo/bar/')", @@ -62,6 +62,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { " provider = ctx.attr._java_runtime[java_common.JavaRuntimeInfo]", " return struct(", " java_executable = provider.java_executable_exec_path,", + " java_runfiles = provider.java_executable_runfiles_path,", ")", "jrule = rule(_impl, attrs = { '_java_runtime': attr.label(default=Label('//a:alias'))})"); @@ -70,6 +71,38 @@ public class JavaSkylarkApiTest extends BuildViewTestCase { @SuppressWarnings("unchecked") PathFragment javaExecutable = (PathFragment) ct.get("java_executable"); assertThat(javaExecutable.getPathString()).startsWith("/foo/bar/bin/java"); + @SuppressWarnings("unchecked") PathFragment javaRunfiles = + (PathFragment) ct.get("java_runfiles"); + assertThat(javaRunfiles.getPathString()).startsWith("/foo/bar/bin/java"); + } + + @Test + public void testJavaRuntimeProviderJavaExecutableHermetic() throws Exception { + scratch.file("a/BUILD", + "load(':rule.bzl', 'jrule')", + "java_runtime(name='jvm', srcs=[], java_home='foo/bar')", + "java_runtime_suite(name='suite', default=':jvm')", + "java_runtime_alias(name='alias')", + "jrule(name='r')"); + + scratch.file( + "a/rule.bzl", + "def _impl(ctx):", + " provider = ctx.attr._java_runtime[java_common.JavaRuntimeInfo]", + " return struct(", + " java_executable = provider.java_executable_exec_path,", + " java_runfiles = provider.java_executable_runfiles_path,", + ")", + "jrule = rule(_impl, attrs = { '_java_runtime': attr.label(default=Label('//a:alias'))})"); + + useConfiguration("--javabase=//a:suite"); + ConfiguredTarget ct = getConfiguredTarget("//a:r"); + @SuppressWarnings("unchecked") PathFragment javaExecutable = + (PathFragment) ct.get("java_executable"); + assertThat(javaExecutable.getPathString()).startsWith("a/foo/bar/bin/java"); + @SuppressWarnings("unchecked") PathFragment javaRunfiles = + (PathFragment) ct.get("java_runfiles"); + assertThat(javaRunfiles.getPathString()).startsWith("a/foo/bar/bin/java"); } @Test |