31 lines
741 B
Plaintext
31 lines
741 B
Plaintext
// 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);
|
|
};
|