4
4
package rpc
5
5
6
6
import (
7
+ "context"
7
8
"testing"
8
9
"time"
9
10
)
@@ -16,7 +17,7 @@ func TestWatcherTrigger(t *testing.T) {
16
17
watcher .trigger (e )
17
18
}
18
19
for i := byte (0 ); i < 255 ; i ++ {
19
- v , err := watcher .WaitTimeout ( 0 )
20
+ v , err := watcher .Wait ( )
20
21
if err != nil {
21
22
t .Error (err )
22
23
} else if len (v ) == 0 {
@@ -42,29 +43,44 @@ func TestWatcherTriggerTimeout(t *testing.T) {
42
43
watcher .trigger (e )
43
44
}
44
45
for i := byte (0 ); i < 255 ; i ++ {
45
- v , err := watcher .WaitTimeout (time .Minute )
46
+ ctx , cancel := context .WithTimeout (context .Background (), time .Minute )
47
+ v , err := watcher .WaitWithContext (ctx )
46
48
if err != nil {
47
49
t .Error (err )
48
50
} else if len (v ) == 0 {
49
51
t .Error ("len == 0" )
50
52
} else if v [0 ] != i {
51
53
t .Error ("out of order" )
52
54
}
55
+ cancel ()
53
56
}
54
57
go func () {
55
- close ( watcher .done )
58
+ watcher .stop ( )
56
59
}()
57
- _ , err := watcher .WaitTimeout ( time . Minute )
60
+ _ , err := watcher .Wait ( )
58
61
if err != ErrWatcherShutdown {
59
62
t .Error (err )
60
63
}
61
64
}
62
65
63
66
func TestWatcherTriggerTimeoutErr (t * testing.T ) {
64
67
watcher := & watcher {C : make (chan * event , 10 ), done : make (chan struct {}, 1 )}
65
- _ , err := watcher .WaitTimeout (time .Millisecond * 1 )
66
- if err != ErrTimeout {
67
- t .Error (err )
68
+ {
69
+ ctx , cancel := context .WithTimeout (context .Background (), time .Millisecond * 1 )
70
+ _ , err := watcher .WaitWithContext (ctx )
71
+ if err == nil {
72
+ t .Error ()
73
+ }
74
+ cancel ()
68
75
}
69
- close (watcher .done )
76
+ watcher .stop ()
77
+ {
78
+ ctx , cancel := context .WithTimeout (context .Background (), time .Millisecond * 1 )
79
+ _ , err := watcher .WaitWithContext (ctx )
80
+ if err != ErrWatcherShutdown {
81
+ t .Error (err )
82
+ }
83
+ cancel ()
84
+ }
85
+
70
86
}
0 commit comments