forked from cerc-io/plugeth
rpc: improve cancel test (#20752)
This is supposed to fix the occasional failures in TestCancel* on Travis CI.
This commit is contained in:
parent
0bdb21f0cb
commit
b1efff659e
@ -179,7 +179,7 @@ func testClientCancel(transport string, t *testing.T) {
|
|||||||
var (
|
var (
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
nreqs = 10
|
nreqs = 10
|
||||||
ncallers = 6
|
ncallers = 10
|
||||||
)
|
)
|
||||||
caller := func(index int) {
|
caller := func(index int) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
@ -200,14 +200,16 @@ func testClientCancel(transport string, t *testing.T) {
|
|||||||
// deadline.
|
// deadline.
|
||||||
ctx, cancel = context.WithTimeout(context.Background(), timeout)
|
ctx, cancel = context.WithTimeout(context.Background(), timeout)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now perform a call with the context.
|
// Now perform a call with the context.
|
||||||
// The key thing here is that no call will ever complete successfully.
|
// The key thing here is that no call will ever complete successfully.
|
||||||
sleepTime := maxContextCancelTimeout + 20*time.Millisecond
|
err := client.CallContext(ctx, nil, "test_block")
|
||||||
err := client.CallContext(ctx, nil, "test_sleep", sleepTime)
|
switch {
|
||||||
if err != nil {
|
case err == nil:
|
||||||
log.Debug(fmt.Sprint("got expected error:", err))
|
_, hasDeadline := ctx.Deadline()
|
||||||
} else {
|
t.Errorf("no error for call with %v wait time (deadline: %v)", timeout, hasDeadline)
|
||||||
t.Errorf("no error for call with %v wait time", timeout)
|
// default:
|
||||||
|
// t.Logf("got expected error with %v wait time: %v", timeout, err)
|
||||||
}
|
}
|
||||||
cancel()
|
cancel()
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ func TestServerRegisterName(t *testing.T) {
|
|||||||
t.Fatalf("Expected service calc to be registered")
|
t.Fatalf("Expected service calc to be registered")
|
||||||
}
|
}
|
||||||
|
|
||||||
wantCallbacks := 7
|
wantCallbacks := 8
|
||||||
if len(svc.callbacks) != wantCallbacks {
|
if len(svc.callbacks) != wantCallbacks {
|
||||||
t.Errorf("Expected %d callbacks for service 'service', got %d", wantCallbacks, len(svc.callbacks))
|
t.Errorf("Expected %d callbacks for service 'service', got %d", wantCallbacks, len(svc.callbacks))
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,11 @@ func (s *testService) Sleep(ctx context.Context, duration time.Duration) {
|
|||||||
time.Sleep(duration)
|
time.Sleep(duration)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *testService) Block(ctx context.Context) error {
|
||||||
|
<-ctx.Done()
|
||||||
|
return errors.New("context canceled in testservice_block")
|
||||||
|
}
|
||||||
|
|
||||||
func (s *testService) Rets() (string, error) {
|
func (s *testService) Rets() (string, error) {
|
||||||
return "", nil
|
return "", nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user