MCPcopy Create free account
hub / github.com/cortexproject/cortex / run

Function run

integration/grpc_server_test.go:75–119  ·  view source on GitHub ↗
(t testing.TB, cfg server.Config, register func(s *grpc.Server), validate func(t testing.TB, con *grpc.ClientConn))

Source from the content-addressed store, hash-verified

73}
74
75func run(t testing.TB, cfg server.Config, register func(s *grpc.Server), validate func(t testing.TB, con *grpc.ClientConn)) {
76 savedRegistry := prometheus.DefaultRegisterer
77 prometheus.DefaultRegisterer = prometheus.NewRegistry()
78 defer func() {
79 prometheus.DefaultRegisterer = savedRegistry
80 }()
81
82 grpcPort, closeGrpcPort, err := getLocalHostPort()
83 require.NoError(t, err)
84 httpPort, closeHTTPPort, err := getLocalHostPort()
85 require.NoError(t, err)
86
87 err = closeGrpcPort()
88 require.NoError(t, err)
89 err = closeHTTPPort()
90 require.NoError(t, err)
91
92 cfg.HTTPListenPort = httpPort
93 cfg.GRPCListenPort = grpcPort
94
95 serv, err := server.New(cfg)
96 require.NoError(t, err)
97 register(serv.GRPC)
98
99 go func() {
100 err := serv.Run()
101 require.NoError(t, err)
102 }()
103
104 defer serv.Shutdown()
105
106 grpcHost := fmt.Sprintf("localhost:%d", grpcPort)
107
108 clientConfig := grpcclient.Config{}
109 clientConfig.RegisterFlags(flag.NewFlagSet("fake", flag.ContinueOnError))
110 clientConfig.GRPCCompression = "zstd"
111
112 dialOptions, err := clientConfig.DialOption(nil, nil)
113 assert.NoError(t, err)
114 dialOptions = append([]grpc.DialOption{grpc.WithDefaultCallOptions(clientConfig.CallOptions()...)}, dialOptions...)
115
116 conn, err := grpc.NewClient(grpcHost, dialOptions...)
117 assert.NoError(t, err)
118 validate(t, conn)
119}
120
121func BenchmarkGrpcCalls(b *testing.B) {
122 cfg := server.Config{}

Callers 3

BenchmarkGrpcCallsFunction · 0.85
TestConcurrentGrpcCallsFunction · 0.85
flushHandlerMethod · 0.85

Calls 6

RegisterFlagsMethod · 0.95
DialOptionMethod · 0.95
CallOptionsMethod · 0.95
ShutdownMethod · 0.80
getLocalHostPortFunction · 0.70
RunMethod · 0.65

Tested by

no test coverage detected