From 113c51566a3941d79e126de7f70ee97cc6472e94 Mon Sep 17 00:00:00 2001 From: Rob Austin Date: Thu, 23 Oct 2014 16:01:28 +0100 Subject: [PATCH] HCOLL-167 added testBufferOverFlowPutAll --- .../chronicle/map/ReplicatedChronicleMap.java | 2 +- ...terTest.java => SingleMapChannelTest.java} | 2 +- .../chronicle/map/StatelessClientTest.java | 126 ++++++++++++++++++ 3 files changed, 128 insertions(+), 2 deletions(-) rename src/test/java/net/openhft/chronicle/map/{SingleMapClusterTest.java => SingleMapChannelTest.java} (99%) create mode 100644 src/test/java/net/openhft/chronicle/map/StatelessClientTest.java diff --git a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java index e5bd41fd5..33329352f 100644 --- a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java @@ -458,7 +458,7 @@ class ReplicatedChronicleMap, } if (remoteIdentifier == ReplicatedChronicleMap.this.identifier()) { - // this may occur when working with UDP, as we will receive our own data + // this may occur when working with UDP, as we may receive our own data return; } diff --git a/src/test/java/net/openhft/chronicle/map/SingleMapClusterTest.java b/src/test/java/net/openhft/chronicle/map/SingleMapChannelTest.java similarity index 99% rename from src/test/java/net/openhft/chronicle/map/SingleMapClusterTest.java rename to src/test/java/net/openhft/chronicle/map/SingleMapChannelTest.java index 7de230de2..f5162928f 100644 --- a/src/test/java/net/openhft/chronicle/map/SingleMapClusterTest.java +++ b/src/test/java/net/openhft/chronicle/map/SingleMapChannelTest.java @@ -35,7 +35,7 @@ import static org.junit.Assert.assertTrue; * * @author Rob Austin. */ -public class SingleMapClusterTest { +public class SingleMapChannelTest { private ChronicleMap map1a; diff --git a/src/test/java/net/openhft/chronicle/map/StatelessClientTest.java b/src/test/java/net/openhft/chronicle/map/StatelessClientTest.java new file mode 100644 index 000000000..24f0ba264 --- /dev/null +++ b/src/test/java/net/openhft/chronicle/map/StatelessClientTest.java @@ -0,0 +1,126 @@ +package net.openhft.chronicle.map; + +import org.junit.Test; +import org.testng.Assert; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.util.HashMap; +import java.util.Map; + +import static net.openhft.chronicle.common.StatelessBuilder.remoteAddress; + + +/** + * @author Rob Austin. + */ +public class StatelessClientTest { + + + @Test + public void test() throws IOException, InterruptedException { + + final ChronicleMap serverMap; + final ChronicleMap statelessMap; + +// server + { + serverMap = ChronicleMapBuilder.of(Integer.class, CharSequence.class) + .replicators((byte) 2, TcpReplicationConfig.of(8076)).create(); + + serverMap.put(10, "EXAMPLE-10"); + } + + +// stateless client + { + statelessMap = ChronicleMapBuilder.of(Integer + .class, CharSequence.class) + .stateless(remoteAddress(new InetSocketAddress("localhost", 8076))).create(); + + Assert.assertEquals("EXAMPLE-10", statelessMap.get(10)); + Assert.assertEquals(1, statelessMap.size()); + } + + serverMap.close(); + statelessMap.close(); + + } + + + @Test + public void testClientCreatedBeforeServer() throws IOException, InterruptedException { + + final ChronicleMap serverMap; + final ChronicleMap statelessMap; + + + // stateless client + { + statelessMap = ChronicleMapBuilder.of(Integer + .class, CharSequence.class) + .stateless(remoteAddress(new InetSocketAddress("localhost", 8076))).create(); + + + } + + // server + { + serverMap = ChronicleMapBuilder.of(Integer.class, CharSequence.class) + .replicators((byte) 2, TcpReplicationConfig.of(8076)).create(); + + serverMap.put(10, "EXAMPLE-10"); + } + + + Assert.assertEquals("EXAMPLE-10", statelessMap.get(10)); + Assert.assertEquals(1, statelessMap.size()); + + serverMap.close(); + statelessMap.close(); + + } + + + @Test + public void testBufferOverFlowPutAll() throws IOException, InterruptedException { + + final ChronicleMap serverMap; + final ChronicleMap statelessMap; + + + // stateless client + { + statelessMap = ChronicleMapBuilder.of(Integer + .class, CharSequence.class) + .stateless(remoteAddress(new InetSocketAddress("localhost", 8076))).create(); + + + } + + // server + { + serverMap = ChronicleMapBuilder.of(Integer.class, CharSequence.class) + .replicators((byte) 2, TcpReplicationConfig.of(8076)).create(); + + } + + + Map payload = new HashMap(); + + for (int i = 0; i < 100000; i++) { + serverMap.put(i, "some value=" + i); + } + + + statelessMap.putAll(payload); + + Assert.assertEquals("some value=10", statelessMap.get(10)); + Assert.assertEquals(100000, statelessMap.size()); + + serverMap.close(); + statelessMap.close(); + + } +} +