This is an automated email from the ASF dual-hosted git repository.

xiangfu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ce30621ab fixing ValueReaderComparisonTest during to accidentally 
hitting surrogates (#11681)
8ce30621ab is described below

commit 8ce30621abda3458be22cf547220351ac2bd9037
Author: Xiang Fu <xiangfu.1...@gmail.com>
AuthorDate: Tue Sep 26 16:01:19 2023 -0700

    fixing ValueReaderComparisonTest during to accidentally hitting surrogates 
(#11681)
---
 .../readerwriter/ValueReaderComparisonTest.java    | 30 ++++++++++++++++------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/index/readerwriter/ValueReaderComparisonTest.java
 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/index/readerwriter/ValueReaderComparisonTest.java
index 245c63c953..f788bdb378 100644
--- 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/index/readerwriter/ValueReaderComparisonTest.java
+++ 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/index/readerwriter/ValueReaderComparisonTest.java
@@ -24,8 +24,11 @@ import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.ThreadLocalRandom;
+import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
 import org.apache.commons.lang3.tuple.Pair;
@@ -44,15 +47,25 @@ import static org.testng.Assert.assertTrue;
 
 public class ValueReaderComparisonTest {
 
+  // Number of rounds to run the test for, change this number to test locally 
for catching the corner cases.
+  private static final int NUM_ROUNDS = 1;
+
   @DataProvider
   public static Object[] text() {
-    return Stream.of(Pair.of(ByteOrder.BIG_ENDIAN, true), 
Pair.of(ByteOrder.LITTLE_ENDIAN, true),
-        // there is no little endian support for var length at the time of 
writing
-        Pair.of(ByteOrder.BIG_ENDIAN, false)).flatMap(
-        pair -> Stream.of(new AsciiTestCase(pair.getLeft(), pair.getRight()),
-            new Utf8TestCase(pair.getLeft(), pair.getRight()),
-            new RandomBytesTextTestCase(pair.getLeft(), pair.getRight()),
-            new OrderedInvalidUtf8TestCase(pair.getLeft(), 
pair.getRight()))).toArray(Object[]::new);
+    return Collections.nCopies(NUM_ROUNDS,
+            Stream.of(
+                    Pair.of(ByteOrder.BIG_ENDIAN, true),
+                    Pair.of(ByteOrder.LITTLE_ENDIAN, true),
+                    Pair.of(ByteOrder.BIG_ENDIAN, false))
+                .flatMap(
+                    pair -> Stream.of(
+                        new AsciiTestCase(pair.getLeft(), pair.getRight()),
+                        new Utf8TestCase(pair.getLeft(), pair.getRight()),
+                        new RandomBytesTextTestCase(pair.getLeft(), 
pair.getRight()),
+                        new OrderedInvalidUtf8TestCase(pair.getLeft(), 
pair.getRight())))
+                .collect(Collectors.toList()))
+        .stream()
+        .flatMap(List::stream).toArray(Object[]::new);
   }
 
   static abstract class TestCase {
@@ -142,7 +155,8 @@ public class ValueReaderComparisonTest {
         char[] chars = strings[i].toCharArray();
         for (int j = 0; j < strings[i].length(); j++) {
           // this test's ordering assumption is not valid for surrogates
-          if (!Character.isLowSurrogate(chars[j])) {
+          char nextChar = (char) (chars[j] + 1);
+          if (!Character.isSurrogate(chars[j]) && 
!Character.isSurrogate(nextChar)) {
             chars[j]++;
             String string = new String(chars);
             int signum = strings[i].compareTo(string);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to