You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/05/07 16:38:42 UTC
[3/6] incubator-ignite git commit: # IGNITE-709 Add additional tests.
# IGNITE-709 Add additional tests.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/0ac6a73a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/0ac6a73a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/0ac6a73a
Branch: refs/heads/ignite-836_2
Commit: 0ac6a73a4e2484e67531048d7d3727d98f3ad654
Parents: 16694d3
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 7 17:11:46 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 7 17:11:46 2015 +0300
----------------------------------------------------------------------
...pClientDiscoveryMarshallerCheckSelfTest.java | 99 ++++++++++++++
.../tcp/TcpClientDiscoverySelfTest.java | 135 ++++++++++++++++++-
.../IgniteSpiDiscoverySelfTestSuite.java | 1 +
3 files changed, 234 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ac6a73a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryMarshallerCheckSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryMarshallerCheckSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryMarshallerCheckSelfTest.java
new file mode 100644
index 0000000..fa63e3c
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoveryMarshallerCheckSelfTest.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.marshaller.jdk.*;
+import org.apache.ignite.marshaller.optimized.*;
+import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.*;
+
+/**
+ * Test for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}.
+ */
+public class TcpClientDiscoveryMarshallerCheckSelfTest extends GridCommonAbstractTest {
+ /** */
+ private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ if (gridName.endsWith("0")) {
+ TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+
+ discoSpi.setIpFinder(ipFinder);
+
+ cfg.setDiscoverySpi(discoSpi);
+
+ cfg.setLocalHost("127.0.0.1");
+
+ cfg.setMarshaller(new JdkMarshaller());
+ }
+ else {
+ TcpClientDiscoverySpi disco = new TcpClientDiscoverySpi();
+
+ TcpDiscoveryVmIpFinder clientIpFinder = new TcpDiscoveryVmIpFinder();
+
+ String addr = F.first(ipFinder.getRegisteredAddresses()).toString();
+
+ if (addr.startsWith("/"))
+ addr = addr.substring(1);
+
+ clientIpFinder.setAddresses(Collections.singleton(addr));
+
+ disco.setIpFinder(clientIpFinder);
+
+ cfg.setDiscoverySpi(disco);
+
+ cfg.setMarshaller(new OptimizedMarshaller());
+ }
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testMarshallerInConsistency() throws Exception {
+ startGrid(0);
+
+ try {
+ startGrid(1);
+
+ fail("Expected SPI exception was not thrown.");
+ }
+ catch (IgniteCheckedException e) {
+ Throwable ex = e.getCause().getCause();
+
+ assertTrue(ex instanceof IgniteSpiException);
+ assertTrue(ex.getMessage().contains("Local node's marshaller differs from remote node's marshaller"));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ac6a73a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySelfTest.java
index 05fb52b..3e8d5fb 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySelfTest.java
@@ -21,12 +21,14 @@ import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.events.*;
+import org.apache.ignite.internal.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.io.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.lang.*;
import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
import org.apache.ignite.spi.discovery.tcp.messages.*;
@@ -86,6 +88,9 @@ public class TcpClientDiscoverySelfTest extends GridCommonAbstractTest {
/** */
private static CountDownLatch msgLatch;
+ /** */
+ private UUID nodeId;
+
/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
@@ -123,6 +128,9 @@ public class TcpClientDiscoverySelfTest extends GridCommonAbstractTest {
cfg.setNodeId(UUID.fromString(nodeId));
}
+ if (nodeId != null)
+ cfg.setNodeId(nodeId);
+
return cfg;
}
@@ -147,6 +155,8 @@ public class TcpClientDiscoverySelfTest extends GridCommonAbstractTest {
stopAllClients(true);
stopAllServers(true);
+ nodeId = null;
+
assert G.allGrids().isEmpty();
}
@@ -287,7 +297,25 @@ public class TcpClientDiscoverySelfTest extends GridCommonAbstractTest {
/**
* @throws Exception If failed.
*/
- public void testClientReconnect() throws Exception {
+ public void testPing() throws Exception {
+ startServerNodes(2);
+ startClientNodes(1);
+
+ Ignite srv0 = G.ignite("server-0");
+ Ignite srv1 = G.ignite("server-1");
+ Ignite client = G.ignite("client-0");
+
+ assert ((IgniteEx)srv0).context().discovery().pingNode(client.cluster().localNode().id());
+ assert ((IgniteEx)srv1).context().discovery().pingNode(client.cluster().localNode().id());
+
+ assert ((IgniteEx)client).context().discovery().pingNode(srv0.cluster().localNode().id());
+ assert ((IgniteEx)client).context().discovery().pingNode(srv1.cluster().localNode().id());
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testClientReconnectOnRouterFail() throws Exception {
clientsPerSrv = 1;
startServerNodes(3);
@@ -313,6 +341,31 @@ public class TcpClientDiscoverySelfTest extends GridCommonAbstractTest {
/**
* @throws Exception If failed.
*/
+ public void testClientReconnectOnNetworkProblem() throws Exception {
+ clientsPerSrv = 1;
+
+ startServerNodes(3);
+ startClientNodes(3);
+
+ checkNodes(3, 3);
+
+ setClientRouter(2, 0);
+
+ srvFailedLatch = new CountDownLatch(2);
+ clientFailedLatch = new CountDownLatch(3);
+
+ attachListeners(2, 3);
+
+ ((TcpClientDiscoverySpi)G.ignite("client-2").configuration().getDiscoverySpi()).brokeConnection();
+
+ G.ignite("client-2").message().remoteListen(null, new MessageListener()); // Send some discovery message.
+
+ checkNodes(3, 3);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
public void testGetMissedMessagesOnReconnect() throws Exception {
clientsPerSrv = 1;
@@ -563,6 +616,86 @@ public class TcpClientDiscoverySelfTest extends GridCommonAbstractTest {
}
/**
+ * @throws Exception If any error occurs.
+ */
+ public void testDuplicateId() throws Exception {
+ startServerNodes(2);
+
+ nodeId = G.ignite("server-1").cluster().localNode().id();
+
+ try {
+ startGrid("client-0");
+
+ assert false;
+ }
+ catch (IgniteCheckedException e) {
+ IgniteSpiException spiEx = e.getCause(IgniteSpiException.class);
+
+ assert spiEx != null : e;
+ assert spiEx.getMessage().contains("same ID") : spiEx.getMessage();
+ }
+ }
+
+ /**
+ * @throws Exception If any error occurs.
+ */
+ public void testJoinTimeout() throws Exception {
+ startServerNodes(2);
+
+ final CountDownLatch cnt = new CountDownLatch(1);
+
+ ((TcpDiscoverySpi)G.ignite("server-1").configuration().getDiscoverySpi()).addSendMessageListener(
+ new IgniteInClosure<TcpDiscoveryAbstractMessage>() {
+ @Override public void apply(TcpDiscoveryAbstractMessage msg) {
+ try {
+ cnt.await(10, MINUTES);
+ }
+ catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
+ throw new IgniteInterruptedException(e);
+ }
+ }
+ });
+
+ try {
+ startGrid("client-0");
+
+ assert false;
+ }
+ catch (IgniteCheckedException e) {
+ cnt.countDown();
+
+ IgniteSpiException spiEx = e.getCause(IgniteSpiException.class);
+
+ assert spiEx != null : e;
+ assert spiEx.getMessage().contains("Join process timed out") : spiEx.getMessage();
+ }
+ }
+
+ /**
+ * @throws Exception If any error occurs.
+ */
+ public void testGridStartTime() throws Exception {
+ startServerNodes(2);
+
+ startClientNodes(2);
+
+ long startTime = -1;
+
+ for (Ignite g : G.allGrids()) {
+ IgniteEx kernal = (IgniteKernal)g;
+
+ assertTrue(kernal.context().discovery().gridStartTime() > 0);
+
+ if (startTime == -1)
+ startTime = kernal.context().discovery().gridStartTime();
+ else
+ assertEquals(startTime, kernal.context().discovery().gridStartTime());
+ }
+ }
+
+ /**
* @param clientIdx Index.
* @throws Exception In case of error.
*/
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ac6a73a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
index bb0b97d..ebc7111 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
@@ -53,6 +53,7 @@ public class IgniteSpiDiscoverySelfTestSuite extends TestSuite {
suite.addTest(new TestSuite(TcpClientDiscoverySelfTest.class));
suite.addTest(new TestSuite(TcpClientDiscoverySpiConfigSelfTest.class));
+ suite.addTest(new TestSuite(TcpClientDiscoveryMarshallerCheckSelfTest.class));
return suite;
}