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

Function testFrontend

pkg/frontend/frontend_test.go:238–301  ·  view source on GitHub ↗
(t *testing.T, config CombinedFrontendConfig, handler http.Handler, test func(addr string), matchMaxConcurrency bool, l log.Logger)

Source from the content-addressed store, hash-verified

236}
237
238func testFrontend(t *testing.T, config CombinedFrontendConfig, handler http.Handler, test func(addr string), matchMaxConcurrency bool, l log.Logger) {
239 logger := log.NewNopLogger()
240 if l != nil {
241 logger = l
242 }
243
244 var workerConfig querier_worker.Config
245 flagext.DefaultValues(&workerConfig)
246 workerConfig.Parallelism = 1
247 workerConfig.MatchMaxConcurrency = matchMaxConcurrency
248 workerConfig.MaxConcurrentRequests = 1
249
250 // localhost:0 prevents firewall warnings on Mac OS X.
251 grpcListen, err := net.Listen("tcp", "localhost:0")
252 require.NoError(t, err)
253 workerConfig.FrontendAddress = grpcListen.Addr().String()
254
255 httpListen, err := net.Listen("tcp", "localhost:0")
256 require.NoError(t, err)
257
258 rt, v1, v2, err := InitFrontend(config, frontendv1.MockLimits{}, 0, logger, nil, transport.NewRetry(0, nil))
259 require.NoError(t, err)
260 require.NotNil(t, rt)
261 // v1 will be nil if DownstreamURL is defined.
262 require.Nil(t, v2)
263 if v1 != nil {
264 require.NoError(t, services.StartAndAwaitRunning(context.Background(), v1))
265 t.Cleanup(func() {
266 require.NoError(t, services.StopAndAwaitTerminated(context.Background(), v1))
267 })
268 }
269
270 grpcServer := grpc.NewServer(
271 grpc.StreamInterceptor(otgrpc.OpenTracingStreamServerInterceptor(opentracing.GlobalTracer())),
272 )
273 defer grpcServer.GracefulStop()
274
275 if v1 != nil {
276 frontendv1pb.RegisterFrontendServer(grpcServer, v1)
277 }
278
279 r := mux.NewRouter()
280 r.PathPrefix("/").Handler(middleware.Merge(
281 middleware.AuthenticateUser,
282 middleware.Tracer{},
283 ).Wrap(transport.NewHandler(config.Handler, tenantfederation.Config{}, rt, logger, nil)))
284
285 httpServer := http.Server{
286 Handler: r,
287 }
288 defer httpServer.Shutdown(context.Background()) //nolint:errcheck
289
290 go httpServer.Serve(httpListen) //nolint:errcheck
291 go grpcServer.Serve(grpcListen) //nolint:errcheck
292
293 var worker services.Service
294 worker, err = querier_worker.NewQuerierWorker(workerConfig, httpgrpc_server.NewServer(handler), logger, nil)
295 require.NoError(t, err)

Calls 11

DefaultValuesFunction · 0.92
NewRetryFunction · 0.92
StartAndAwaitRunningFunction · 0.92
StopAndAwaitTerminatedFunction · 0.92
RegisterFrontendServerFunction · 0.92
NewHandlerFunction · 0.92
InitFrontendFunction · 0.85
ShutdownMethod · 0.80
StringMethod · 0.65
WrapMethod · 0.65
MergeMethod · 0.65

Tested by

no test coverage detected