From 90ec5bfcd0acd9314b0c02df25802fe9e26de4e3 Mon Sep 17 00:00:00 2001 From: Todd Lipcon Date: Fri, 27 Aug 2010 06:16:37 +0000 Subject: [PATCH] THRIFT-873. java: Java tests fail due to Too many open files - Drops TestTAsyncClientManager to use only 200 clients instead of 500 - Changes each unit test to run in its own JVM instead of sharing them. - Allows the port used for binding the test servers to be configured from the command line git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@990032 13f79535-47bb-0310-9956-ffa450edef68 --- lib/java/build.xml | 4 +++- .../apache/thrift/async/TestTAsyncClientManager.java | 11 +++++++---- .../test/org/apache/thrift/server/ServerTestBase.java | 5 +++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/java/build.xml b/lib/java/build.xml index aca4bea2..a378215a 100644 --- a/lib/java/build.xml +++ b/lib/java/build.xml @@ -179,16 +179,18 @@ + + diff --git a/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java b/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java index 55b054a8..2e26aad3 100644 --- a/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java +++ b/lib/java/test/org/apache/thrift/async/TestTAsyncClientManager.java @@ -30,6 +30,7 @@ import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.server.TNonblockingServer; import org.apache.thrift.transport.TNonblockingServerSocket; import org.apache.thrift.transport.TNonblockingSocket; +import org.apache.thrift.server.ServerTestBase; import thrift.test.CompactProtoTestStruct; import thrift.test.Srv; @@ -95,7 +96,7 @@ public class TestTAsyncClientManager extends TestCase { public JankyRunnable(TAsyncClientManager acm, int numCalls) throws Exception { this.acm_ = acm; this.numCalls_ = numCalls; - this.clientSocket_ = new TNonblockingSocket("localhost", 12345); + this.clientSocket_ = new TNonblockingSocket(ServerTestBase.HOST, ServerTestBase.PORT); this.client_ = new Srv.AsyncClient(new TBinaryProtocol.Factory(), acm_, clientSocket_); } @@ -177,7 +178,8 @@ public class TestTAsyncClientManager extends TestCase { public void testIt() throws Exception { // put up a server - final TNonblockingServer s = new TNonblockingServer(new Srv.Processor(new SrvHandler()), new TNonblockingServerSocket(12345)); + final TNonblockingServer s = new TNonblockingServer(new Srv.Processor(new SrvHandler()), + new TNonblockingServerSocket(ServerTestBase.PORT)); new Thread(new Runnable() { @Override public void run() { @@ -190,7 +192,8 @@ public class TestTAsyncClientManager extends TestCase { TAsyncClientManager acm = new TAsyncClientManager(); // connect an async client - TNonblockingSocket clientSock = new TNonblockingSocket("localhost", 12345); + TNonblockingSocket clientSock = new TNonblockingSocket( + ServerTestBase.HOST, ServerTestBase.PORT); Srv.AsyncClient client = new Srv.AsyncClient(new TBinaryProtocol.Factory(), acm, clientSock); final Object o = new Object(); @@ -268,7 +271,7 @@ public class TestTAsyncClientManager extends TestCase { assertTrue(voidAfterOnewayReturned.get()); // make multiple calls with deserialization in the selector thread (repro Eric's issue) - int numThreads = 500; + int numThreads = 200; int numCallsPerThread = 100; List runnables = new ArrayList(); List threads = new ArrayList(); diff --git a/lib/java/test/org/apache/thrift/server/ServerTestBase.java b/lib/java/test/org/apache/thrift/server/ServerTestBase.java index ae567c27..88430e6c 100644 --- a/lib/java/test/org/apache/thrift/server/ServerTestBase.java +++ b/lib/java/test/org/apache/thrift/server/ServerTestBase.java @@ -275,8 +275,9 @@ public abstract class ServerTestBase extends TestCase { new TBinaryProtocol.Factory(), new TCompactProtocol.Factory()); - protected static final String HOST = "localhost"; - protected static final int PORT = 9090; + public static final String HOST = "localhost"; + public static final int PORT = Integer.valueOf( + System.getProperty("test.port", "9090")); protected static final int SOCKET_TIMEOUT = 1000; private static final Xtruct XSTRUCT = new Xtruct("Zero", (byte) 1, -3, -5); private static final Xtruct2 XSTRUCT2 = new Xtruct2((byte)1, XSTRUCT, 5); -- 2.17.1