(t *testing.T, dir string, tenant string)
| 89 | } |
| 90 | |
| 91 | func getAllTraceIDs(t *testing.T, dir string, tenant string) []string { |
| 92 | t.Helper() |
| 93 | |
| 94 | rawR, _, _, err := local.New(&local.Config{ |
| 95 | Path: dir, |
| 96 | }) |
| 97 | require.NoError(t, err) |
| 98 | |
| 99 | reader := backend.NewReader(rawR) |
| 100 | ctx := context.Background() |
| 101 | |
| 102 | tenants, err := reader.Tenants(ctx) |
| 103 | require.NoError(t, err) |
| 104 | require.Equal(t, []string{tenant}, tenants) |
| 105 | |
| 106 | blocks, _, err := reader.Blocks(ctx, tenant) |
| 107 | require.NoError(t, err) |
| 108 | |
| 109 | var traceIDs []string |
| 110 | for _, block := range blocks { |
| 111 | meta, err := reader.BlockMeta(ctx, block, tenant) |
| 112 | require.NoError(t, err) |
| 113 | rr := vparquet4.NewBackendReaderAt(ctx, reader, vparquet4.DataFileName, meta) |
| 114 | br := tempo_io.NewBufferedReaderAt(rr, int64(meta.Size_), 2*1024*1024, 64) |
| 115 | parquetSchema := parquet.SchemaOf(&vparquet4.Trace{}) |
| 116 | o := []parquet.FileOption{ |
| 117 | parquet.SkipBloomFilters(true), |
| 118 | parquet.SkipPageIndex(true), |
| 119 | parquet.FileSchema(parquetSchema), |
| 120 | parquet.FileReadMode(parquet.ReadModeAsync), |
| 121 | } |
| 122 | pf, err := parquet.OpenFile(br, int64(meta.Size_), o...) |
| 123 | require.NoError(t, err) |
| 124 | r := parquet.NewReader(pf, parquetSchema) |
| 125 | defer func() { |
| 126 | err := r.Close() |
| 127 | require.NoError(t, err) |
| 128 | }() |
| 129 | traceIDIndex, _, _ := parquetquery.GetColumnIndexByPath(pf, vparquet4.TraceIDColumnName) |
| 130 | require.GreaterOrEqual(t, traceIDIndex, 0) |
| 131 | defer func() { |
| 132 | err := r.Close() |
| 133 | require.NoError(t, err) |
| 134 | }() |
| 135 | |
| 136 | for read := int64(0); read < r.NumRows(); { |
| 137 | rows := make([]parquet.Row, r.NumRows()) |
| 138 | n, err := r.ReadRows(rows) |
| 139 | if !errors.Is(err, io.EOF) { |
| 140 | require.NoError(t, err) |
| 141 | } |
| 142 | require.Greater(t, n, 0) |
| 143 | rows = rows[:n] |
| 144 | read += int64(n) |
| 145 | |
| 146 | getTraceID := func(row parquet.Row) common.ID { |
| 147 | for _, v := range row { |
| 148 | if v.Column() == traceIDIndex { |
no test coverage detected