Propagate 'inmemoryUnusedInputsList' from target to host config.
RELNOTES:
PiperOrigin-RevId: 271096291
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
index 883eb9f..a681994 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java
@@ -784,6 +784,7 @@
host.enforceConstraints = enforceConstraints;
host.mergeGenfilesDirectory = mergeGenfilesDirectory;
host.cpu = hostCpu;
+ host.inmemoryUnusedInputsList = inmemoryUnusedInputsList;
// === Runfiles ===
host.buildRunfilesManifests = buildRunfilesManifests;
diff --git a/src/test/shell/integration/skylark_dependency_pruning_test.sh b/src/test/shell/integration/skylark_dependency_pruning_test.sh
index 1591704..626041b 100755
--- a/src/test/shell/integration/skylark_dependency_pruning_test.sh
+++ b/src/test/shell/integration/skylark_dependency_pruning_test.sh
@@ -45,6 +45,21 @@
executable = ":cat_unused",
inputs = ":all_inputs",
)
+
+sh_binary(
+ name = "cat_unused2",
+ srcs = ["cat_unused.sh"],
+ data = [
+ "output.out",
+ ],
+)
+
+build_rule(
+ name = "output2",
+ out = "output2.out",
+ executable = ":cat_unused2",
+ inputs = ":all_inputs",
+)
EOF
cat > pkg/build.bzl << 'EOF'
@@ -284,4 +299,24 @@
expect_log "bin/pkg/output.unused (No such file or directory)"
}
+# Test with orphaned artifacts features with host config.
+# output2 requires a tool (cat_unused2) that uses unused_inputs_list.
+# This requires --experimental_inmemory_unused_inputs_list flag.
+function test_orphaned_artifacts_host_config() {
+ options="--discard_orphaned_artifacts \
+ --force_multigroup_accounting \
+ --nokeep_state_after_build"
+
+ # Use in-memory files.
+ bazel build ${options} --experimental_inmemory_unused_inputs_list \
+ //pkg:output2 || fail "build failed"
+
+ # This should fail while building "output", needed by the tool.
+ bazel build ${options} --noexperimental_inmemory_unused_inputs_list \
+ //pkg:output2 >& $TEST_log && fail "Expected failure"
+ exitcode=$?
+ assert_equals 1 "$exitcode"
+ expect_log "bin/pkg/output.unused (No such file or directory)"
+}
+
run_suite "Tests Skylark dependency pruning"