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

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


The following commit(s) were added to refs/heads/master by this push:
     new c55d68992ad IGNITE-17003 Fix flaky test 
SqlDataTypesCoverageTests.testDecimalDataType (#10027)
c55d68992ad is described below

commit c55d68992add10ea405f4082540e44675e240510
Author: Taras Ledkov <tled...@gridgain.com>
AuthorDate: Mon May 23 10:27:05 2022 +0300

    IGNITE-17003 Fix flaky test SqlDataTypesCoverageTests.testDecimalDataType 
(#10027)
---
 .../ignite/sqltests/SqlDataTypesCoverageTests.java | 41 ++++++++++++++++++++--
 1 file changed, 38 insertions(+), 3 deletions(-)

diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/sqltests/SqlDataTypesCoverageTests.java
 
b/modules/indexing/src/test/java/org/apache/ignite/sqltests/SqlDataTypesCoverageTests.java
index 2e92b9f22cd..03afbe30f46 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/sqltests/SqlDataTypesCoverageTests.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/sqltests/SqlDataTypesCoverageTests.java
@@ -20,6 +20,7 @@ package org.apache.ignite.sqltests;
 import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 import java.util.Random;
 import java.util.UUID;
 import org.apache.ignite.cache.CacheMode;
@@ -409,9 +410,43 @@ public class SqlDataTypesCoverageTests extends 
AbstractDataTypesCoverageTest {
     private void check(IgniteEx ignite, String qryStr, SqlDataType dataType, 
Object expKey, Object expVal)
         throws Exception {
         if (writeSyncMode == CacheWriteSynchronizationMode.FULL_ASYNC &&
-            !waitForCondition(() -> !ignite.context().query().querySqlFields(
-                new SqlFieldsQuery(qryStr), false).getAll().isEmpty(),
-                TIMEOUT_FOR_KEY_RETRIEVAL_IN_FULL_ASYNC_MODE))
+            !waitForCondition(() -> {
+                List<List<?>> res = ignite.context().query().querySqlFields(
+                    new SqlFieldsQuery(qryStr), false).getAll();
+
+                if (res.isEmpty())
+                    return false;
+                else {
+                    if (res.size() != 1)
+                        return false;
+                    if (res.get(0).size() != 2)
+                        return false;
+
+                    if (expKey instanceof byte[]) {
+                        if (!Arrays.equals((byte[])expKey, 
(byte[])res.get(0).get(0)))
+                            return false;
+                    }
+                    else {
+                        if (!Objects.equals(expKey, res.get(0).get(0)))
+                            return false;
+                    }
+
+                    if 
(!res.get(0).get(1).getClass().equals(dataType.javaType))
+                        return false;
+
+                    if (expVal instanceof byte[]) {
+                        if (!Arrays.equals((byte[])expVal, 
(byte[])res.get(0).get(1)))
+                            return false;
+                    }
+                    else {
+                        if (!Objects.equals(expVal, res.get(0).get(1)))
+                            return false;
+                    }
+
+                    return true;
+                }
+            },
+            TIMEOUT_FOR_KEY_RETRIEVAL_IN_FULL_ASYNC_MODE))
             fail("Unable to retrieve data via SELECT.");
 
         List<List<?>> res = ignite.context().query().querySqlFields(new 
SqlFieldsQuery(qryStr), false).

Reply via email to