From 844f2f455b7341167f898260afc3a4df0e31a23e Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Mon, 14 Sep 2026 04:03:09 +0000 Subject: [PATCH] =?UTF-8?q?oxide=5Ftest262:=20=E7=9B=91=E7=9D=A3=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=97=81=E8=B7=AF=E5=A4=B1=E8=B4=A5=E8=A1=8C=E8=B7=A8?= =?UTF-8?q?=E5=AD=90=E8=BF=9B=E7=A8=8B=E9=87=8D=E5=90=AF=E4=BF=9D=E7=95=99?= =?UTF-8?q?=20+=20=E7=AA=97=E5=8F=A3=E7=BB=93=E6=9D=9F=E5=BD=92=E6=A1=A3?= =?UTF-8?q?=E2=80=94=E2=80=94=E8=B6=85=E6=97=B6/=E5=B4=A9=E6=BA=83?= =?UTF-8?q?=E6=9D=80=E5=AD=90=E8=BF=9B=E7=A8=8B=E9=87=8D=E5=90=AF=E6=97=B6?= =?UTF-8?q?=E5=8E=9F=E4=BC=9A=E5=88=A0=E6=8E=89=E6=97=81=E8=B7=AF=20.fails?= =?UTF-8?q?=20=E6=96=87=E4=BB=B6=EF=BC=8C=E6=AD=A4=E5=89=8D=E5=AD=90?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E7=9A=84=E5=85=A8=E9=83=A8=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E4=B8=A2=E5=A4=B1=EF=BC=8C=E6=94=B6=E5=B0=BE?= =?UTF-8?q?=20fail=5Frecords=20=E5=8F=AA=E5=89=A9=E6=9C=AB=E6=AE=B5?= =?UTF-8?q?=EF=BC=88=E5=85=A8=E9=87=8F=E5=8D=95=E7=AA=97=E5=8F=A3=E8=B7=91?= =?UTF-8?q?=E5=AE=9E=E6=B5=8B=209374=20=E5=A4=B1=E8=B4=A5=E4=BB=85?= =?UTF-8?q?=E5=AD=98=206276=20=E6=9D=A1=EF=BC=89=EF=BC=8C=E9=80=90?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=9B=9E=E5=BD=92=E5=B7=AE=E5=88=86=E8=A2=AB?= =?UTF-8?q?=E9=9D=99=E9=BB=98=E7=A0=B4=E5=9D=8F=EF=BC=9B=E7=8E=B0=E9=87=8D?= =?UTF-8?q?=E5=90=AF=E5=8F=AA=E9=87=8D=E5=BC=80=E5=BF=83=E8=B7=B3=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E3=80=81=E6=97=81=E8=B7=AF=E5=A4=B1=E8=B4=A5=E8=A1=8C?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E4=BF=9D=E7=95=99=EF=BC=88=E5=86=99=E5=BA=8F?= =?UTF-8?q?=E5=BF=83=E8=B7=B3=E5=85=88=E8=A1=8C=E3=80=81=E6=97=81=E8=B7=AF?= =?UTF-8?q?=E5=90=8E=E8=BF=BD=E5=8A=A0=EF=BC=8C=E8=B7=A8=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E5=90=8C=E4=B8=80=E6=B5=8B=E8=AF=95=E8=87=B3=E5=A4=9A=E9=87=8D?= =?UTF-8?q?=E5=BD=95=E4=B8=80=E6=9D=A1=EF=BC=8C=E6=B6=88=E8=B4=B9=E4=BE=A7?= =?UTF-8?q?=E6=8C=89=E4=B8=8B=E6=A0=87=E5=8E=BB=E9=87=8D=EF=BC=89=EF=BC=9B?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E7=BB=93=E6=9D=9F=E6=97=81=E8=B7=AF=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=94=B9=E5=90=8D=E5=BD=92=E6=A1=A3=20.fails.done=20?= =?UTF-8?q?=E8=80=8C=E9=9D=9E=E5=88=A0=E9=99=A4=EF=BC=8C=E7=BB=88=E6=80=81?= =?UTF-8?q?=E8=90=BD=E7=9B=98=E4=BE=9B=E9=80=90=E6=96=87=E4=BB=B6=E5=B7=AE?= =?UTF-8?q?=E5=88=86=EF=BC=88=E7=BB=9F=E8=AE=A1=E5=B7=B2=E5=85=A5=E7=88=B6?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E5=86=85=E5=AD=98=EF=BC=8C=E5=BD=92=E6=A1=A3?= =?UTF-8?q?=E4=BB=B6=E7=BA=AF=E5=88=86=E6=9E=90=E7=94=A8=E9=80=94=EF=BC=89?= =?UTF-8?q?=E3=80=82=E5=8D=95=E6=B5=8B=2033/0=EF=BC=8C=E5=B0=8F=E9=9B=86?= =?UTF-8?q?=E5=90=88=E5=A4=8D=E8=B7=91=E8=AE=B0=E5=BD=95=E6=95=B0=E4=B8=8E?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E8=AE=A1=E6=95=B0=E9=80=90=E4=B8=80=E5=90=BB?= =?UTF-8?q?=E5=90=88?= 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, 7 insertions(+), 2 deletions(-) diff --git a/crates/oxide_test262/src/main.rs b/crates/oxide_test262/src/main.rs index e4a61d73..9349c2f2 100644 --- a/crates/oxide_test262/src/main.rs +++ b/crates/oxide_test262/src/main.rs @@ -1136,9 +1136,12 @@ fn supervise_window( }; while cur < wend { + // 心跳文件每子进程重开;旁路失败行跨重启保留(追加而非清空): + // 超时/崩溃重启若删旁路会丢掉此前子进程的全部失败记录,收尾差分 + // 只剩末段。跨重启同一测试最多重复一条(心跳先写、旁路后追加的写序 + // 决定重跑测试至多重录一次),消费侧按下标去重即可。 let _ = std::fs::remove_file(&hb_path); let _ = std::fs::remove_file(format!("{}.tmp", hb_path.display())); - let _ = std::fs::remove_file(hb_path.with_extension("fails")); let max_tests = wend - cur; let mut child = match Command::new(exe) @@ -1252,7 +1255,9 @@ fn supervise_window( let _ = std::fs::remove_file(&hb_path); let _ = std::fs::remove_file(format!("{}.tmp", hb_path.display())); - let _ = std::fs::remove_file(hb_path.with_extension("fails")); + // 旁路失败行归档而非删除:统计已由心跳合并入父进程,此文件是收尾逐文件 + // 差分的终态依据(删除即永久丢记录)。 + let _ = std::fs::rename(&hb_path.with_extension("fails"), &hb_path.with_extension("fails.done")); stats }