...
1
16
17 package parallelize
18
19 import (
20 "context"
21 "errors"
22 "testing"
23 )
24
25 func TestErrorChannel(t *testing.T) {
26 errCh := NewErrorChannel()
27
28 if actualErr := errCh.ReceiveError(); actualErr != nil {
29 t.Errorf("expect nil from err channel, but got %v", actualErr)
30 }
31
32 err := errors.New("unknown error")
33 errCh.SendError(err)
34 if actualErr := errCh.ReceiveError(); actualErr != err {
35 t.Errorf("expect %v from err channel, but got %v", err, actualErr)
36 }
37
38 ctx, cancel := context.WithCancel(context.Background())
39 errCh.SendErrorWithCancel(err, cancel)
40 if actualErr := errCh.ReceiveError(); actualErr != err {
41 t.Errorf("expect %v from err channel, but got %v", err, actualErr)
42 }
43
44 if ctxErr := ctx.Err(); ctxErr != context.Canceled {
45 t.Errorf("expect context canceled, but got %v", ctxErr)
46 }
47 }
48
View as plain text