bazel: add explicit rust test shard labels

Generate separate Bazel test labels for selected large Rust test targets so BuildBuddy can report timing and flakiness per shard. Keep the original aggregate target names as test_suites over the generated shard targets.

For integration tests, compile one manual *-all-test-bin rust_test and make each shard label a lightweight wrapper around that binary. This preserves distinct BuildBuddy labels without compiling the same test crate once per shard.

Patch the pinned rules_rust archive with the stable name-hash sharding, explicit RULES_RUST_TEST_* env support, and Windows manifest fallback from hermeticbuild/rules_rust#14 until Codex can bump to a merged rules_rust commit that contains it.

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Michael Bolin
2026-04-15 16:14:29 -07:00
co-authored by Codex
parent 9e2fc31854
commit d87abd19c1
14 changed files with 838 additions and 197 deletions
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env bash
set -euo pipefail
resolve_runfile() {
local logical_path="$1"
local workspace_logical_path="${logical_path}"
if [[ -n "${TEST_WORKSPACE:-}" ]]; then
workspace_logical_path="${TEST_WORKSPACE}/${logical_path}"
fi
for runfiles_root in "${RUNFILES_DIR:-}" "${TEST_SRCDIR:-}"; do
if [[ -n "${runfiles_root}" && -e "${runfiles_root}/${logical_path}" ]]; then
printf '%s\n' "${runfiles_root}/${logical_path}"
return 0
fi
if [[ -n "${runfiles_root}" && -e "${runfiles_root}/${workspace_logical_path}" ]]; then
printf '%s\n' "${runfiles_root}/${workspace_logical_path}"
return 0
fi
done
local manifest="${RUNFILES_MANIFEST_FILE:-}"
if [[ -z "${manifest}" ]]; then
if [[ -f "$0.runfiles_manifest" ]]; then
manifest="$0.runfiles_manifest"
elif [[ -f "$0.exe.runfiles_manifest" ]]; then
manifest="$0.exe.runfiles_manifest"
fi
fi
if [[ -n "${manifest}" && -f "${manifest}" ]]; then
local resolved=""
resolved="$(awk -v key="${logical_path}" '$1 == key { $1 = ""; sub(/^ /, ""); print; exit }' "${manifest}")"
if [[ -z "${resolved}" ]]; then
resolved="$(awk -v key="${workspace_logical_path}" '$1 == key { $1 = ""; sub(/^ /, ""); print; exit }' "${manifest}")"
fi
if [[ -n "${resolved}" ]]; then
printf '%s\n' "${resolved}"
return 0
fi
fi
echo "failed to resolve runfile: $logical_path" >&2
return 1
}
test_bin="$(resolve_runfile "__TEST_BIN__")"
exec "${test_bin}" "$@"