Skip to content

Commit e54bd24

Browse files
authored
ESQL: Share more test utilities (#120386)
This moves two lovely bits of testing from `compute` to `compute.test`, namely `RandomBlock` and `OperatorTestCase`. `RandomBlock` makes lovely random data and `OperatorTestCase` is very good at catching mistakes in `Operator` implementations, specifically those around releasing `Block`s. I also started using `RandomBlock` in a test in `esql` proper and will, in a follow up, use `OperatorTestCase`.
1 parent aa6822e commit e54bd24

File tree

116 files changed

+567
-467
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+567
-467
lines changed

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/OperatorTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import org.elasticsearch.compute.aggregation.blockhash.BlockHash;
3838
import org.elasticsearch.compute.data.Block;
3939
import org.elasticsearch.compute.data.BlockFactory;
40-
import org.elasticsearch.compute.data.BlockTestUtils;
4140
import org.elasticsearch.compute.data.BytesRefBlock;
4241
import org.elasticsearch.compute.data.DocBlock;
4342
import org.elasticsearch.compute.data.DocVector;
@@ -57,12 +56,13 @@
5756
import org.elasticsearch.compute.operator.HashAggregationOperator;
5857
import org.elasticsearch.compute.operator.LimitOperator;
5958
import org.elasticsearch.compute.operator.Operator;
60-
import org.elasticsearch.compute.operator.OperatorTestCase;
6159
import org.elasticsearch.compute.operator.OrdinalsGroupingOperator;
6260
import org.elasticsearch.compute.operator.PageConsumerOperator;
6361
import org.elasticsearch.compute.operator.RowInTableLookupOperator;
64-
import org.elasticsearch.compute.operator.SequenceLongBlockSourceOperator;
6562
import org.elasticsearch.compute.operator.ShuffleDocsOperator;
63+
import org.elasticsearch.compute.test.BlockTestUtils;
64+
import org.elasticsearch.compute.test.OperatorTestCase;
65+
import org.elasticsearch.compute.test.SequenceLongBlockSourceOperator;
6666
import org.elasticsearch.core.CheckedConsumer;
6767
import org.elasticsearch.core.Releasables;
6868
import org.elasticsearch.index.mapper.KeywordFieldMapper;
@@ -84,7 +84,7 @@
8484

8585
import static org.elasticsearch.compute.aggregation.AggregatorMode.FINAL;
8686
import static org.elasticsearch.compute.aggregation.AggregatorMode.INITIAL;
87-
import static org.elasticsearch.compute.operator.OperatorTestCase.randomPageSize;
87+
import static org.elasticsearch.compute.test.OperatorTestCase.randomPageSize;
8888
import static org.hamcrest.Matchers.contains;
8989
import static org.hamcrest.Matchers.empty;
9090
import static org.hamcrest.Matchers.equalTo;

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/AggregatorFunctionTestCase.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.elasticsearch.compute.ConstantBooleanExpressionEvaluator;
1212
import org.elasticsearch.compute.data.Block;
1313
import org.elasticsearch.compute.data.BlockFactory;
14-
import org.elasticsearch.compute.data.BlockTestUtils;
1514
import org.elasticsearch.compute.data.BlockUtils;
1615
import org.elasticsearch.compute.data.BooleanBlock;
1716
import org.elasticsearch.compute.data.BytesRefBlock;
@@ -21,17 +20,18 @@
2120
import org.elasticsearch.compute.data.IntBlock;
2221
import org.elasticsearch.compute.data.LongBlock;
2322
import org.elasticsearch.compute.data.Page;
24-
import org.elasticsearch.compute.data.TestBlockFactory;
2523
import org.elasticsearch.compute.operator.AddGarbageRowsSourceOperator;
2624
import org.elasticsearch.compute.operator.AggregationOperator;
27-
import org.elasticsearch.compute.operator.CannedSourceOperator;
2825
import org.elasticsearch.compute.operator.Driver;
2926
import org.elasticsearch.compute.operator.DriverContext;
3027
import org.elasticsearch.compute.operator.ForkingOperatorTestCase;
3128
import org.elasticsearch.compute.operator.NullInsertingSourceOperator;
3229
import org.elasticsearch.compute.operator.Operator;
3330
import org.elasticsearch.compute.operator.PositionMergingSourceOperator;
34-
import org.elasticsearch.compute.operator.TestResultPageSinkOperator;
31+
import org.elasticsearch.compute.test.BlockTestUtils;
32+
import org.elasticsearch.compute.test.CannedSourceOperator;
33+
import org.elasticsearch.compute.test.TestBlockFactory;
34+
import org.elasticsearch.compute.test.TestResultPageSinkOperator;
3535
import org.hamcrest.Matcher;
3636

3737
import java.util.ArrayList;

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/ArrayStateTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
import org.elasticsearch.common.Randomness;
1616
import org.elasticsearch.common.util.BigArrays;
1717
import org.elasticsearch.compute.data.Block;
18-
import org.elasticsearch.compute.data.BlockTestUtils;
1918
import org.elasticsearch.compute.data.BlockUtils;
2019
import org.elasticsearch.compute.data.ElementType;
2120
import org.elasticsearch.compute.data.IntVector;
22-
import org.elasticsearch.compute.data.TestBlockFactory;
2321
import org.elasticsearch.compute.operator.DriverContext;
22+
import org.elasticsearch.compute.test.BlockTestUtils;
23+
import org.elasticsearch.compute.test.TestBlockFactory;
2424
import org.elasticsearch.core.Releasables;
2525
import org.elasticsearch.test.ESTestCase;
2626
import org.elasticsearch.xpack.esql.core.type.DataType;

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/CountAggregatorFunctionTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77

88
package org.elasticsearch.compute.aggregation;
99

10-
import org.elasticsearch.compute.data.BasicBlockTests;
1110
import org.elasticsearch.compute.data.Block;
1211
import org.elasticsearch.compute.data.BlockFactory;
1312
import org.elasticsearch.compute.data.LongBlock;
14-
import org.elasticsearch.compute.operator.SequenceLongBlockSourceOperator;
1513
import org.elasticsearch.compute.operator.SourceOperator;
14+
import org.elasticsearch.compute.test.SequenceLongBlockSourceOperator;
1615

1716
import java.util.List;
1817
import java.util.stream.LongStream;
1918

19+
import static org.elasticsearch.compute.test.BlockTestUtils.valuesAtPositions;
2020
import static org.hamcrest.Matchers.equalTo;
2121

2222
public class CountAggregatorFunctionTests extends AggregatorFunctionTestCase {
@@ -44,6 +44,6 @@ protected void assertSimpleOutput(List<Block> input, Block result) {
4444
@Override
4545
protected void assertOutputFromEmpty(Block b) {
4646
assertThat(b.getPositionCount(), equalTo(1));
47-
assertThat(BasicBlockTests.valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
47+
assertThat(valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
4848
}
4949
}

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/CountDistinctBooleanAggregatorFunctionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
package org.elasticsearch.compute.aggregation;
99

10-
import org.elasticsearch.compute.data.BasicBlockTests;
1110
import org.elasticsearch.compute.data.Block;
1211
import org.elasticsearch.compute.data.BlockFactory;
1312
import org.elasticsearch.compute.data.LongBlock;
@@ -17,6 +16,7 @@
1716
import java.util.List;
1817
import java.util.stream.LongStream;
1918

19+
import static org.elasticsearch.compute.test.BlockTestUtils.valuesAtPositions;
2020
import static org.hamcrest.Matchers.equalTo;
2121

2222
public class CountDistinctBooleanAggregatorFunctionTests extends AggregatorFunctionTestCase {
@@ -45,6 +45,6 @@ protected void assertSimpleOutput(List<Block> input, Block result) {
4545
@Override
4646
protected void assertOutputFromEmpty(Block b) {
4747
assertThat(b.getPositionCount(), equalTo(1));
48-
assertThat(BasicBlockTests.valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
48+
assertThat(valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
4949
}
5050
}

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/CountDistinctBytesRefAggregatorFunctionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package org.elasticsearch.compute.aggregation;
99

1010
import org.apache.lucene.util.BytesRef;
11-
import org.elasticsearch.compute.data.BasicBlockTests;
1211
import org.elasticsearch.compute.data.Block;
1312
import org.elasticsearch.compute.data.BlockFactory;
1413
import org.elasticsearch.compute.data.LongBlock;
@@ -18,6 +17,7 @@
1817
import java.util.List;
1918
import java.util.stream.LongStream;
2019

20+
import static org.elasticsearch.compute.test.BlockTestUtils.valuesAtPositions;
2121
import static org.hamcrest.Matchers.closeTo;
2222
import static org.hamcrest.Matchers.equalTo;
2323

@@ -54,6 +54,6 @@ protected void assertSimpleOutput(List<Block> input, Block result) {
5454
@Override
5555
protected void assertOutputFromEmpty(Block b) {
5656
assertThat(b.getPositionCount(), equalTo(1));
57-
assertThat(BasicBlockTests.valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
57+
assertThat(valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
5858
}
5959
}

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/CountDistinctDoubleAggregatorFunctionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
package org.elasticsearch.compute.aggregation;
99

10-
import org.elasticsearch.compute.data.BasicBlockTests;
1110
import org.elasticsearch.compute.data.Block;
1211
import org.elasticsearch.compute.data.BlockFactory;
1312
import org.elasticsearch.compute.data.LongBlock;
@@ -18,6 +17,7 @@
1817
import java.util.List;
1918
import java.util.stream.LongStream;
2019

20+
import static org.elasticsearch.compute.test.BlockTestUtils.valuesAtPositions;
2121
import static org.hamcrest.Matchers.closeTo;
2222
import static org.hamcrest.Matchers.equalTo;
2323

@@ -51,6 +51,6 @@ protected void assertSimpleOutput(List<Block> input, Block result) {
5151
@Override
5252
protected void assertOutputFromEmpty(Block b) {
5353
assertThat(b.getPositionCount(), equalTo(1));
54-
assertThat(BasicBlockTests.valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
54+
assertThat(valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
5555
}
5656
}

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/CountDistinctFloatAggregatorFunctionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
package org.elasticsearch.compute.aggregation;
99

10-
import org.elasticsearch.compute.data.BasicBlockTests;
1110
import org.elasticsearch.compute.data.Block;
1211
import org.elasticsearch.compute.data.BlockFactory;
1312
import org.elasticsearch.compute.data.LongBlock;
@@ -18,6 +17,7 @@
1817
import java.util.List;
1918
import java.util.stream.LongStream;
2019

20+
import static org.elasticsearch.compute.test.BlockTestUtils.valuesAtPositions;
2121
import static org.hamcrest.Matchers.closeTo;
2222
import static org.hamcrest.Matchers.equalTo;
2323

@@ -51,6 +51,6 @@ protected void assertSimpleOutput(List<Block> input, Block result) {
5151
@Override
5252
protected void assertOutputFromEmpty(Block b) {
5353
assertThat(b.getPositionCount(), equalTo(1));
54-
assertThat(BasicBlockTests.valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
54+
assertThat(valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
5555
}
5656
}

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/CountDistinctIntAggregatorFunctionTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@
88
package org.elasticsearch.compute.aggregation;
99

1010
import org.elasticsearch.common.collect.Iterators;
11-
import org.elasticsearch.compute.data.BasicBlockTests;
1211
import org.elasticsearch.compute.data.Block;
1312
import org.elasticsearch.compute.data.BlockFactory;
1413
import org.elasticsearch.compute.data.LongBlock;
1514
import org.elasticsearch.compute.data.Page;
16-
import org.elasticsearch.compute.operator.CannedSourceOperator;
1715
import org.elasticsearch.compute.operator.Driver;
1816
import org.elasticsearch.compute.operator.DriverContext;
1917
import org.elasticsearch.compute.operator.PageConsumerOperator;
2018
import org.elasticsearch.compute.operator.SequenceIntBlockSourceOperator;
2119
import org.elasticsearch.compute.operator.SourceOperator;
20+
import org.elasticsearch.compute.test.CannedSourceOperator;
2221

2322
import java.util.List;
2423
import java.util.stream.LongStream;
2524

25+
import static org.elasticsearch.compute.test.BlockTestUtils.valuesAtPositions;
2626
import static org.hamcrest.Matchers.closeTo;
2727
import static org.hamcrest.Matchers.equalTo;
2828

@@ -57,7 +57,7 @@ protected void assertSimpleOutput(List<Block> input, Block result) {
5757
@Override
5858
protected void assertOutputFromEmpty(Block b) {
5959
assertThat(b.getPositionCount(), equalTo(1));
60-
assertThat(BasicBlockTests.valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
60+
assertThat(valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
6161
}
6262

6363
public void testRejectsDouble() {

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/CountDistinctLongAggregatorFunctionTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@
88
package org.elasticsearch.compute.aggregation;
99

1010
import org.elasticsearch.common.collect.Iterators;
11-
import org.elasticsearch.compute.data.BasicBlockTests;
1211
import org.elasticsearch.compute.data.Block;
1312
import org.elasticsearch.compute.data.BlockFactory;
1413
import org.elasticsearch.compute.data.LongBlock;
1514
import org.elasticsearch.compute.data.Page;
16-
import org.elasticsearch.compute.operator.CannedSourceOperator;
1715
import org.elasticsearch.compute.operator.Driver;
1816
import org.elasticsearch.compute.operator.DriverContext;
1917
import org.elasticsearch.compute.operator.PageConsumerOperator;
20-
import org.elasticsearch.compute.operator.SequenceLongBlockSourceOperator;
2118
import org.elasticsearch.compute.operator.SourceOperator;
19+
import org.elasticsearch.compute.test.CannedSourceOperator;
20+
import org.elasticsearch.compute.test.SequenceLongBlockSourceOperator;
2221

2322
import java.util.List;
2423
import java.util.stream.LongStream;
2524

25+
import static org.elasticsearch.compute.test.BlockTestUtils.valuesAtPositions;
2626
import static org.hamcrest.Matchers.closeTo;
2727
import static org.hamcrest.Matchers.equalTo;
2828

@@ -58,7 +58,7 @@ protected void assertSimpleOutput(List<Block> input, Block result) {
5858
@Override
5959
protected void assertOutputFromEmpty(Block b) {
6060
assertThat(b.getPositionCount(), equalTo(1));
61-
assertThat(BasicBlockTests.valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
61+
assertThat(valuesAtPositions(b, 0, 1), equalTo(List.of(List.of(0L))));
6262
}
6363

6464
public void testRejectsDouble() {

0 commit comments

Comments
 (0)