fix: platform legs — docker arm64 bootstrap, win32-arm64 native builds, nix desktop-backend cleanup
- pm.environment owns _RESOLVER_MARKERS: the streaming uv runner imported
pm.workspace, whose tomllib import fails on the 3.10 system python that
bootstraps the Docker arm64 image (No module named 'tomllib'). Invariant test
proves runtime staging needs neither tomllib nor pm.workspace.
- run_tests.sh forwards the MSVC/SDK/Rust/OpenSSL toolchain variables through
its env -i scrub so PM tests that compile ruamel-yaml-clib on Windows arm64
find cl.exe (previously 'Visual C++ 14.0 or greater is required').
- nix desktop-backend check: the spawned backend outlives cage's process group
and kept writing under the temp HERMES_HOME during rmtree; stop every
process bound to the throwaway HOME before cleanup.
- windows: test_launcher_runtime_selection imports runtime_state from
hermes_cli (moved in bbec973514); the ' spaced ' suffix row loses its
trailing space on win32 (the filesystem strips it).
- macOS: test_sealed_worker_command copies the interpreter into the payload
(the escape guard resolves symlinks) and links the host lib tree.
This commit is contained in:
@@ -132,11 +132,27 @@ IFS="$_IFS_SAVE"
|
||||
# credentials, so forwarding them keeps the isolation intent intact. Each is
|
||||
# only forwarded when actually set, so POSIX runs are byte-for-byte unchanged.
|
||||
WIN_ENV=()
|
||||
for _win_var in USERPROFILE HOMEDRIVE HOMEPATH LOCALAPPDATA APPDATA SYSTEMROOT TEMP TMP; do
|
||||
for _win_var in USERPROFILE HOMEDRIVE HOMEPATH LOCALAPPDATA APPDATA SYSTEMROOT TEMP TMP \
|
||||
ComSpec PROGRAMFILES ProgramFiles PROGRAMDATA ProgramData; do
|
||||
if [ -n "${!_win_var:-}" ]; then
|
||||
WIN_ENV+=("$_win_var=${!_win_var}")
|
||||
fi
|
||||
done
|
||||
# Native build toolchain (Windows arm64 has no wheels for every pinned C extension, so
|
||||
# `uv sync` inside a PM test compiles ruamel-yaml-clib and friends). The MSVC developer
|
||||
# environment is exported by scripts/build/windows-deps.ps1 into the job env; without
|
||||
# INCLUDE/LIB/VSINSTALLDIR the build backend reports "Visual C++ 14.0 or greater is
|
||||
# required". These describe compiler locations, not credentials.
|
||||
for _tool_var in INCLUDE LIB LIBPATH VSINSTALLDIR VCINSTALLDIR VCToolsInstallDir VCToolsVersion \
|
||||
VCToolsRedistDir WindowsSdkDir WindowsSDKVersion WindowsSdkBinPath WindowsSdkVerBinPath \
|
||||
WindowsLibPath UCRTVersion UniversalCRTSdkDir VSCMD_ARG_HOST_ARCH VSCMD_ARG_TGT_ARCH VSCMD_VER \
|
||||
DevEnvDir ExtensionSdkDir Platform CARGO_HOME RUSTUP_HOME RUSTUP_TOOLCHAIN \
|
||||
CARGO_TARGET_AARCH64_PC_WINDOWS_MSVC_LINKER CC_aarch64_pc_windows_msvc CC CXX AR \
|
||||
VCPKG_ROOT OPENSSL_DIR OPENSSL_STATIC OPENSSL_LIB_DIR OPENSSL_INCLUDE_DIR; do
|
||||
if [ -n "${!_tool_var:-}" ]; then
|
||||
WIN_ENV+=("$_tool_var=${!_tool_var}")
|
||||
fi
|
||||
done
|
||||
|
||||
# ── Test-runner knobs (computed before we drop env) ────────────────────────
|
||||
# The runner's own documented environment knobs must survive the hermetic
|
||||
|
||||
Reference in New Issue
Block a user