RunRegisterTests makes a client, runs the RPCs, and compares the status codes.
(t *testing.T, ec ExpectedStatusCodes)
| 52 | // RunRegisterTests makes a client, runs the RPCs, and compares the status |
| 53 | // codes. |
| 54 | func RunRegisterTests(t *testing.T, ec ExpectedStatusCodes) { |
| 55 | lis, err := net.Listen("tcp", "localhost:0") |
| 56 | if err != nil { |
| 57 | t.Fatalf("cannot create listener: %v", err) |
| 58 | } |
| 59 | |
| 60 | server := grpc.NewServer() |
| 61 | defer server.Stop() |
| 62 | cleanup, err := admin.Register(server) |
| 63 | if err != nil { |
| 64 | t.Fatalf("failed to register admin: %v", err) |
| 65 | } |
| 66 | defer cleanup() |
| 67 | go func() { |
| 68 | server.Serve(lis) |
| 69 | }() |
| 70 | |
| 71 | conn, err := grpc.NewClient(lis.Addr().String(), grpc.WithTransportCredentials(insecure.NewCredentials())) |
| 72 | if err != nil { |
| 73 | t.Fatalf("grpc.NewClient(%q) = %v", lis.Addr().String(), err) |
| 74 | } |
| 75 | |
| 76 | t.Run("channelz", func(t *testing.T) { |
| 77 | if err := RunChannelz(conn); status.Code(err) != ec.ChannelzCode { |
| 78 | t.Fatalf("%s RPC failed with error %v, want code %v", "channelz", err, ec.ChannelzCode) |
| 79 | } |
| 80 | }) |
| 81 | t.Run("csds", func(t *testing.T) { |
| 82 | if err := RunCSDS(conn); status.Code(err) != ec.CSDSCode { |
| 83 | t.Fatalf("%s RPC failed with error %v, want code %v", "CSDS", err, ec.CSDSCode) |
| 84 | } |
| 85 | }) |
| 86 | } |
| 87 | |
| 88 | // RunChannelz makes a channelz RPC. |
| 89 | func RunChannelz(conn *grpc.ClientConn) error { |