MCPcopy
hub / github.com/grpc/grpc-go / TestDialWithTimeout

Method TestDialWithTimeout

dial_test.go:43–82  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

41)
42
43func (s) TestDialWithTimeout(t *testing.T) {
44 lis, err := net.Listen("tcp", "localhost:0")
45 if err != nil {
46 t.Fatalf("Error while listening. Err: %v", err)
47 }
48 defer lis.Close()
49 lisAddr := resolver.Address{Addr: lis.Addr().String()}
50 lisDone := make(chan struct{})
51 dialDone := make(chan struct{})
52 // 1st listener accepts the connection and then does nothing
53 go func() {
54 defer close(lisDone)
55 conn, err := lis.Accept()
56 if err != nil {
57 t.Errorf("Error while accepting. Err: %v", err)
58 return
59 }
60 framer := http2.NewFramer(conn, conn)
61 if err := framer.WriteSettings(http2.Setting{}); err != nil {
62 t.Errorf("Error while writing settings. Err: %v", err)
63 return
64 }
65 <-dialDone // Close conn only after dial returns.
66 }()
67
68 r := manual.NewBuilderWithScheme("whatever")
69 r.InitialState(resolver.State{Addresses: []resolver.Address{lisAddr}})
70 client, err := Dial(r.Scheme()+":///test.server", WithTransportCredentials(insecure.NewCredentials()), WithResolvers(r), WithTimeout(5*time.Second))
71 close(dialDone)
72 if err != nil {
73 t.Fatalf("Dial failed. Err: %v", err)
74 }
75 defer client.Close()
76 timeout := time.After(1 * time.Second)
77 select {
78 case <-timeout:
79 t.Fatal("timed out waiting for server to finish")
80 case <-lisDone:
81 }
82}
83
84func (s) TestDialWaitsForServerSettings(t *testing.T) {
85 lis, err := net.Listen("tcp", "localhost:0")

Callers

nothing calls this directly

Calls 15

NewBuilderWithSchemeFunction · 0.92
NewCredentialsFunction · 0.92
WithTransportCredentialsFunction · 0.85
WithResolversFunction · 0.85
WithTimeoutFunction · 0.85
InitialStateMethod · 0.80
DialFunction · 0.70
FatalfMethod · 0.65
CloseMethod · 0.65
StringMethod · 0.65
ErrorfMethod · 0.65
SchemeMethod · 0.65

Tested by

no test coverage detected