Repository: mina
Updated Branches:
  refs/heads/2.0 109381c94 -> 8238a93fa


Slightly changing the test :
- the messageReceive does not anymore close the session (it's already
closed on the client)
- looping 10 000 times
- removing the verbose logs, adding some logs  and a counter.

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/8238a93f
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/8238a93f
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/8238a93f

Branch: refs/heads/2.0
Commit: 8238a93fab3cb09366f9003d2de591e39c365810
Parents: 109381c
Author: Emmanuel Lécharny <[email protected]>
Authored: Wed Aug 24 16:39:16 2016 +0200
Committer: Emmanuel Lécharny <[email protected]>
Committed: Wed Aug 24 16:39:16 2016 +0200

----------------------------------------------------------------------
 .../transport/socket/nio/DIRMINA1041Test.java   | 63 ++++++++++++++++----
 1 file changed, 51 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/8238a93f/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA1041Test.java
----------------------------------------------------------------------
diff --git 
a/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA1041Test.java
 
b/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA1041Test.java
index 4f70106..08cbf30 100644
--- 
a/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA1041Test.java
+++ 
b/mina-core/src/test/java/org/apache/mina/transport/socket/nio/DIRMINA1041Test.java
@@ -1,5 +1,6 @@
 package org.apache.mina.transport.socket.nio;
 
+import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.core.future.CloseFuture;
 import org.apache.mina.core.future.ConnectFuture;
 import org.apache.mina.core.future.WriteFuture;
@@ -18,40 +19,71 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.net.InetSocketAddress;
+import java.net.SocketAddress;
 
 public class DIRMINA1041Test {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(DIRMINA1041Test.class);
     private static final String HOST = "localhost";
     private static final int PORT = AvailablePortFinder.getNextAvailable(); 
-    private static final long TIMEOUT = 3000L;
+    private static final long TIMEOUT = 10000L;
+    private static int counter = 0;
     private SocketAcceptor acceptor;
     private SocketConnector connector;
     
     @Before
     public void setUp() throws Exception {
         acceptor = new NioSocketAcceptor();
+        acceptor.setReuseAddress(true);
         acceptor.setHandler(new SomeAcceptHandler());
         acceptor.bind(new InetSocketAddress(HOST, PORT));
 
         connector = new NioSocketConnector();
+        connector.getSessionConfig().setReuseAddress(true);
         connector.getFilterChain().addLast("codec", new 
ProtocolCodecFilter(new TextLineCodecFactory()));
         connector.setHandler(new SomeConnectHandler());
     }
 
     @Test
     public void testWrite() throws InterruptedException {
-        for (int i = 0; i < 1000; i++) {
-            IoSession session = getSession();
-
-            WriteFuture future = session.write("Test");
-            LOG.info("Waiting for WriteFuture to complete. Session: " + 
session);
-            if (!future.await(TIMEOUT)) {
-                Assert.fail("WriteFuture did not complete. Session: " + 
session);
+        SocketAddress address = new InetSocketAddress(HOST, PORT);
+        
+        try {
+            for (int i = 0; i < 10000; i++) {
+                ConnectFuture future = connector.connect( address);
+    
+                if (!future.awaitUninterruptibly(TIMEOUT)) {
+                    
+                    Assert.fail("ConnectFuture did not complete.");
+                }
+                
+                IoSession session = future.getSession();
+                
+                if ( i % 1000 == 0 ) {
+                    System.out.println("Loop " + i +", counter = " + counter);
+                }
+    
+                WriteFuture writeFuture = session.write("Test" + i);
+                
+                //LOG.info("Waiting for WriteFuture to complete. Session: " + 
session);
+                if (!writeFuture.await(TIMEOUT)) {
+                    LOG.info("WriteFuture did not complete. Session: " + 
session);
+                    Assert.fail("WriteFuture did not complete. Session: " + 
session);
+                }
+                
+                CloseFuture closeFuture = session.closeOnFlush();
+                
+                if (!closeFuture.awaitUninterruptibly(TIMEOUT)) {
+                    Assert.fail("CloseFuture did not complete.");
+                }
+                
+                //Thread.sleep( 2 );
             }
-
-            closeSession(session);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
+        
+        System.out.println("Done " + 100000  + " loops, counter = " + counter);
     }
 
     @After
@@ -63,6 +95,7 @@ public class DIRMINA1041Test {
     private IoSession getSession() {
         ConnectFuture future = connector.connect(new InetSocketAddress(HOST, 
PORT));
         if (!future.awaitUninterruptibly(TIMEOUT)) {
+            
             Assert.fail("ConnectFuture did not complete.");
         }
         return future.getSession();
@@ -78,14 +111,20 @@ public class DIRMINA1041Test {
     private class SomeConnectHandler extends IoHandlerAdapter {
         @Override
         public void sessionClosed(IoSession session) throws Exception {
-            LOG.info("Connector - Session closed : " + session);
+            //LOG.info("Connector - Session closed : " + session);
+        }
+        
+        public void messageSent(IoSession session, Object message) throws 
Exception {
+            //LOG.info("message sent : " + message);
         }
     }
 
     private class SomeAcceptHandler extends IoHandlerAdapter {
         @Override
         public void messageReceived(IoSession session, Object message) throws 
Exception {
-            session.closeNow();
+            //LOG.info("Message received : " + ((IoBuffer)message).toString() 
);
+            counter++;
+            //session.closeNow();
         }
     }
 }

Reply via email to