From 175f1d6ffbe285783b315a5e4ce6efdc0068e999 Mon Sep 17 00:00:00 2001 From: Zach Vorhies Date: Wed, 4 Nov 2026 01:34:02 -0800 Subject: [PATCH] test(esp32): gate the framework-libs warm archive build on POSIX archive_override_bypasses_cached_framework_archive_and_links_all_objects called Fixture::build, whose fake `ar` is a #!/bin/sh script. On Windows that script cannot execute, so the warm build produced no archives and the test failed with `left: []` in the full / windows / Check job (run 41795945519). Its two sibling tests that call Fixture::build already return early on Windows; this one did not. Gate only the warm build and keep the plan/compile/finish assertions running on every platform: that half uses FakeBackend and never invokes `ar`. --- .../src/esp32/orchestrator/framework_libs_tests.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/fbuild-build-esp/src/esp32/orchestrator/framework_libs_tests.rs b/crates/fbuild-build-esp/src/esp32/orchestrator/framework_libs_tests.rs index 8b6c64779..9687d0ad7 100644 --- a/crates/fbuild-build-esp/src/esp32/orchestrator/framework_libs_tests.rs +++ b/crates/fbuild-build-esp/src/esp32/orchestrator/framework_libs_tests.rs @@ -318,8 +318,13 @@ fn local_archives_without_compile_identity_are_not_reused() { async fn archive_override_bypasses_cached_framework_archive_and_links_all_objects() { let fx = Fixture::new(); let libraries = [fx.library("FS", &["FS.cpp", "hook.cpp"])]; - let (warm, _) = fx.build(&libraries, &HashSet::new(), 2).await; - assert_eq!(warm, ["libfs.a"]); + // The fixture's fake `ar` is a POSIX shell script, so the warm archive + // build only runs where it can execute. The plan/compile/finish half + // below is platform-independent and still runs everywhere. + if !fbuild_core::platform::host::is_windows() { + let (warm, _) = fx.build(&libraries, &HashSet::new(), 2).await; + assert_eq!(warm, ["libfs.a"]); + } let mut ctx = fx.ctx(); ctx.archive_override = Some(false); let mut perf = PerfTimer::new("direct-framework-test");