aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2018-01-15 09:08:04 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-15 09:10:00 -0800
commitf2075d27ca124156fcd7c01242c552175c0cf145 (patch)
tree8759ed9a6d159cc5eecc093d0586a0d8d025b0de /src/test/java/com
parent1bf3e3685e124510a6a4874039a994ccf425e5ce (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.java35
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