From db8c5fb14901c44c5e8930d1dc165ca36150e23c Mon Sep 17 00:00:00 2001 From: Jordan Powers Date: Mon, 28 Jul 2025 09:07:29 -0700 Subject: [PATCH 1/2] Use unicode strings in data generation by default --- .../datasource/DefaultObjectGenerationHandler.java | 4 ++-- .../datasource/DefaultPrimitiveTypesHandler.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java b/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java index c1d0cccda83ea..20653bc4022a8 100644 --- a/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java +++ b/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java @@ -15,9 +15,9 @@ import java.util.Optional; import java.util.Set; -import static org.elasticsearch.test.ESTestCase.randomAlphaOfLengthBetween; import static org.elasticsearch.test.ESTestCase.randomDouble; import static org.elasticsearch.test.ESTestCase.randomIntBetween; +import static org.elasticsearch.test.ESTestCase.randomRealisticUnicodeOfCodepointLengthBetween; public class DefaultObjectGenerationHandler implements DataSourceHandler { @Override @@ -49,7 +49,7 @@ public boolean generateRegularSubObject() { @Override public String generateFieldName() { - return randomAlphaOfLengthBetween(1, 10); + return randomRealisticUnicodeOfCodepointLengthBetween(1, 10); } }; } diff --git a/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultPrimitiveTypesHandler.java b/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultPrimitiveTypesHandler.java index fd55c61f692ca..6b60a36663f0f 100644 --- a/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultPrimitiveTypesHandler.java +++ b/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultPrimitiveTypesHandler.java @@ -59,7 +59,7 @@ public DataSourceResponse.HalfFloatGenerator handle(DataSourceRequest.HalfFloatG @Override public DataSourceResponse.StringGenerator handle(DataSourceRequest.StringGenerator request) { - return new DataSourceResponse.StringGenerator(() -> ESTestCase.randomAlphaOfLengthBetween(0, 50)); + return new DataSourceResponse.StringGenerator(() -> ESTestCase.randomRealisticUnicodeOfCodepointLengthBetween(0, 50)); } @Override From a2580a648835dfe47b8c70dcf17bd49a809b02f0 Mon Sep 17 00:00:00 2001 From: Jordan Powers Date: Mon, 28 Jul 2025 10:23:37 -0700 Subject: [PATCH 2/2] Avoid generating invalid field names --- .../datasource/DefaultObjectGenerationHandler.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java b/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java index 20653bc4022a8..bf660779186ca 100644 --- a/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java +++ b/test/framework/src/main/java/org/elasticsearch/datageneration/datasource/DefaultObjectGenerationHandler.java @@ -49,7 +49,17 @@ public boolean generateRegularSubObject() { @Override public String generateFieldName() { - return randomRealisticUnicodeOfCodepointLengthBetween(1, 10); + while (true) { + String fieldName = randomRealisticUnicodeOfCodepointLengthBetween(1, 10); + if (fieldName.isBlank()) { + continue; + } + if (fieldName.indexOf('.') != -1) { + continue; + } + + return fieldName; + } } }; }