From ace88433b771302a563eaa4d6e2cc4b7de72c0e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=88=B1=E7=89=B9=E6=AF=8F=E7=BE=8A=E9=98=9F?= Date: Tue, 9 Jun 2026 18:23:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20test262=20=E6=B7=BB=E5=8A=A0=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=AD=A5=E6=95=B0=E4=B8=8A=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/oxide_test262/src/main.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/oxide_test262/src/main.rs b/crates/oxide_test262/src/main.rs index 7cb0cae..4adf6b5 100644 --- a/crates/oxide_test262/src/main.rs +++ b/crates/oxide_test262/src/main.rs @@ -599,7 +599,14 @@ fn run_tests() -> bool { let paths = discover_tests(&test262_root); eprintln!("found {} test files", paths.len()); - let kernel = Arc::new(OxideKernel::new(KernelConfig::minimal())); + // Bound each test's execution so a single infinite-loop / unsupported-feature + // loop fails (or skips) instead of stalling the whole serial run. The VM already + // emits a "VM step limit exceeded" error on overrun, which the runner classifies + // as a step-limit result (skip by default, fail under --no-skip). Override only the + // runner's local config; KernelConfig::minimal() stays unbounded for other crates. + let mut kernel_config = KernelConfig::minimal(); + kernel_config.max_steps = Some(50_000_000); + let kernel = Arc::new(OxideKernel::new(kernel_config)); init_kernel_builtins(&kernel); let harness_sources = HarnessSources::new(); let mut harness_cache = HarnessPrefixCache::new();