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

Function TestPipelineOperatorPrecedence

pkg/traceql/parse_test.go:34–111  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

32}
33
34func TestPipelineOperatorPrecedence(t *testing.T) {
35 tests := []struct {
36 in string
37 expected SpansetOperation
38 expectedStr string
39 }{
40 {
41 in: "({ .a } | { .b }) > ({ .a } | { .b }) && ({ .a } | { .b })",
42 expected: newSpansetOperation(OpSpansetAnd,
43 newSpansetOperation(OpSpansetChild,
44 newPipeline(
45 newSpansetFilter(NewAttribute("a")),
46 newSpansetFilter(NewAttribute("b")),
47 ),
48 newPipeline(
49 newSpansetFilter(NewAttribute("a")),
50 newSpansetFilter(NewAttribute("b")),
51 ),
52 ),
53 newPipeline(
54 newSpansetFilter(NewAttribute("a")),
55 newSpansetFilter(NewAttribute("b")),
56 ),
57 ),
58 expectedStr: "(({ .a }|{ .b }) > ({ .a }|{ .b })) && ({ .a }|{ .b })",
59 },
60 {
61 in: "({ .a } | { .b }) > (({ .a } | { .b }) && ({ .a } | { .b }))",
62 expected: newSpansetOperation(OpSpansetChild,
63 newPipeline(
64 newSpansetFilter(NewAttribute("a")),
65 newSpansetFilter(NewAttribute("b")),
66 ),
67 newSpansetOperation(OpSpansetAnd,
68 newPipeline(
69 newSpansetFilter(NewAttribute("a")),
70 newSpansetFilter(NewAttribute("b")),
71 ),
72 newPipeline(
73 newSpansetFilter(NewAttribute("a")),
74 newSpansetFilter(NewAttribute("b")),
75 ),
76 ),
77 ),
78 expectedStr: "({ .a }|{ .b }) > (({ .a }|{ .b }) && ({ .a }|{ .b }))",
79 },
80 {
81 in: "({ .a } | { .b }) < (({ .a } | { .b }) && ({ .a } | { .b }))",
82 expected: newSpansetOperation(OpSpansetParent,
83 newPipeline(
84 newSpansetFilter(NewAttribute("a")),
85 newSpansetFilter(NewAttribute("b")),
86 ),
87 newSpansetOperation(OpSpansetAnd,
88 newPipeline(
89 newSpansetFilter(NewAttribute("a")),
90 newSpansetFilter(NewAttribute("b")),
91 ),

Callers

nothing calls this directly

Calls 9

newSpansetOperationFunction · 0.85
newPipelineFunction · 0.85
newSpansetFilterFunction · 0.85
NewAttributeFunction · 0.85
ParseFunction · 0.85
newRootExprFunction · 0.85
RunMethod · 0.45
EqualMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected