diff options
-rw-r--r-- | src/gobang.go | 5 | ||||
-rw-r--r-- | tests/gobang.go | 22 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/gobang.go b/src/gobang.go index 73f42c5..2985d19 100644 --- a/src/gobang.go +++ b/src/gobang.go @@ -65,11 +65,14 @@ var ( -func Must[T any](x T, err error) T { +func PanicIf(err error) { if err != nil { panic(err) } +} +func Must[T any](x T, err error) T { + PanicIf(err) return x } diff --git a/tests/gobang.go b/tests/gobang.go index c1286cd..32f6d99 100644 --- a/tests/gobang.go +++ b/tests/gobang.go @@ -15,6 +15,27 @@ import ( +func test_PanicIf() { + TestStart("PanicIf()") + + myErr := errors.New("test error") + + + Testing("noop when error is nil", func() { + var err error + PanicIf(err) + PanicIf(nil) + }) + + Testing("panic when we have an error", func() { + defer func() { + TAssertEqual(recover(), myErr) + }() + PanicIf(myErr) + TErrorNil(nil) + }) +} + func test_Must() { TestStart("Must()") @@ -1333,6 +1354,7 @@ func test_setHostname() { func MainTest() { Init() + test_PanicIf() test_Must() test_Clamp() test_ValidateSQLTablePrefix() |