MCPcopy
hub / github.com/grafana/tempo / TestTraceByIDShouldQuit

Function TestTraceByIDShouldQuit

modules/frontend/combiner/trace_by_id_test.go:17–60  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

15)
16
17func TestTraceByIDShouldQuit(t *testing.T) {
18 // new combiner should not quit
19 c := NewTraceByID(0, api.HeaderAcceptJSON, nil)
20 should := c.ShouldQuit()
21 require.False(t, should)
22
23 // 500 response should quit
24 c = NewTraceByID(0, api.HeaderAcceptJSON, nil)
25 err := c.AddResponse(toHTTPResponse(t, &tempopb.SearchResponse{}, 500))
26 require.NoError(t, err)
27 should = c.ShouldQuit()
28 require.True(t, should)
29
30 // 429 response should quit
31 c = NewTraceByID(0, api.HeaderAcceptJSON, nil)
32 err = c.AddResponse(toHTTPProtoResponse(t, &tempopb.SearchResponse{}, 429))
33 require.NoError(t, err)
34 should = c.ShouldQuit()
35 require.True(t, should)
36
37 // 404 response should not quit
38 c = NewTraceByID(0, api.HeaderAcceptJSON, nil)
39 err = c.AddResponse(toHTTPProtoResponse(t, &tempopb.SearchResponse{}, 404))
40 require.NoError(t, err)
41 should = c.ShouldQuit()
42 require.False(t, should)
43
44 // unparseable body should not quit, but should return an error
45 c = NewTraceByID(0, api.HeaderAcceptJSON, nil)
46 err = c.AddResponse(&testPipelineResponse{r: &http.Response{Body: io.NopCloser(strings.NewReader("foo")), StatusCode: 200}})
47 require.Error(t, err)
48 should = c.ShouldQuit()
49 require.False(t, should)
50
51 // trace too large, should quit and should not return an error
52 c = NewTraceByID(1, api.HeaderAcceptJSON, nil)
53 err = c.AddResponse(toHTTPProtoResponse(t, &tempopb.TraceByIDResponse{
54 Trace: test.MakeTrace(1, nil),
55 Metrics: &tempopb.TraceByIDMetrics{},
56 }, 200))
57 require.NoError(t, err)
58 should = c.ShouldQuit()
59 require.True(t, should)
60}
61
62func TestTraceByIDHonorsContentType(t *testing.T) {
63 expected := test.MakeTrace(2, nil)

Callers

nothing calls this directly

Calls 7

MakeTraceFunction · 0.92
NewTraceByIDFunction · 0.85
toHTTPResponseFunction · 0.85
toHTTPProtoResponseFunction · 0.85
ShouldQuitMethod · 0.65
AddResponseMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected