Skip to content

Commit 8dafc10

Browse files
committed
Improved assertion failure message and more logging, if the test fails again in CI.
1 parent b6f5810 commit 8dafc10

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

server/src/test/java/org/elasticsearch/index/mapper/blockloader/TextFieldBlockLoaderTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public TextFieldBlockLoaderTests(Params params) {
2727

2828
@Override
2929
protected Object expected(Map<String, Object> fieldMapping, Object value, TestContext testContext) {
30+
logger.info("field mapping={}", fieldMapping);
31+
logger.info("value={}", value);
3032
return expectedValue(fieldMapping, value, params, testContext);
3133
}
3234

test/framework/src/main/java/org/elasticsearch/index/mapper/BlockLoaderTestRunner.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.apache.lucene.index.LeafReaderContext;
1414
import org.apache.lucene.store.Directory;
1515
import org.apache.lucene.tests.index.RandomIndexWriter;
16+
import org.apache.lucene.util.BytesRef;
1617
import org.elasticsearch.common.bytes.BytesReference;
1718
import org.elasticsearch.index.IndexSettings;
1819
import org.elasticsearch.index.fieldvisitor.StoredFieldLoader;
@@ -24,6 +25,8 @@
2425
import org.junit.Assert;
2526

2627
import java.io.IOException;
28+
import java.util.ArrayList;
29+
import java.util.List;
2730
import java.util.Map;
2831
import java.util.Set;
2932

@@ -44,9 +47,25 @@ public void runTest(MapperService mapperService, Map<String, Object> document, O
4447
var documentXContent = XContentBuilder.builder(XContentType.JSON.xContent()).map(document);
4548

4649
Object blockLoaderResult = setupAndInvokeBlockLoader(mapperService, documentXContent, blockLoaderFieldName);
50+
expected = makeReadable(expected);
51+
blockLoaderResult = makeReadable(blockLoaderResult);
4752
Assert.assertEquals(expected, blockLoaderResult);
4853
}
4954

55+
// Makes assertions readable:
56+
private static Object makeReadable(Object expected) {
57+
if (expected instanceof BytesRef bytesRef) {
58+
expected = bytesRef.utf8ToString();
59+
} else if (expected instanceof List<?> list && list.getFirst() instanceof BytesRef) {
60+
List<String> expectedList = new ArrayList<>(list.size());
61+
for (Object e : list) {
62+
expectedList.add(((BytesRef) e).utf8ToString());
63+
}
64+
expected = expectedList;
65+
}
66+
return expected;
67+
}
68+
5069
private Object setupAndInvokeBlockLoader(MapperService mapperService, XContentBuilder document, String fieldName) throws IOException {
5170
try (Directory directory = newDirectory()) {
5271
RandomIndexWriter iw = new RandomIndexWriter(random(), directory);

0 commit comments

Comments
 (0)