(t *testing.T, blockVersion string, runners ...runnerFn)
| 1912 | } |
| 1913 | |
| 1914 | func runCompleteBlockSearchTest(t *testing.T, blockVersion string, runners ...runnerFn) { |
| 1915 | tempDir := t.TempDir() |
| 1916 | |
| 1917 | dc := backend.DedicatedColumns{ |
| 1918 | {Scope: "resource", Name: "res-dedicated.01", Type: "string"}, |
| 1919 | {Scope: "resource", Name: "res-dedicated.02", Type: "string"}, |
| 1920 | {Scope: "span", Name: "span-dedicated.01", Type: "string"}, |
| 1921 | {Scope: "span", Name: "span-dedicated.02", Type: "string"}, |
| 1922 | {Scope: "event", Name: "event-dedicated.01", Type: "string"}, |
| 1923 | } |
| 1924 | r, w, c, err := New(testingConfig(tempDir, blockVersion, dc), nil, log.NewNopLogger()) |
| 1925 | require.NoError(t, err) |
| 1926 | |
| 1927 | err = c.EnableCompaction(context.Background(), testingCompactorConfig, &mockSharder{}, &mockOverrides{}) |
| 1928 | require.NoError(t, err) |
| 1929 | |
| 1930 | ctx := context.Background() |
| 1931 | r.EnablePolling(ctx, &mockJobSharder{}, false) |
| 1932 | rw := r.(*readerWriter) |
| 1933 | |
| 1934 | wantID, wantTr, start, end, wantMeta := makeExpectedTrace(nil) |
| 1935 | searchesThatMatch, searchesThatDontMatch := searchTestSuite() |
| 1936 | |
| 1937 | // Write to wal |
| 1938 | wal := w.WAL() |
| 1939 | |
| 1940 | meta := &backend.BlockMeta{BlockID: backend.NewUUID(), TenantID: testTenantID, DedicatedColumns: dc} |
| 1941 | head, err := wal.NewBlock(meta, model.CurrentEncoding) |
| 1942 | require.NoError(t, err) |
| 1943 | dec := model.MustNewSegmentDecoder(model.CurrentEncoding) |
| 1944 | |
| 1945 | totalTraces := 50 |
| 1946 | wantTrIdx := rand.Intn(totalTraces) |
| 1947 | for i := 0; i < totalTraces; i++ { |
| 1948 | var tr *tempopb.Trace |
| 1949 | var id []byte |
| 1950 | if i == wantTrIdx { |
| 1951 | tr = wantTr |
| 1952 | id = wantID |
| 1953 | } else { |
| 1954 | id = test.ValidTraceID(nil) |
| 1955 | tr = test.MakeTrace(10, id) |
| 1956 | } |
| 1957 | b1, err := dec.PrepareForWrite(tr, start, end) |
| 1958 | require.NoError(t, err) |
| 1959 | |
| 1960 | b2, err := dec.ToObject([][]byte{b1}) |
| 1961 | require.NoError(t, err) |
| 1962 | err = head.Append(id, b2, start, end, true) |
| 1963 | require.NoError(t, err) |
| 1964 | } |
| 1965 | |
| 1966 | // Complete block |
| 1967 | block, err := w.CompleteBlock(context.Background(), head) |
| 1968 | require.NoError(t, err) |
| 1969 | blockMeta := block.BlockMeta() |
| 1970 | |
| 1971 | for _, r := range runners { |
no test coverage detected