From b354d04134cf6fbda4ef45934835bbfcd61004ab Mon Sep 17 00:00:00 2001 From: Tobias Werth Date: Fri, 10 Aug 2018 07:01:10 -0700 Subject: Test our expectations around --server_javabase/--host_javabase/--javabase with an integration test. Closes #5848. PiperOrigin-RevId: 208203634 --- WORKSPACE | 6 -- src/BUILD | 1 - src/test/shell/integration/BUILD | 8 ++ src/test/shell/integration/bazel_java_test.sh | 110 ++++++++++++++++++++++++++ 4 files changed, 118 insertions(+), 7 deletions(-) create mode 100755 src/test/shell/integration/bazel_java_test.sh 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." -- cgit v1.2.3