Add testing.fail_now

This commit is contained in:
gingerBill
2021-05-01 23:06:14 +01:00
parent 364e6c9573
commit cf0bf1a7cb
2 changed files with 14 additions and 1 deletions

View File

@@ -156,7 +156,7 @@ run_internal_test :: proc(t: ^T, it: Internal_Test) {
context.assertion_failure_proc = proc(prefix, message: string, loc: runtime.Source_Code_Location) {
errorf(t=global_current_t, format="%s %s", args={prefix, message}, loc=loc);
intrinsics.debug_trap();
intrinsics.trap();
};
thread.it.p(thread.t);
@@ -168,6 +168,10 @@ run_internal_test :: proc(t: ^T, it: Internal_Test) {
sema_reset(&global_threaded_runner_semaphore);
global_current_t = t;
t._fail_now = proc() -> ! {
intrinsics.trap();
};
thread.t = t;
thread.it = it;
thread.success = false;

View File

@@ -25,6 +25,8 @@ T :: struct {
w: io.Writer,
cleanups: [dynamic]Internal_Cleanup,
_fail_now: proc() -> !,
}
@@ -46,6 +48,13 @@ fail :: proc(t: ^T) {
t.error_count += 1;
}
fail_now :: proc(t: ^T) {
fail(t);
if t._fail_now != nil {
t._fail_now();
}
}
failed :: proc(t: ^T) -> bool {
return t.error_count != 0;
}