(t *testing.T)
| 144 | } |
| 145 | |
| 146 | func TestIngesterStreaming(t *testing.T) { |
| 147 | t.Parallel() |
| 148 | |
| 149 | now := time.Now() |
| 150 | |
| 151 | for _, enc := range encodings { |
| 152 | for _, partialDataEnabled := range []bool{false, true} { |
| 153 | promChunk := util.GenerateChunk(t, time.Second, model.TimeFromUnix(now.Unix()), 10, enc) |
| 154 | clientChunks, err := chunkcompat.ToChunks([]chunk.Chunk{promChunk}) |
| 155 | require.NoError(t, err) |
| 156 | |
| 157 | d := &MockDistributor{} |
| 158 | queryResponse := &client.QueryStreamResponse{ |
| 159 | Chunkseries: []client.TimeSeriesChunk{ |
| 160 | { |
| 161 | Labels: []cortexpb.LabelAdapter{ |
| 162 | {Name: "bar", Value: "baz"}, |
| 163 | }, |
| 164 | Chunks: clientChunks, |
| 165 | }, |
| 166 | { |
| 167 | Labels: []cortexpb.LabelAdapter{ |
| 168 | {Name: "foo", Value: "bar"}, |
| 169 | }, |
| 170 | Chunks: clientChunks, |
| 171 | }, |
| 172 | }, |
| 173 | } |
| 174 | var partialDataErr error |
| 175 | if partialDataEnabled { |
| 176 | partialDataErr = partialdata.ErrPartialData |
| 177 | } |
| 178 | d.On("QueryStream", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(queryResponse, partialDataErr) |
| 179 | |
| 180 | ctx := user.InjectOrgID(context.Background(), "0") |
| 181 | |
| 182 | queryable := newDistributorQueryable(d, true, true, batch.NewChunkMergeIterator, 0, func(string) bool { |
| 183 | return partialDataEnabled |
| 184 | }, 1) |
| 185 | querier, err := queryable.Querier(mint, maxt) |
| 186 | require.NoError(t, err) |
| 187 | |
| 188 | seriesSet := querier.Select(ctx, true, &storage.SelectHints{Start: mint, End: maxt}) |
| 189 | require.NoError(t, seriesSet.Err()) |
| 190 | |
| 191 | require.True(t, seriesSet.Next()) |
| 192 | series := seriesSet.At() |
| 193 | require.Equal(t, labels.FromStrings("bar", "baz"), series.Labels()) |
| 194 | chkIter := series.Iterator(nil) |
| 195 | require.Equal(t, enc.ChunkValueType(), chkIter.Next()) |
| 196 | |
| 197 | require.True(t, seriesSet.Next()) |
| 198 | series = seriesSet.At() |
| 199 | require.Equal(t, labels.FromStrings("foo", "bar"), series.Labels()) |
| 200 | chkIter = series.Iterator(chkIter) |
| 201 | require.Equal(t, enc.ChunkValueType(), chkIter.Next()) |
| 202 | |
| 203 | require.False(t, seriesSet.Next()) |
nothing calls this directly
no test coverage detected