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