Skip to content

Commit

Permalink
Attempt to fix Bzlmod java tools override
Browse files Browse the repository at this point in the history
  • Loading branch information
fmeum committed Nov 24, 2023
1 parent d48a7e7 commit 7648e0a
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 149 deletions.
13 changes: 13 additions & 0 deletions src/test/shell/bazel/BUILD
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
load("//:workspace_deps.bzl", "gen_workspace_stanza")
load("//src/tools/bzlmod:utils.bzl", "get_canonical_repo_name")
load("@bazel_skylib//rules:write_file.bzl", "write_file")

package(default_visibility = ["//visibility:private"])

Expand Down Expand Up @@ -216,6 +218,12 @@ sh_test(
}),
)

write_file(
name = "gen_rules_java_repo_name",
out = "RULES_JAVA_REPO_NAME",
content = [get_canonical_repo_name("@rules_java")],
)

sh_test(
name = "bazel_java17_test",
srcs = ["bazel_java17_test.sh"],
Expand All @@ -225,6 +233,7 @@ sh_test(
"src/java_tools_prebuilt.zip",
],
data = [
":gen_rules_java_repo_name",
":test-deps",
"//src:java_tools_prebuilt_zip",
"//src:java_tools_zip",
Expand All @@ -244,6 +253,7 @@ sh_test(
"released",
],
data = [
":gen_rules_java_repo_name",
":test-deps",
"@bazel_tools//tools/bash/runfiles",
],
Expand All @@ -270,6 +280,7 @@ JAVA_VERSIONS_COVERAGE = ("11", "17")
java_version,
],
data = [
":gen_rules_java_repo_name",
":test-deps",
"//src:java_tools_prebuilt_zip",
"//src:java_tools_zip",
Expand All @@ -296,6 +307,7 @@ JAVA_VERSIONS_COVERAGE = ("11", "17")
java_version,
],
data = [
":gen_rules_java_repo_name",
":test-deps",
"@bazel_tools//tools/bash/runfiles",
],
Expand Down Expand Up @@ -481,6 +493,7 @@ sh_test(
"released",
],
data = [
":gen_rules_java_repo_name",
":test-deps",
],
tags = [
Expand Down
68 changes: 17 additions & 51 deletions src/test/shell/bazel/bazel_coverage_java_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,34 @@ source "${CURRENT_DIR}/coverage_helpers.sh" \
|| { echo "coverage_helpers.sh not found!" >&2; exit 1; }


RULES_JAVA_REPO_NAME=$(cat "$(rlocation io_bazel/src/test/shell/bazel/RULES_JAVA_REPO_NAME)")
JAVA_TOOLS_REPO_PREFIX="${RULES_JAVA_REPO_NAME}~toolchains~"

JAVA_TOOLS_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_ZIP}" != "released" ]]; then
if [[ "${JAVA_TOOLS_ZIP}" == file* ]]; then
JAVA_TOOLS_ZIP_FILE_URL="${JAVA_TOOLS_ZIP}"
else
JAVA_TOOLS_ZIP_FILE_URL="file://$(rlocation io_bazel/$JAVA_TOOLS_ZIP)"
fi
JAVA_TOOLS_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_ZIP}")"
JAVA_TOOLS_DIR="$TEST_TMPDIR/_java_tools"
unzip -q "${JAVA_TOOLS_ZIP_FILE}" -d "$JAVA_TOOLS_DIR"
touch "$JAVA_TOOLS_DIR/WORKSPACE"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools=${JAVA_TOOLS_DIR}"
fi
JAVA_TOOLS_ZIP_FILE_URL=${JAVA_TOOLS_ZIP_FILE_URL:-}

JAVA_TOOLS_PREBUILT_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" != "released" ]]; then
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" == file* ]]; then
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="${JAVA_TOOLS_PREBUILT_ZIP}"
else
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="file://$(rlocation io_bazel/$JAVA_TOOLS_PREBUILT_ZIP)"
fi
# Remove the repo overrides that are set up some for Bazel CI workers.
inplace-sed "/override_repository=remote_java_tools=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_linux=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_windows=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_darwin_x86_64=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_darwin_arm64=/d" "$TEST_TMPDIR/bazelrc"
JAVA_TOOLS_PREBUILT_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_PREBUILT_ZIP}")"
JAVA_TOOLS_PREBUILT_DIR="$TEST_TMPDIR/_java_tools_prebuilt"
unzip -q "${JAVA_TOOLS_PREBUILT_ZIP_FILE}" -d "$JAVA_TOOLS_PREBUILT_DIR"
touch "$JAVA_TOOLS_PREBUILT_DIR/WORKSPACE"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_linux=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_windows=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_darwin_x86_64=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_arm64=${JAVA_TOOLS_PREBUILT_DIR}"
fi
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL=${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL:-}

COVERAGE_GENERATOR_DIR="$1"; shift
if [[ "${COVERAGE_GENERATOR_DIR}" != "released" ]]; then
COVERAGE_GENERATOR_DIR="$(rlocation io_bazel/$COVERAGE_GENERATOR_DIR)"
add_to_bazelrc "build --override_repository=remote_coverage_tools=${COVERAGE_GENERATOR_DIR}"
add_to_bazelrc "build --override_repository=bazel_tools~remote_coverage_tools_extension~remote_coverage_tools=${COVERAGE_GENERATOR_DIR}"
fi

if [[ $# -gt 0 ]]; then
Expand All @@ -62,38 +60,6 @@ if [[ $# -gt 0 ]]; then
add_to_bazelrc "build --tool_java_runtime_version=${JAVA_RUNTIME_VERSION}"
fi

function set_up() {
cat >>WORKSPACE <<EOF
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# java_tools versions only used to test Bazel with various JDK toolchains.
EOF

if [[ ! -z "${JAVA_TOOLS_ZIP_FILE_URL}" ]]; then
cat >>WORKSPACE <<EOF
http_archive(
name = "remote_java_tools",
urls = ["${JAVA_TOOLS_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_linux",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_windows",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_x86_64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_arm64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
EOF
fi
}

function test_java_test_coverage() {
cat <<EOF > BUILD
load("@bazel_tools//tools/jdk:default_java_toolchain.bzl", "default_java_toolchain")
Expand Down
64 changes: 20 additions & 44 deletions src/test/shell/bazel/bazel_java17_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,53 +54,29 @@ if "$is_windows"; then
export MSYS2_ARG_CONV_EXCL="*"
fi

JAVA_TOOLS_ZIP="$1"; shift
JAVA_TOOLS_PREBUILT_ZIP="$1"; shift

echo "JAVA_TOOLS_ZIP=$JAVA_TOOLS_ZIP"


JAVA_TOOLS_RLOCATION=$(rlocation io_bazel/$JAVA_TOOLS_ZIP)
RULES_JAVA_REPO_NAME=$(cat "$(rlocation io_bazel/src/test/shell/bazel/RULES_JAVA_REPO_NAME)")
JAVA_TOOLS_REPO_PREFIX="${RULES_JAVA_REPO_NAME}~toolchains~"

if "$is_windows"; then
JAVA_TOOLS_ZIP_FILE_URL="file:///${JAVA_TOOLS_RLOCATION}"
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="file:///$(rlocation io_bazel/$JAVA_TOOLS_PREBUILT_ZIP)"
else
JAVA_TOOLS_ZIP_FILE_URL="file://${JAVA_TOOLS_RLOCATION}"
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="file://$(rlocation io_bazel/$JAVA_TOOLS_PREBUILT_ZIP)"
JAVA_TOOLS_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_ZIP}" != "released" ]]; then
JAVA_TOOLS_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_ZIP}")"
JAVA_TOOLS_DIR="$TEST_TMPDIR/_java_tools"
unzip -q "${JAVA_TOOLS_ZIP_FILE}" -d "$JAVA_TOOLS_DIR"
touch "$JAVA_TOOLS_DIR/WORKSPACE"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools=${JAVA_TOOLS_DIR}"
fi
JAVA_TOOLS_ZIP_FILE_URL=${JAVA_TOOLS_ZIP_FILE_URL:-}
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL=${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL:-}

disable_bzlmod

function set_up() {
cat >>WORKSPACE <<EOF
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# java_tools versions only used to test Bazel with various JDK toolchains.

http_archive(
name = "remote_java_tools",
urls = ["${JAVA_TOOLS_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_linux",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_windows",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_x86_64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_arm64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
EOF
}
JAVA_TOOLS_PREBUILT_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" != "released" ]]; then
JAVA_TOOLS_PREBUILT_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_PREBUILT_ZIP}")"
JAVA_TOOLS_PREBUILT_DIR="$TEST_TMPDIR/_java_tools_prebuilt"
unzip -q "${JAVA_TOOLS_PREBUILT_ZIP_FILE}" -d "$JAVA_TOOLS_PREBUILT_DIR"
touch "$JAVA_TOOLS_PREBUILT_DIR/WORKSPACE"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_linux=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_windows=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_darwin_x86_64=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_arm64=${JAVA_TOOLS_PREBUILT_DIR}"
fi

# Java source files version shall match --java_language_version_flag version.
function test_java17_text_block() {
Expand Down
75 changes: 21 additions & 54 deletions src/test/shell/bazel/bazel_java_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,35 +59,29 @@ JAVA_TOOLCHAIN="@bazel_tools//tools/jdk:toolchain"

JAVA_TOOLCHAIN_TYPE="@bazel_tools//tools/jdk:toolchain_type"

RULES_JAVA_REPO_NAME=$(cat "$(rlocation io_bazel/src/test/shell/bazel/RULES_JAVA_REPO_NAME)")
JAVA_TOOLS_REPO_PREFIX="${RULES_JAVA_REPO_NAME}~toolchains~"

JAVA_TOOLS_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_ZIP}" != "released" ]]; then
if [[ "${JAVA_TOOLS_ZIP}" == file* ]]; then
JAVA_TOOLS_ZIP_FILE_URL="${JAVA_TOOLS_ZIP}"
elif "$is_windows"; then
JAVA_TOOLS_ZIP_FILE_URL="file:///$(rlocation io_bazel/$JAVA_TOOLS_ZIP)"
else
JAVA_TOOLS_ZIP_FILE_URL="file://$(rlocation io_bazel/$JAVA_TOOLS_ZIP)"
fi
JAVA_TOOLS_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_ZIP}")"
JAVA_TOOLS_DIR="$TEST_TMPDIR/_java_tools"
unzip -q "${JAVA_TOOLS_ZIP_FILE}" -d "$JAVA_TOOLS_DIR"
touch "$JAVA_TOOLS_DIR/WORKSPACE"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools=${JAVA_TOOLS_DIR}"
fi
JAVA_TOOLS_ZIP_FILE_URL=${JAVA_TOOLS_ZIP_FILE_URL:-}

JAVA_TOOLS_PREBUILT_ZIP="$1"; shift
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" != "released" ]]; then
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" == file* ]]; then
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="${JAVA_TOOLS_PREBUILT_ZIP}"
elif "$is_windows"; then
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="file:///$(rlocation io_bazel/$JAVA_TOOLS_PREBUILT_ZIP)"
else
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL="file://$(rlocation io_bazel/$JAVA_TOOLS_PREBUILT_ZIP)"
fi
# Remove the repo overrides that are set up for some Bazel CI workers.
inplace-sed "/override_repository=remote_java_tools=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_linux=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_windows=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_darwin_x86_64=/d" "$TEST_TMPDIR/bazelrc"
inplace-sed "/override_repository=remote_java_tools_darwin_arm64=/d" "$TEST_TMPDIR/bazelrc"
JAVA_TOOLS_PREBUILT_ZIP_FILE="$(rlocation "io_bazel/${JAVA_TOOLS_PREBUILT_ZIP}")"
JAVA_TOOLS_PREBUILT_DIR="$TEST_TMPDIR/_java_tools_prebuilt"
unzip -q "${JAVA_TOOLS_PREBUILT_ZIP_FILE}" -d "$JAVA_TOOLS_PREBUILT_DIR"
touch "$JAVA_TOOLS_PREBUILT_DIR/WORKSPACE"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_linux=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_windows=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_darwin_x86_64=${JAVA_TOOLS_PREBUILT_DIR}"
add_to_bazelrc "build --override_repository=${JAVA_TOOLS_REPO_PREFIX}remote_java_tools_arm64=${JAVA_TOOLS_PREBUILT_DIR}"
fi
JAVA_TOOLS_PREBUILT_ZIP_FILE_URL=${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL:-}

if [[ $# -gt 0 ]]; then
JAVA_LANGUAGE_VERSION="$1"; shift
Expand All @@ -111,38 +105,6 @@ fi

export TESTENV_DONT_BAZEL_CLEAN=1

function set_up() {
cat >>WORKSPACE <<EOF
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# java_tools versions only used to test Bazel with various JDK toolchains.
EOF

if [[ ! -z "${JAVA_TOOLS_ZIP_FILE_URL}" ]]; then
cat >>WORKSPACE <<EOF
http_archive(
name = "remote_java_tools",
urls = ["${JAVA_TOOLS_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_linux",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_windows",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_x86_64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
http_archive(
name = "remote_java_tools_darwin_arm64",
urls = ["${JAVA_TOOLS_PREBUILT_ZIP_FILE_URL}"]
)
EOF
fi
}

function tear_down() {
rm -rf "$(bazel info bazel-bin)/java"
}
Expand Down Expand Up @@ -1966,6 +1928,11 @@ EOF
}

function test_header_compiler_direct_supports_release() {
if [[ "${JAVA_TOOLS_PREBUILT_ZIP}" == "released" ]]; then
# TODO: Remove after the next java_tools release.
return
fi

mkdir -p pkg
cat << 'EOF' > pkg/BUILD
java_library(name = "a", srcs = ["A.java"], deps = [":b"])
Expand Down

0 comments on commit 7648e0a

Please sign in to comment.