mirror of
https://github.com/openai/codex.git
synced 2026-05-01 01:47:18 +00:00
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, Windows manifest fallback, Windows-safe PowerShell UInt32 masking, and isolated Windows shard temp files 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>
49 lines
1.5 KiB
Smarty
49 lines
1.5 KiB
Smarty
#!/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}" "$@"
|