Skip to content

Commit

Permalink
Make sure all other shell/integration tests work with --enable_worksp…
Browse files Browse the repository at this point in the history
…ace=false

A part of #23087

Working towards: #23023

PiperOrigin-RevId: 661158600
Change-Id: Ib16db0042ff40baaf15937f3320e3a32f5211b36
  • Loading branch information
meteorcloudy authored and copybara-github committed Aug 9, 2024
1 parent 7c7aafa commit a851658
Show file tree
Hide file tree
Showing 24 changed files with 183 additions and 140 deletions.
25 changes: 13 additions & 12 deletions src/test/shell/integration/aquery_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1219,14 +1219,14 @@ EOF

bazel clean

bazel aquery --noenable_bzlmod --output=textproto --skyframe_state > output 2> "$TEST_log" \
bazel aquery --output=textproto --skyframe_state > output 2> "$TEST_log" \
|| fail "Expected success"
cat output >> "$TEST_log"
assert_not_contains "actions" output

bazel build --noenable_bzlmod --nobuild "//$pkg:foo"
bazel build --nobuild "//$pkg:foo"

bazel aquery --noenable_bzlmod --output=textproto --skyframe_state > output 2> "$TEST_log" \
bazel aquery --output=textproto --skyframe_state > output 2> "$TEST_log" \
|| fail "Expected success"
cat output >> "$TEST_log"

Expand Down Expand Up @@ -1255,9 +1255,9 @@ EOF
QUERY="inputs('.*matching_in.java', outputs('.*matching_out', mnemonic('Genrule')))"

bazel clean
bazel build --noenable_bzlmod --nobuild "//$pkg:foo"
bazel build --nobuild "//$pkg:foo"

bazel aquery --noenable_bzlmod --output=textproto --skyframe_state ${QUERY} > output 2> "$TEST_log" \
bazel aquery --output=textproto --skyframe_state ${QUERY} > output 2> "$TEST_log" \
|| fail "Expected success"
cat output >> "$TEST_log"

Expand All @@ -1277,14 +1277,14 @@ EOF

bazel clean

bazel aquery --noenable_bzlmod --output=textproto --skyframe_state > output 2> "$TEST_log" \
bazel aquery --output=textproto --skyframe_state > output 2> "$TEST_log" \
|| fail "Expected success"
cat output >> "$TEST_log"
assert_not_contains "actions" output

bazel build --noenable_bzlmod --nobuild "//$pkg:foo"
bazel build --nobuild "//$pkg:foo"

bazel aquery --noenable_bzlmod --output=textproto --skyframe_state > output 2> "$TEST_log" \
bazel aquery --output=textproto --skyframe_state > output 2> "$TEST_log" \
|| fail "Expected success"
cat output >> "$TEST_log"

Expand All @@ -1308,14 +1308,14 @@ EOF

bazel clean

bazel aquery --noenable_bzlmod --output=jsonproto --skyframe_state > output 2> "$TEST_log" \
bazel aquery --output=jsonproto --skyframe_state > output 2> "$TEST_log" \
|| fail "Expected success"
cat output >> "$TEST_log"
assert_not_contains "actions" output

bazel build --noenable_bzlmod --nobuild "//$pkg:foo"
bazel build --nobuild "//$pkg:foo"

bazel aquery --noenable_bzlmod --output=jsonproto --skyframe_state > output 2> "$TEST_log" \
bazel aquery --output=jsonproto --skyframe_state > output 2> "$TEST_log" \
|| fail "Expected success"
cat output >> "$TEST_log"

Expand All @@ -1336,7 +1336,7 @@ EOF

bazel clean

bazel aquery --noenable_bzlmod --output=text --skyframe_state &> "$TEST_log" \
bazel aquery --output=text --skyframe_state &> "$TEST_log" \
&& fail "Expected failure"
expect_log "--skyframe_state must be used with --output=proto\|textproto\|jsonproto. Invalid aquery output format: text"
}
Expand All @@ -1363,6 +1363,7 @@ EOF
}

function test_aquery_include_template_substitution_for_template_expand_of_py_binary() {
add_rules_python "MODULE.bazel"
local pkg="${FUNCNAME[0]}"
mkdir -p "$pkg" || fail "mkdir -p $pkg"
cat > "$pkg/BUILD" <<'EOF'
Expand Down
11 changes: 6 additions & 5 deletions src/test/shell/integration/bazel_aquery_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,14 @@ function test_repo_mapping_manifest() {
local pkg="${FUNCNAME[0]}"
local pkg2="${FUNCNAME[0]}_pkg2"
mkdir -p "$pkg" || fail "mkdir -p $pkg"
cat > "$pkg/WORKSPACE" <<EOF
cat > $(setup_module_dot_bazel "$pkg/MODULE.bazel") <<EOF
local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(
name = "pkg2",
path = "../$pkg2",
)
EOF
write_default_lockfile "$pkg/MODULE.bazel.lock"

touch "$pkg/foo.cpp"
cat > "$pkg/BUILD" <<EOF
cc_binary(name = "foo",
Expand All @@ -70,7 +71,7 @@ cc_binary(name = "foo",
)
EOF
mkdir -p "$pkg2" || fail "mkdir -p $pkg2"
touch "$pkg2/WORKSPACE"
touch "$pkg2/REPO.bazel"
touch "$pkg2/bar.cpp"
cat > "$pkg2/BUILD" <<EOF
cc_binary(name = "bar",
Expand All @@ -82,7 +83,7 @@ EOF
bazel aquery --output=textproto --include_file_write_contents \
"//:foo" >output 2> "$TEST_log" || fail "Expected success"
cat output >> "$TEST_log"
assert_contains "^file_contents:.*pkg2,__main__,_main" output
assert_contains "^file_contents:.*pkg2,+_repo_rules+pkg2" output

bazel aquery --output=text --include_file_write_contents "//:foo" | \
sed -nr '/Mnemonic: RepoMappingManifest/,/^ *$/p' >output \
Expand All @@ -92,7 +93,7 @@ EOF
# Verify file contents if we can decode base64-encoded data.
if which base64 >/dev/null; then
sed -nr 's/^ *FileWriteContents: \[(.*)\]/echo \1 | base64 -d/p' output | \
sh | tee -a "$TEST_log" | assert_contains "pkg2,__main__,_main" -
sh | tee -a "$TEST_log" | assert_contains "pkg2,+_repo_rules+pkg2" -
fi
}

Expand Down
64 changes: 46 additions & 18 deletions src/test/shell/integration/bazel_java_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,18 @@ EOF
# Javabuilder shall be executed using JDK defined in java_toolchain's java_runtime attribute.
# Java targets shall be executed using JDK matching --java_runtime_version version.
function test_java_runtime() {
cat << EOF >> WORKSPACE
load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_repository")
local_java_repository(
add_rules_java "MODULE.bazel"
add_platforms "MODULE.bazel"
cat << EOF >> MODULE.bazel
_local_java_repository_rule = use_repo_rule("@rules_java//toolchains:local_java_repository.bzl", "_local_java_repository_rule")
_local_java_repository_rule(
name = "host_javabase",
runtime_name = "host_javabase",
java_home = "$PWD/foobar",
version = "11",
)
register_toolchains("@host_javabase//:runtime_toolchain_definition")
register_toolchains("@host_javabase//:bootstrap_runtime_toolchain_definition")
EOF

mkdir java
Expand Down Expand Up @@ -118,13 +123,18 @@ EOF
# Javabuilder shall be executed using JDK defined in java_toolchain's java_runtime attribute, not tool_java_runtime.
# Testing: Javabuilder in exec configuration.
function test_exec_toolchain_java_runtime_not_set_from_tool_java_runtime_version() {
cat << EOF >> WORKSPACE
load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_repository")
local_java_repository(
add_rules_java "MODULE.bazel"
add_platforms "MODULE.bazel"
cat << EOF >> MODULE.bazel
_local_java_repository_rule = use_repo_rule("@rules_java//toolchains:local_java_repository.bzl", "_local_java_repository_rule")
_local_java_repository_rule(
name = "host_javabase",
runtime_name = "host_javabase",
java_home = "$PWD/foobar",
version = "11",
)
register_toolchains("@host_javabase//:runtime_toolchain_definition")
register_toolchains("@host_javabase//:bootstrap_runtime_toolchain_definition")
EOF
mkdir -p java
cat >> java/rule.bzl <<EOF
Expand Down Expand Up @@ -180,13 +190,21 @@ EOF


function test_javabase() {
cat << EOF >> WORKSPACE
load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_repository")
local_java_repository(
add_rules_java "MODULE.bazel"
add_platforms "MODULE.bazel"
cat << EOF >> MODULE.bazel
_local_java_repository_rule = use_repo_rule("@rules_java//toolchains:local_java_repository.bzl", "_local_java_repository_rule")
_local_java_repository_rule(
name = "javabase",
runtime_name = "javabase",
java_home = "$PWD/zoo",
version = "11",
)
register_toolchains("@javabase//:runtime_toolchain_definition")
register_toolchains("@javabase//:bootstrap_runtime_toolchain_definition")
java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
use_repo(java_toolchains, "local_jdk")
EOF

mkdir -p zoo/bin
Expand Down Expand Up @@ -273,28 +291,38 @@ function test_no_javabase() {

# Tests non-existent java_home path.
function test_no_java_home_path() {
cat << EOF >> WORKSPACE
load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_repository")
local_java_repository(
name = "javabase",
java_home = "$PWD/i-dont-exist",
add_rules_java "MODULE.bazel"
add_platforms "MODULE.bazel"
cat << EOF >> MODULE.bazel
_local_java_repository_rule = use_repo_rule("@rules_java//toolchains:local_java_repository.bzl", "_local_java_repository_rule")
_local_java_repository_rule(
name = "host_javabase",
runtime_name = "host_javabase",
java_home = "$PWD/idontexist",
version = "11",
)
register_toolchains("@host_javabase//:runtime_toolchain_definition")
register_toolchains("@host_javabase//:bootstrap_runtime_toolchain_definition")
EOF

bazel build @javabase//... >& $TEST_log && fail "Build with missing java_home should fail."
bazel build @host_javabase//... >& $TEST_log && fail "Build with missing java_home should fail."
expect_log "The path indicated by the \"java_home\" attribute .* does not exist."
}


function test_genrule() {
cat << EOF >> WORKSPACE
load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_repository")
local_java_repository(
add_rules_java "MODULE.bazel"
add_platforms "MODULE.bazel"
cat << EOF >> MODULE.bazel
_local_java_repository_rule = use_repo_rule("@rules_java//toolchains:local_java_repository.bzl", "_local_java_repository_rule")
_local_java_repository_rule(
name = "foo_javabase",
runtime_name = "foo_javabase",
java_home = "$PWD/foo",
version = "11",
)
register_toolchains("@foo_javabase//:runtime_toolchain_definition")
register_toolchains("@foo_javabase//:bootstrap_runtime_toolchain_definition")
EOF

mkdir -p foo/bin bar/bin
Expand Down
8 changes: 6 additions & 2 deletions src/test/shell/integration/bazel_query_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ fi

function set_up() {
add_to_bazelrc "build --package_path=%workspace%"
setup_skylib_support
add_bazel_skylib "MODULE.bazel"
}

function tear_down() {
Expand Down Expand Up @@ -498,6 +498,7 @@ EOF
}

function test_location_output_source_files() {
add_rules_python "MODULE.bazel"
rm -rf foo
mkdir -p foo
cat > foo/BUILD <<EOF
Expand Down Expand Up @@ -530,6 +531,7 @@ EOF
}

function test_proto_output_source_files() {
add_rules_python "MODULE.bazel"
rm -rf foo
mkdir -p foo
cat > foo/BUILD <<EOF
Expand All @@ -550,6 +552,7 @@ EOF
}

function test_xml_output_source_files() {
add_rules_python "MODULE.bazel"
rm -rf foo
mkdir -p foo
cat > foo/BUILD <<EOF
Expand Down Expand Up @@ -978,7 +981,8 @@ EOF
}

function test_unnecessary_external_workspaces_not_loaded() {
cat > WORKSPACE <<'EOF'
cat > MODULE.bazel <<'EOF'
local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(
name = "notthere",
path = "/nope",
Expand Down
9 changes: 4 additions & 5 deletions src/test/shell/integration/build_event_stream_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ add_to_bazelrc "build --experimental_build_event_upload_strategy=local"
set -e

function set_up() {
setup_skylib_support
add_bazel_skylib "MODULE.bazel"

mkdir -p pkg
touch pkg/somesourcefile
Expand Down Expand Up @@ -1249,7 +1249,7 @@ filegroup(
srcs = ["doesnotexist"],
)
EOF
(bazel build --noenable_bzlmod --build_event_text_file="${TEST_log}" :badfilegroup \
(bazel build --build_event_text_file="${TEST_log}" :badfilegroup \
&& fail "Expected failure") || :
# There should be precisely one event with target_completed as event id type
(echo 'g/^id/+1p'; echo 'q') | ed "${TEST_log}" 2>&1 | tail -n +2 > event_id_types
Expand All @@ -1259,7 +1259,7 @@ EOF
[ `grep unconfigured_label event_id_types | wc -l` -eq 1 ] \
|| fail "not precisely one unconfigured_label event id"

(bazel build -k --noenable_bzlmod --build_event_text_file="${TEST_log}" :badfilegroup :doesnotexist \
(bazel build -k --build_event_text_file="${TEST_log}" :badfilegroup :doesnotexist \
&& fail "Expected failure") || :
# There should be precisely two events with target_completed as event id type
(echo 'g/^id/+1p'; echo 'q') | ed "${TEST_log}" 2>&1 | tail -n +2 > event_id_types
Expand Down Expand Up @@ -1493,7 +1493,7 @@ EOF
# toolchain resolution and also the //external package. This way we don't need
# to bother making careful assertions about these packages in our actual test
# logic below.
bazel build --noenable_bzlmod --nobuild \
bazel build --nobuild \
//just-to-get-packages-needed-for-toolchain-resolution:whatever \
>& "$TEST_log" || fail "Expected success"

Expand Down Expand Up @@ -1535,7 +1535,6 @@ fail('bad')
EOF

bazel build \
--noenable_bzlmod \
--nobuild \
--keep_going \
--build_event_text_file=bep.txt \
Expand Down
Loading

0 comments on commit a851658

Please sign in to comment.