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

Method TestReflectionEnd2end

reflection/test/serverreflection_test.go:398–460  ·  reflection/test/serverreflection_test.go::x.TestReflectionEnd2end
(t *testing.T)

Source from the content-addressed store, hash-verified

396}
397
398func (x) TestReflectionEnd2end(t *testing.T) {
399 // Start server.
400 lis, err := net.Listen("tcp", "localhost:0")
401 if err != nil {
402 t.Fatalf("failed to listen: %v", err)
403 }
404 s := grpc.NewServer()
405 pb.RegisterSearchServiceServer(s, &server{})
406 pbv3.RegisterSearchServiceV3Server(s, &serverV3{})
407
408 registerDynamicProto(s, fdDynamic, fdDynamicFile)
409
410 // Register reflection service on s.
411 reflection.Register(s)
412 go s.Serve(lis)
413 t.Cleanup(s.Stop)
414
415 // Create client.
416 conn, err := grpc.NewClient(lis.Addr().String(), grpc.WithTransportCredentials(insecure.NewCredentials()))
417 if err != nil {
418 t.Fatalf("cannot connect to server: %v", err)
419 }
420 defer conn.Close()
421
422 clientV1 := v1reflectiongrpc.NewServerReflectionClient(conn)
423 clientV1Alpha := v1alphareflectiongrpc.NewServerReflectionClient(conn)
424 testCases := []struct {
425 name string
426 client v1reflectiongrpc.ServerReflectionClient
427 }{
428 {
429 name: "v1",
430 client: clientV1,
431 },
432 {
433 name: "v1alpha",
434 client: v1AlphaClientAdapter{stub: clientV1Alpha},
435 },
436 }
437 for _, testCase := range testCases {
438 c := testCase.client
439 t.Run(testCase.name, func(t *testing.T) {
440 ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
441 defer cancel()
442 stream, err := c.ServerReflectionInfo(ctx, grpc.WaitForReady(true))
443 if err != nil {
444 t.Fatalf("cannot get ServerReflectionInfo: %v", err)
445 }
446
447 testFileByFilenameTransitiveClosure(t, stream, true)
448 testFileByFilenameTransitiveClosure(t, stream, false)
449 testFileByFilename(t, stream)
450 testFileByFilenameError(t, stream)
451 testFileContainingSymbol(t, stream)
452 testFileContainingSymbolError(t, stream)
453 testFileContainingExtension(t, stream)
454 testFileContainingExtensionError(t, stream)
455 testAllExtensionNumbersOfType(t, stream)

Callers

nothing calls this directly

Calls 15

NewServerFunction · 0.92
RegisterFunction · 0.92
NewClientFunction · 0.92
WithTransportCredentialsFunction · 0.92
NewCredentialsFunction · 0.92
WaitForReadyFunction · 0.92
registerDynamicProtoFunction · 0.85
testFileByFilenameFunction · 0.85
testFileByFilenameErrorFunction · 0.85
testFileContainingSymbolFunction · 0.85

Tested by

no test coverage detected