diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-03-17 16:09:14 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-03-17 16:09:14 +0900 |
| commit | bac583f89edd1360150143ff51f7264c01aa69ec (patch) | |
| tree | 47914efe1ae9fae256ef93725097bdb9255c03d5 /container/stub/exit_test.go | |
| parent | 722989c68256469963aee963bed9c6ab4bf55b67 (diff) | |
internal/stub: move from container
This package solves a very specific stubbing use case, in a less than elegant manner.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/stub/exit_test.go')
| -rw-r--r-- | container/stub/exit_test.go | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/container/stub/exit_test.go b/container/stub/exit_test.go deleted file mode 100644 index 3e71c580..00000000 --- a/container/stub/exit_test.go +++ /dev/null @@ -1,111 +0,0 @@ -package stub_test - -import ( - "testing" - _ "unsafe" // for go:linkname - - "hakurei.app/container/stub" -) - -// Made available here to check panic recovery behaviour. -// -//go:linkname handleExitNew hakurei.app/container/stub.handleExitNew -func handleExitNew(t testing.TB) - -// overrideTFailNow overrides the Fail and FailNow method. -type overrideTFailNow struct { - *testing.T - failNow bool - fail bool -} - -func (o *overrideTFailNow) FailNow() { - if o.failNow { - o.Errorf("attempted to FailNow twice") - } - o.failNow = true -} - -func (o *overrideTFailNow) Fail() { - if o.fail { - o.Errorf("attempted to Fail twice") - } - o.fail = true -} - -func TestHandleExit(t *testing.T) { - t.Parallel() - - t.Run("exit", func(t *testing.T) { - t.Parallel() - defer stub.HandleExit(t) - panic(stub.PanicExit) - }) - - t.Run("goexit", func(t *testing.T) { - t.Parallel() - - t.Run("FailNow", func(t *testing.T) { - t.Parallel() - - ot := &overrideTFailNow{T: t} - defer func() { - if !ot.failNow { - t.Errorf("FailNow was never called") - } - }() - defer stub.HandleExit(ot) - panic(0xcafe0) - }) - - t.Run("Fail", func(t *testing.T) { - t.Parallel() - - ot := &overrideTFailNow{T: t} - defer func() { - if !ot.fail { - t.Errorf("Fail was never called") - } - }() - defer handleExitNew(ot) - panic(0xcafe0) - }) - }) - - t.Run("nil", func(t *testing.T) { - t.Parallel() - defer stub.HandleExit(t) - }) - - t.Run("passthrough", func(t *testing.T) { - t.Parallel() - - t.Run("toplevel", func(t *testing.T) { - t.Parallel() - - defer func() { - want := 0xcafe - if r := recover(); r != want { - t.Errorf("recover: %v, want %v", r, want) - } - - }() - defer stub.HandleExit(t) - panic(0xcafe) - }) - - t.Run("new", func(t *testing.T) { - t.Parallel() - - defer func() { - want := 0xcafe - if r := recover(); r != want { - t.Errorf("recover: %v, want %v", r, want) - } - - }() - defer handleExitNew(t) - panic(0xcafe) - }) - }) -} |
