Starlarkize the exec transition for Bazel tests. Next PR will enable this in Bazel production. Includes a few bug fixes. All bugs were discovered by Bazel tests, so we already have coverage for them. This is a large PR. I didn't split into smaller changes because this toggles common test infrastructure that auto-enables most tests. It's easiest to batch everything together and get all Bazel tests passing. See https://github.com/bazelbuild/bazel/discussions/19213 PiperOrigin-RevId: 583406350 Change-Id: I6a4e2142a4efe32ff745bc8d7203aa366574a80f
diff --git a/src/test/shell/integration/builtins_injection_test.sh b/src/test/shell/integration/builtins_injection_test.sh index 154e792..41bc377 100755 --- a/src/test/shell/integration/builtins_injection_test.sh +++ b/src/test/shell/integration/builtins_injection_test.sh
@@ -94,7 +94,18 @@ exported_rules = {} exported_to_java = {} EOF - + # Override the default exec transition (which is in builtins) to avoid + # interfering with builtins injection. + mkdir exec + cat > exec/BUILD <<'EOF' +EOF + cat > exec/dummy_exec_platforms.bzl <<'EOF' +noop = transition( + implementation = lambda settings, attr: { '//command_line_option:is exec configuration': True }, + inputs = [], + outputs = ['//command_line_option:is exec configuration'] +) +EOF # With injection disabled. # @@ -106,12 +117,14 @@ # install base, instead of being virtually empty.) bazel build --nobuild //pkg:BUILD --experimental_builtins_dummy=true \ --experimental_builtins_bzl_path= \ + --experimental_exec_config=//exec:dummy_exec_platforms.bzl%noop \ &>"$TEST_log" || fail "bazel build failed" expect_log "dummy :: original value" # Using the builtins root that's bundled with bazel. bazel build --nobuild //pkg:BUILD --experimental_builtins_dummy=true \ --experimental_builtins_bzl_path=%bundled% \ + --experimental_exec_config=//exec:dummy_exec_platforms.bzl%noop \ &>"$TEST_log" || fail "bazel build failed" # "overridden value" comes from the exports.bzl in production Bazel. expect_log "dummy :: overridden value" @@ -120,6 +133,7 @@ # running Bazel in its own source tree. bazel build --nobuild //pkg:BUILD --experimental_builtins_dummy=true \ --experimental_builtins_bzl_path=%workspace% \ + --experimental_exec_config=//exec:dummy_exec_platforms.bzl%noop \ &>"$TEST_log" || fail "bazel build failed" expect_log "dummy :: workspace value" @@ -127,6 +141,7 @@ # workspace, though this one is.) bazel build --nobuild //pkg:BUILD --experimental_builtins_dummy=true \ --experimental_builtins_bzl_path=alternate \ + --experimental_exec_config=//exec:dummy_exec_platforms.bzl%noop \ &>"$TEST_log" || fail "bazel build failed" expect_log "dummy :: alternate value" @@ -138,6 +153,7 @@ EOF bazel build --nobuild //pkg:BUILD --experimental_builtins_dummy=true \ --experimental_builtins_bzl_path=alternate \ + --experimental_exec_config=//exec:dummy_exec_platforms.bzl%noop \ &>"$TEST_log" || fail "bazel build failed" expect_log "dummy :: second alternate value"