From 48f67370772b21ca7968eaa9808c59e93b9bf259 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: Sat, 6 Jun 2026 21:32:06 +0800 Subject: [PATCH] =?UTF-8?q?test:=20test262=20=E6=B5=8B=E8=AF=95=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=8A=A5=E9=94=99=E6=97=A5=E5=BF=97=E5=B9=B6=E9=99=8D?= =?UTF-8?q?=E4=BD=8E=E8=BE=93=E5=87=BA=E9=A2=91=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- crates/oxide_test262/src/main.rs | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 3f0820e..08231d9 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ AGENTS.md .claude/ # Build Artifacts -target/ \ No newline at end of file +target/ +test262-crash.log \ No newline at end of file diff --git a/crates/oxide_test262/src/main.rs b/crates/oxide_test262/src/main.rs index bc656d4..341caec 100644 --- a/crates/oxide_test262/src/main.rs +++ b/crates/oxide_test262/src/main.rs @@ -2,6 +2,7 @@ use oxide_compiler::compiler::Compiler; use oxide_kernel::kernel::{KernelConfig, OxideKernel}; use oxide_vm::vm::Vm; use serde::Deserialize; +use std::io::Write; use std::path::{Path, PathBuf}; use std::sync::Arc; use std::time::Duration; @@ -155,6 +156,7 @@ fn is_skipped(meta: &TestMeta) -> Option { "regexp-dotall", "json-superset", "for-of", + "Temporal", "cross-realm", "new.target", "well-formed-json-stringify", @@ -162,7 +164,7 @@ fn is_skipped(meta: &TestMeta) -> Option { ]; for feat in &meta.features { - if excluded_features.contains(&feat.as_str()) { + if excluded_features.contains(&feat.as_str()) || feat.starts_with("Intl") { return Some(format!("excluded feature: {feat}")); } } @@ -341,7 +343,7 @@ fn main() { let total = paths.len(); for (i, path) in paths.iter().enumerate() { - if i % 100 == 0 { + if i % 500 == 0 { eprintln!( " progress: {}/{} ({}% pass={} fail={} skip={})", i, @@ -389,6 +391,14 @@ fn main() { continue; } + let rel = path.strip_prefix(&test262_root).unwrap_or(path); + if let Ok(mut f) = std::fs::File::create("test262-crash.log") { + let _ = write!(f, "{}\n", rel.display()); + let _ = f.flush(); + } + eprintln!(" running: {}", rel.display()); + let _ = std::io::stderr().flush(); + let result = run_test(path, &source, &meta, &kernel); match &result.outcome { TestOutcome::Pass(_) => stats.pass += 1,