aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Tobias Werth <twerth@google.com>2018-08-10 07:01:10 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-10 07:02:59 -0700
commitb354d04134cf6fbda4ef45934835bbfcd61004ab (patch)
treea56bc11ad39043e90644da31d3040f7a82bc521b
parent8e93ed32e0b4f98051e80e50e2eb81efd9e39251 (diff)
Test our expectations around --server_javabase/--host_javabase/--javabase with an integration test.
Closes #5848. PiperOrigin-RevId: 208203634
-rw-r--r--WORKSPACE6
-rw-r--r--src/BUILD1
-rw-r--r--src/test/shell/integration/BUILD8
-rwxr-xr-xsrc/test/shell/integration/bazel_java_test.sh110
4 files changed, 118 insertions, 7 deletions
diff --git a/WORKSPACE b/WORKSPACE
index 0b0cba005a..d016e17d2b 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -91,12 +91,6 @@ new_local_repository(
build_file = "./third_party/googleapis/BUILD",
)
-new_local_repository(
- name = "remoteapis",
- path = "./third_party/remoteapis/",
- build_file = "./third_party/remoteapis/BUILD.bazel",
-)
-
http_archive(
name = "desugar_jdk_libs",
url = "https://github.com/google/desugar_jdk_libs/archive/fd937f4180c1b557805219af4482f1a27eb0ff2b.zip",
diff --git a/src/BUILD b/src/BUILD
index 50ec65ebbc..618d670570 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -375,7 +375,6 @@ genrule(
"//src/main/java/com/google/devtools/build/lib/bazel/debug:dist_jars",
"//src/main/java/com/google/devtools/build/lib/skylarkdebug/proto:dist_jars",
"@googleapis//:dist_jars",
- "@remoteapis//:dist_jars",
],
outs = ["derived_java_srcs.zip"],
cmd = "$(location :combine_derived_java_srcs.sh) $(JAVABASE) $@ $(SRCS)",
diff --git a/src/test/shell/integration/BUILD b/src/test/shell/integration/BUILD
index 15855c6586..0fd692a230 100644
--- a/src/test/shell/integration/BUILD
+++ b/src/test/shell/integration/BUILD
@@ -468,6 +468,14 @@ sh_test(
tags = ["no_windows"],
)
+sh_test(
+ name = "bazel_java_test",
+ size = "medium",
+ srcs = ["bazel_java_test.sh"],
+ data = [":test-deps"],
+ tags = ["no_windows"],
+)
+
########################################################################
# Test suites.
diff --git a/src/test/shell/integration/bazel_java_test.sh b/src/test/shell/integration/bazel_java_test.sh
new file mode 100755
index 0000000000..bc0dfce5ab
--- /dev/null
+++ b/src/test/shell/integration/bazel_java_test.sh
@@ -0,0 +1,110 @@
+#!/bin/bash
+# Copyright 2018 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Tests that --server_javabase/--host_javabase and --javabase work as expected
+# for Bazel with the embedded JDK.
+
+# Load the test setup defined in the parent directory
+CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+source "${CURRENT_DIR}/../integration_test_setup.sh" \
+ || { echo "integration_test_setup.sh not found!" >&2; exit 1; }
+
+function test_server_javabase() {
+ mkdir -p test_server_javabase/bin
+ MAGIC="the cake is a lie"
+
+ cat << EOF > test_server_javabase/bin/java
+#!/bin/bash
+echo "$MAGIC"
+EOF
+ chmod +x test_server_javabase/bin/java
+
+ # Check that we're able to change the server_javabase to a user specified
+ # version.
+ bazel --batch --server_javabase=test_server_javabase version >& $TEST_log
+ expect_log "$MAGIC"
+
+ bazel --batch version >& $TEST_log
+ expect_not_log "$MAGIC"
+
+ # Check that we're using the embedded JDK by default as server_javabase.
+ bazel --batch info >& $TEST_log
+ expect_log "java-home: .*/_embedded_binaries/embedded_tools/jdk"
+}
+
+function test_rhs_host_javabase() {
+ mkdir -p foobar/bin
+ cat << EOF > BUILD
+java_runtime(
+ name = "rhs_host_javabase",
+ java_home = "$PWD/foobar",
+ visibility = ["//visibility:public"],
+)
+EOF
+
+ mkdir java
+ cat << EOF > java/BUILD
+java_library(
+ name = "javalib",
+ srcs = ["HelloWorld.java"],
+)
+EOF
+ touch java/HelloWorld.java
+
+ # We expect the given host_javabase to appear in the command line of
+ # java_library actions.
+ bazel aquery --output=text --host_javabase=//:rhs_host_javabase //java:javalib >& $TEST_log
+ expect_log "exec .*foobar/bin/java"
+
+ # If we don't specify anything, we expect the embedded JDK to be used.
+ # Note that this will change in the future but is the current state.
+ bazel aquery --output=text //java:javalib >& $TEST_log
+ expect_log "exec external/embedded_jdk/bin/java"
+}
+
+function test_rhs_javabase() {
+ mkdir -p zoo/bin
+ cat << EOF > BUILD
+java_runtime(
+ name = "rhs_javabase",
+ java_home = "$PWD/zoo",
+ visibility = ["//visibility:public"],
+)
+EOF
+
+ mkdir java
+ cat << EOF > java/BUILD
+java_binary(
+ name = "javabin",
+ srcs = ["HelloWorld.java"],
+)
+EOF
+ cat << EOF > java/HelloWorld.java
+public class HelloWorld {}
+EOF
+
+ # Check that the RHS javabase appears in the launcher.
+ bazel build --javabase=//:rhs_javabase //java:javabin
+ cat bazel-bin/java/javabin >& $TEST_log
+ expect_log "JAVABIN=.*/zoo/bin/java"
+
+ # Check that we use local_jdk when it's not specified.
+ bazel build //java:javabin
+ cat bazel-bin/java/javabin >& $TEST_log
+ expect_log "JAVABIN=.*/local_jdk/bin/java"
+}
+
+
+run_suite "Tests of specifying custom server_javabase/host_javabase and javabase."