You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by tl...@apache.org on 2022/05/23 07:27:12 UTC

[ignite] branch master updated: IGNITE-17003 Fix flaky test SqlDataTypesCoverageTests.testDecimalDataType (#10027)

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 <tl...@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).