(t *testing.T)
| 1011 | } |
| 1012 | |
| 1013 | func 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 | |
| 1050 | func TestBackendShards(t *testing.T) { |
| 1051 | tcs := []struct { |
nothing calls this directly
no test coverage detected