1package test
2
3import (
4 "fmt"
5 "testing"
6)
7
8const (
9 RecorderFailNow int = iota
10 RecorderFatal
11 RecorderFatalf
12)
13
14type recorder struct {
15 testing.TB
16 fail func(string)
17 fatal func(string)
18 failed bool
19}
20
21func (r *recorder) Error(args ...any) {
22 r.Helper()
23 r.failed = true
24 r.fail(fmt.Sprint(args...))
25}
26
27func (r *recorder) Errorf(format string, args ...any) {
28 r.Helper()
29 r.failed = true
30 r.fail(fmt.Sprintf(format, args...))
31}
32
33func (r *recorder) Fail() {
34 r.Helper()
35 r.failed = true
36}
37
38func (r *recorder) FailNow() {
39 r.Helper()
40 r.failed = true
41 panic(RecorderFailNow)
42}
43
44func (r *recorder) Failed() bool {
45 return r.failed
46}
47
48func (r *recorder) Fatal(args ...any) {
49 r.Helper()
50 r.failed = true
51 r.fatal(fmt.Sprint(args...))
52 panic(RecorderFatal)
53}
54
55func (r *recorder) Fatalf(format string, args ...any) {
56 r.Helper()
57 r.failed = true
58 r.fatal(fmt.Sprintf(format, args...))
59 panic(RecorderFatalf)
60}
61
62func (r *recorder) Helper() {
63 r.TB.Helper()
64}