Skip to content

Commit de59bd7

Browse files
authored
Fix KeywordSyntheticSourceNativeArrayIntegrationTests for release builds (#123008)
1 parent 4de8244 commit de59bd7

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

server/src/test/java/org/elasticsearch/index/mapper/KeywordSyntheticSourceNativeArrayIntegrationTests.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.elasticsearch.action.search.SearchRequest;
2020
import org.elasticsearch.action.support.WriteRequest;
2121
import org.elasticsearch.common.settings.Settings;
22+
import org.elasticsearch.index.IndexSettings;
2223
import org.elasticsearch.index.query.IdsQueryBuilder;
2324
import org.elasticsearch.test.ESSingleNodeTestCase;
2425
import org.elasticsearch.xcontent.XContentBuilder;
@@ -33,6 +34,7 @@
3334

3435
import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder;
3536
import static org.hamcrest.Matchers.contains;
37+
import static org.hamcrest.Matchers.containsInAnyOrder;
3638
import static org.hamcrest.Matchers.empty;
3739
import static org.hamcrest.Matchers.equalTo;
3840
import static org.hamcrest.Matchers.hasKey;
@@ -183,7 +185,14 @@ private void verifySyntheticArray(Object[][] arrays, XContentBuilder mapping, In
183185
var document = reader.storedFields().document(i);
184186
// Verify that there is no ignored source:
185187
Set<String> storedFieldNames = new LinkedHashSet<>(document.getFields().stream().map(IndexableField::name).toList());
186-
assertThat(storedFieldNames, contains(expectedStoredFields));
188+
if (IndexSettings.RECOVERY_USE_SYNTHETIC_SOURCE.isEnabled()) {
189+
assertThat(storedFieldNames, contains(expectedStoredFields));
190+
} else {
191+
String[] copyExpectedStoredFields = new String[expectedStoredFields.length + 1];
192+
System.arraycopy(expectedStoredFields, 0, copyExpectedStoredFields, 0, expectedStoredFields.length);
193+
copyExpectedStoredFields[copyExpectedStoredFields.length - 1] = "_recovery_source";
194+
assertThat(storedFieldNames, containsInAnyOrder(copyExpectedStoredFields));
195+
}
187196
}
188197
var fieldInfo = FieldInfos.getMergedFieldInfos(reader).fieldInfo("field.offsets");
189198
assertThat(fieldInfo.getDocValuesType(), equalTo(DocValuesType.SORTED));
@@ -248,7 +257,11 @@ private void verifySyntheticObjectArray(List<List<Object[]>> documents) throws I
248257
var document = reader.storedFields().document(i);
249258
// Verify that there is ignored source because of leaf array being wrapped by object array:
250259
List<String> storedFieldNames = document.getFields().stream().map(IndexableField::name).toList();
251-
assertThat(storedFieldNames, contains("_id", "_ignored_source"));
260+
if (IndexSettings.RECOVERY_USE_SYNTHETIC_SOURCE.isEnabled()) {
261+
assertThat(storedFieldNames, contains("_id", "_ignored_source"));
262+
} else {
263+
assertThat(storedFieldNames, containsInAnyOrder("_id", "_ignored_source", "_recovery_source"));
264+
}
252265

253266
// Verify that there is no offset field:
254267
LeafReader leafReader = reader.leaves().get(0).reader();
@@ -321,7 +334,11 @@ private void verifySyntheticArrayInObject(List<Object[]> documents) throws IOExc
321334
var document = reader.storedFields().document(i);
322335
// Verify that there is no ignored source:
323336
Set<String> storedFieldNames = new LinkedHashSet<>(document.getFields().stream().map(IndexableField::name).toList());
324-
assertThat(storedFieldNames, contains("_id"));
337+
if (IndexSettings.RECOVERY_USE_SYNTHETIC_SOURCE.isEnabled()) {
338+
assertThat(storedFieldNames, contains("_id"));
339+
} else {
340+
assertThat(storedFieldNames, containsInAnyOrder("_id", "_recovery_source"));
341+
}
325342
}
326343
var fieldInfo = FieldInfos.getMergedFieldInfos(reader).fieldInfo("object.field.offsets");
327344
assertThat(fieldInfo.getDocValuesType(), equalTo(DocValuesType.SORTED));

0 commit comments

Comments
 (0)