mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
39 lines
711 B
Go
39 lines
711 B
Go
|
package utils
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestErrGroup(t *testing.T) {
|
||
|
testCases := []struct {
|
||
|
errs []error
|
||
|
exp string
|
||
|
}{
|
||
|
{nil, ""},
|
||
|
{[]error{errors.New("timeout")}, "errors(1): timeout"},
|
||
|
{
|
||
|
[]error{errors.New("timeout"), errors.New("deadline")},
|
||
|
"errors(2): timeout\ndeadline",
|
||
|
},
|
||
|
}
|
||
|
for _, tc := range testCases {
|
||
|
eg := new(ErrGroup)
|
||
|
for _, err := range tc.errs {
|
||
|
eg.Add(err)
|
||
|
}
|
||
|
if len(tc.errs) == 0 {
|
||
|
if eg.Err() != nil {
|
||
|
t.Fatalf("expected to get nil error")
|
||
|
}
|
||
|
continue
|
||
|
}
|
||
|
if eg.Err() == nil {
|
||
|
t.Fatalf("expected to get non-nil error")
|
||
|
}
|
||
|
if eg.Error() != tc.exp {
|
||
|
t.Fatalf("expected to have: \n%q\ngot:\n%q", tc.exp, eg.Error())
|
||
|
}
|
||
|
}
|
||
|
}
|