Repository: ignite Updated Branches: refs/heads/master a23c09c56 -> 277a24096
IGNITE-5504: GridTcpCommunicationSpiRecoverySelfTest fixed - Fixes #2796. Signed-off-by: Nikolay Izhikov <nizhi...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/277a2409 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/277a2409 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/277a2409 Branch: refs/heads/master Commit: 277a240967aaf590948f7c532dc3e2400b04016c Parents: a23c09c Author: Vitaliy Biryukov <biryukovvitali...@gmail.com> Authored: Wed Apr 4 17:16:57 2018 +0300 Committer: Nikolay Izhikov <nizhi...@apache.org> Committed: Wed Apr 4 17:17:55 2018 +0300 ---------------------------------------------------------------------- ...GridTcpCommunicationSpiRecoverySelfTest.java | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/277a2409/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiRecoverySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiRecoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiRecoverySelfTest.java index c722577..d2e18c0 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiRecoverySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiRecoverySelfTest.java @@ -31,6 +31,7 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.IgniteInternalFuture; +import org.apache.ignite.internal.IgniteInterruptedCheckedException; import org.apache.ignite.internal.managers.communication.GridIoMessageFactory; import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor; import org.apache.ignite.internal.util.lang.GridAbsPredicate; @@ -367,6 +368,8 @@ public class GridTcpCommunicationSpiRecoverySelfTest<T extends CommunicationSpi> }, 60_000); assertEquals(expMsgs, lsnr1.rcvCnt.get()); + + assertTrue(waitForSessionsCount(spi1, 1)); } catch (IgniteCheckedException e) { if (e.hasCause(BindException.class)) { @@ -499,6 +502,9 @@ public class GridTcpCommunicationSpiRecoverySelfTest<T extends CommunicationSpi> assertEquals(expMsgs0, lsnr0.rcvCnt.get()); assertEquals(expMsgs1, lsnr1.rcvCnt.get()); + + if (spi1.isUsePairedConnections()) + assertTrue(waitForSessionsCount(spi1, 2)); } catch (IgniteCheckedException e) { if (e.hasCause(BindException.class)) { @@ -609,6 +615,8 @@ public class GridTcpCommunicationSpiRecoverySelfTest<T extends CommunicationSpi> }, 60_000); assertEquals(expMsgs, lsnr1.rcvCnt.get()); + + assertTrue(waitForSessionsCount(spi1, 1)); } catch (IgniteCheckedException e) { if (e.hasCause(BindException.class)) { @@ -642,6 +650,22 @@ public class GridTcpCommunicationSpiRecoverySelfTest<T extends CommunicationSpi> } /** + * @param spi Spi. + * + * @return {@code true} if sessions count was achieved, {@code false} otherwise. + */ + private boolean waitForSessionsCount(TcpCommunicationSpi spi, int cnt) throws IgniteInterruptedCheckedException { + return GridTestUtils.waitForCondition(new GridAbsPredicate() { + @Override public boolean apply() { + Collection<? extends GridNioSession> sessions = + GridTestUtils.getFieldValue(spi, "nioSrvr", "sessions"); + + return sessions.size() == cnt; + } + }, awaitForSocketWriteTimeout()); + } + + /** * @param spi SPI. * @param in {@code True} if need find inbound session. * @return Session.