You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2009/11/16 21:19:59 UTC

svn commit: r880943 - in /mina/sshd/trunk/sshd-core/src/test: java/org/apache/sshd/PortForwardingTest.java resources/log4j.properties

Author: gnodet
Date: Mon Nov 16 20:19:59 2009
New Revision: 880943

URL: http://svn.apache.org/viewvc?rev=880943&view=rev
Log:
Allow the use of a fake local http server for the load test of tcpip forwarding

Modified:
    mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java
    mina/sshd/trunk/sshd-core/src/test/resources/log4j.properties

Modified: mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java?rev=880943&r1=880942&r2=880943&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java (original)
+++ mina/sshd/trunk/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java Mon Nov 16 20:19:59 2009
@@ -186,35 +186,73 @@
     @Test
     @Ignore
     public void testForwardingOnLoad() throws Exception {
+//        final String path = "/history/recent/troubles/";
+//        final String host = "www.bbc.co.uk";
+//        final String path = "";
+//        final String host = "www.bahn.de";
+        final String path = "";
+        final String host = "localhost";
+        final int nbThread = 2;
+        final int nbDownloads = 2;
+        final int nbLoops = 2;
+
+        final int port = getFreePort(); 
+        StringBuilder resp = new StringBuilder();
+        resp.append("<html><body>\n");
+        for (int i = 0; i < 1000; i++) {
+            resp.append("0123456789\n");
+        }
+        resp.append("</body></html>\n");
+        final StringBuilder sb = new StringBuilder();
+        sb.append("HTTP/1.1 200 OK").append('\n');
+        sb.append("Content-Type: text/HTML").append('\n');
+        sb.append("Content-Length: ").append(resp.length()).append('\n');
+        sb.append('\n');
+        sb.append(resp);
+        NioSocketAcceptor acceptor = new NioSocketAcceptor();
+        acceptor.setHandler(new IoHandlerAdapter() {
+            @Override
+            public void messageReceived(IoSession session, Object message) throws Exception {
+                session.write(IoBuffer.wrap(sb.toString().getBytes()));
+            }
+        });
+        acceptor.setReuseAddress(true);
+        acceptor.bind(new InetSocketAddress(port));
+
+
         Session session = createSession();
 
         final int forwardedPort1 = getFreePort();
         final int forwardedPort2 = getFreePort();
-        session.setPortForwardingL(forwardedPort1, "www.microsoft.com", 80);
+        System.err.println("URL: http://localhost:" + forwardedPort2);
+
+        session.setPortForwardingL(forwardedPort1, host, port);
         session.setPortForwardingR(forwardedPort2, "localhost", forwardedPort1);
 
 
-        final int nbThread = 20;
-        final int nbDownloads = 20;
-        final CountDownLatch latch = new CountDownLatch(nbThread * nbDownloads);
+        final CountDownLatch latch = new CountDownLatch(nbThread * nbDownloads * nbLoops);
 
         final Thread[] threads = new Thread[nbThread];
         final List<Throwable> errors = new CopyOnWriteArrayList<Throwable>();
-        final HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
-        client.getHttpConnectionManager().getParams().setDefaultMaxConnectionsPerHost(100);
-        client.getHttpConnectionManager().getParams().setMaxTotalConnections(1000);
         for (int i = 0; i < threads.length; i++) {
             threads[i] = new Thread() {
                 public void run() {
-                    for (int i = 0; i < nbDownloads; i++) {
-                        try {
-                            checkHtmlPage(client, new URL("http://localhost:" + forwardedPort2));
-                        } catch (Throwable e) {
-                            errors.add(e);
-                        } finally {
-                            latch.countDown();
-                            System.err.println("Remaining: " + latch.getCount());
+                    for (int j = 0; j < nbLoops; j++)  {
+                        final MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
+                        final HttpClient client = new HttpClient(mgr);
+                        client.getHttpConnectionManager().getParams().setDefaultMaxConnectionsPerHost(100);
+                        client.getHttpConnectionManager().getParams().setMaxTotalConnections(1000);
+                        for (int i = 0; i < nbDownloads; i++) {
+                            try {
+                                checkHtmlPage(client, new URL("http://localhost:" + forwardedPort2 + path));
+                            } catch (Throwable e) {
+                                errors.add(e);
+                            } finally {
+                                latch.countDown();
+                                System.err.println("Remaining: " + latch.getCount());
+                            }
                         }
+                        mgr.shutdown();
                     }
                 }
             };

Modified: mina/sshd/trunk/sshd-core/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/test/resources/log4j.properties?rev=880943&r1=880942&r2=880943&view=diff
==============================================================================
--- mina/sshd/trunk/sshd-core/src/test/resources/log4j.properties (original)
+++ mina/sshd/trunk/sshd-core/src/test/resources/log4j.properties Mon Nov 16 20:19:59 2009
@@ -21,7 +21,7 @@
 #
 # The logging properties used during tests..
 #
-log4j.rootLogger=TRACE, stdout
+log4j.rootLogger=INFO, stdout
 #log4j.logger.org.apache.mina=TRACE
 #log4j.logger.org.apache.sshd.common.channel.Window=DEBUG