diff options
author | mikaelpeltier <mikaelpeltier@google.com> | 2015-06-24 14:31:11 +0200 |
---|---|---|
committer | Mikael Peltier <mikaelpeltier@google.com> | 2015-06-24 14:59:36 +0000 |
commit | 04563874ddaac702d6c715eaa89c29b253f4c54e (patch) | |
tree | c305fa98670c3e80be494cc054a8e31b51bfe7f2 /simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java | |
parent | f1828481ebcfee3bddc323fca178a4502a60ceef (diff) | |
download | toolchain_jack-04563874ddaac702d6c715eaa89c29b253f4c54e.zip toolchain_jack-04563874ddaac702d6c715eaa89c29b253f4c54e.tar.gz toolchain_jack-04563874ddaac702d6c715eaa89c29b253f4c54e.tar.bz2 |
Add simpleframework source files
Change-Id: I18d01df16de2868ca5458f79a88e6070b75db2c3
(cherry picked from commit 3e9f84cf7b22f6970eb8041ca38d12d75c6bb270)
Diffstat (limited to 'simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java')
-rw-r--r-- | simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java b/simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java new file mode 100644 index 0000000..a893f04 --- /dev/null +++ b/simple/simple-transport/src/test/java/org/simpleframework/transport/SocketBufferTest.java @@ -0,0 +1,86 @@ +package org.simpleframework.transport; + +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.nio.ByteBuffer; +import java.nio.channels.SocketChannel; + +import junit.framework.TestCase; + +import org.simpleframework.transport.trace.MockTrace; +import org.simpleframework.transport.trace.Trace; + +public class SocketBufferTest extends TestCase { + + + public void testBulkWrite() throws Exception { + ServerBuffer reader = new ServerBuffer(); + SocketAddress address = new InetSocketAddress("localhost", reader.getPort()); + SocketChannel channel = SocketChannel.open(); + channel.configureBlocking(false); // underlying socket must be non-blocking + channel.connect(address); + + while(!channel.finishConnect()) { // wait to finish connection + Thread.sleep(10); + }; + Trace trace = new MockTrace(); + SocketWrapper wrapper = new SocketWrapper(channel, trace); + SocketBuffer builder = new SocketBuffer(wrapper, 100, 4096); + + for(int i = 0; i < 10000; i++){ + ByteBuffer buf = ByteBuffer.wrap(("message-"+i+"\n").getBytes()); + + if(i > 18) { + System.err.println("FAIL......."+i); + } + if(!builder.write(buf)){ + while(!builder.flush()) { + System.err.println("FLUSHING!!!"); + Thread.sleep(1); + } + } + } + while(!builder.flush()) { + System.err.println("FLUSHING!!!"); + } + builder.close(); + reader.awaitClose(); + + String data = reader.getBuffer().toString(); + String[] list = data.split("\\n"); + + for(int i = 0; i < 10000; i++){ + String msg = list[i]; + if(!msg.equals("message-"+i)) { + System.err.println(list[i]); + } + assertEquals("At index " + i + " value="+list[i] +" expect message-"+i, list[i], "message-"+i); + } + } + + public void testSimpleWrite() throws Exception { + ServerBuffer reader = new ServerBuffer(); + SocketAddress address = new InetSocketAddress("localhost", reader.getPort()); + SocketChannel channel = SocketChannel.open(); + channel.configureBlocking(false); // underlying socket must be non-blocking + channel.connect(address); + + while(!channel.finishConnect()) { // wait to finish connection + Thread.sleep(10); + }; + Trace trace = new MockTrace(); + SocketWrapper wrapper = new SocketWrapper(channel, trace); + SocketBuffer builder = new SocketBuffer(wrapper, 100, 4096); + + builder.write(ByteBuffer.wrap("hello there ".getBytes())); + builder.write(ByteBuffer.wrap("this ".getBytes())); + builder.write(ByteBuffer.wrap("is ".getBytes())); + builder.write(ByteBuffer.wrap("a ".getBytes())); + builder.write(ByteBuffer.wrap("test".getBytes())); + builder.flush(); + builder.close(); + reader.awaitClose(); + + assertEquals(reader.getBuffer().toString(), "hello there this is a test"); + } +} |