summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gobang.go4
-rw-r--r--tests/gobang.go11
2 files changed, 14 insertions, 1 deletions
diff --git a/src/gobang.go b/src/gobang.go
index ea26541..ed26a04 100644
--- a/src/gobang.go
+++ b/src/gobang.go
@@ -104,7 +104,9 @@ func SomeError(errs ...error) error {
func SomeFnError(fns ...func() error) error {
errs := make([]error, len(fns))
for i, fn := range fns {
- errs[i] = fn()
+ if fn != nil {
+ errs[i] = fn()
+ }
}
return SomeError(errs...)
}
diff --git a/tests/gobang.go b/tests/gobang.go
index c862e82..64e9eb5 100644
--- a/tests/gobang.go
+++ b/tests/gobang.go
@@ -126,6 +126,17 @@ func test_SomeFnError() {
TAssertEqual(SomeFnError(fn, fn, fn, fn), errs[2])
TAssertEqual(i, 4)
})
+
+ Testing("no error if some function is nil", func() {
+ myErr := errors.New("the expected result")
+ TAssertEqual(SomeFnError(
+ func() error { return nil },
+ nil,
+ func() error { return nil },
+ func() error { return myErr },
+ func() error { return nil },
+ ), myErr)
+ })
}
func test_Random() {