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

Function TestHashTraceQLQuery

modules/frontend/search_sharder_test.go:1013–1048  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1011}
1012
1013func TestHashTraceQLQuery(t *testing.T) {
1014 // exact same queries should have the same hash
1015 h1 := hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }"})
1016 h2 := hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }"})
1017 require.Equal(t, h1, h2)
1018
1019 // equivalent queries should have the same hash
1020 h1 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }"})
1021 h2 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }"})
1022 require.Equal(t, h1, h2)
1023
1024 h1 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ (span.foo = `bar`) || (span.bar = `foo`) }"})
1025 h2 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` || span.bar = `foo` }"})
1026 require.Equal(t, h1, h2)
1027
1028 // different queries should have different hashes
1029 h1 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }"})
1030 h2 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `baz` }"})
1031 require.NotEqual(t, h1, h2)
1032
1033 // invalid queries should return 0
1034 h1 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` "})
1035 require.Equal(t, uint64(0), h1)
1036
1037 h1 = hashForSearchRequest(&tempopb.SearchRequest{Query: ""})
1038 require.Equal(t, uint64(0), h1)
1039
1040 // same queries with different spss and limit should have the different hash
1041 h1 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }", Limit: 1})
1042 h2 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }", Limit: 2})
1043 require.NotEqual(t, h1, h2)
1044
1045 h1 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }", SpansPerSpanSet: 1})
1046 h2 = hashForSearchRequest(&tempopb.SearchRequest{Query: "{ span.foo = `bar` }", SpansPerSpanSet: 2})
1047 require.NotEqual(t, h1, h2)
1048}
1049
1050func TestBackendShards(t *testing.T) {
1051 tcs := []struct {

Callers

nothing calls this directly

Calls 2

hashForSearchRequestFunction · 0.85
EqualMethod · 0.45

Tested by

no test coverage detected