test: retire 911_attest_record; record-continue owned by test/package

This commit is contained in:
2026-08-08 13:47:16 +09:00
parent 15137054e2
commit 74c9243ca3
4 changed files with 48 additions and 258 deletions

View File

@@ -616,6 +616,24 @@ fn runtimepath(relative: str) str = {
(30i64 * (time.second: i64)): time.duration, &out);
expectexit(&out, 1);
assert(has(out.stdout, "signal_is_not_exit ... FAIL (signal 15)\n"));
// Record-and-continue past every fault class: the runner reports
// hardware faults with their literal signal numbers and still
// reaches the trailing test (retired 911_attest_record).
let recav: []str = [driver("ww"), "test",
runtimepath("record_continue_test.ww")];
runcommand(root, "sf-record", recav,
(30i64 * (time.second: i64)): time.duration, &out);
expectexit(&out, 1);
assert(has(out.stdout, "rec_pass_a ... ok\n"));
assert(has(out.stdout, "rec_assert ... FAIL (exit 1)\n"));
assert(has(out.stdout, "rec_segv ... FAIL (signal 11)\n"));
assert(has(out.stdout, "rec_div0 ... FAIL (signal 8)\n"));
assert(has(out.stdout, "rec_pass_b ... ok\n"));
assert(has(out.stdout,
"2 passed, 3 failed, 0 skipped, 0 harness errors\n"));
assert(has(out.stdout,
"5 discovered, 5 selected, 5 started, 5 completed\n"));
clean(root);
};

View File

@@ -0,0 +1,30 @@
// Record-and-continue: one passing test, then the three runtime fault
// classes the lib/test fork+wait4 runner must each catch and PROCEED
// past (failed assert, nil deref -> SIGSEGV, divide-by-zero -> SIGFPE),
// then a final passing test to prove the run reaches the tail after
// every failure. Ported from the retired 911_attest_record carrier and
// its test/wcc/data/attest_record.ww fixture.
package runtime_record_continue_test;
@test fn rec_pass_a() void = {
assert(1 + 1 == 2);
};
@test fn rec_assert() void = {
assert(1 == 2);
};
@test fn rec_segv() void = {
let p: *i32 = nil: *i32;
*p = 7i32;
};
@test fn rec_div0() void = {
let z: i32 = 0;
let _: i32 = 1 / z;
};
@test fn rec_pass_b() void = {
assert(true);
};