diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2026-07-29 21:56:06 +0200 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2026-07-29 22:33:37 +0200 |
| commit | 7ead3465c7fdf564ae367e1169aeb68ced9267c8 (patch) | |
| tree | d6647e498a9663def6a2bbfd89dba1a59135fc25 /errext/cleanup_test.go | |
| parent | e7c4ea85915d525c738ae0da5494da57926b07ca (diff) | |
| download | go-gg-7ead3465c7fdf564ae367e1169aeb68ced9267c8.tar.gz | |
add package errext
Diffstat (limited to 'errext/cleanup_test.go')
| -rw-r--r-- | errext/cleanup_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/errext/cleanup_test.go b/errext/cleanup_test.go new file mode 100644 index 0000000..09b3173 --- /dev/null +++ b/errext/cleanup_test.go @@ -0,0 +1,41 @@ +// SPDX-FileCopyrightText: 2026 Stefan Majewsky <majewsky@gmx.net> +// SPDX-License-Identifier: Apache-2.0 + +package errext_test + +import ( + "errors" + "testing" + + "go.xyrillian.de/gg/assert" + "go.xyrillian.de/gg/errext" +) + +type fooError struct{} +type barError struct{} +type bazError struct{} + +func (fooError) Error() string { return "foo" } +func (barError) Error() string { return "bar" } +func (bazError) Error() string { return "baz" } + +func TestIOError(t *testing.T) { + err := errext.WithCleanup(nil, "File.Close", nil) + assert.Equal(t, err == nil, true) + + err = errext.WithCleanup(fooError{}, "File.Close", nil) + assert.ErrEqual(t, err, "foo") + assert.Equal(t, err, error(fooError{})) // check for no wrapping in type ioError without cleanup error + + err = errext.WithCleanup(nil, "File.Close", barError{}) + assert.ErrEqual(t, err, "during File.Close(): bar") + assert.Equal(t, errors.Is(err, fooError{}), false) + assert.Equal(t, errors.Is(err, barError{}), true) + assert.Equal(t, errors.Is(err, bazError{}), false) + + err = errext.WithCleanup(fooError{}, "File.Close", barError{}) + assert.ErrEqual(t, err, "foo (additional error during File.Close(): bar)") + assert.Equal(t, errors.Is(err, fooError{}), true) + assert.Equal(t, errors.Is(err, barError{}), true) + assert.Equal(t, errors.Is(err, bazError{}), false) +} |
