Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-servlets/src/test/java/org/eclipse/jetty/servlets/QoSFilterTest.java')
-rw-r--r--jetty-servlets/src/test/java/org/eclipse/jetty/servlets/QoSFilterTest.java81
1 files changed, 38 insertions, 43 deletions
diff --git a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/QoSFilterTest.java b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/QoSFilterTest.java
index 391c76e63a..acf14cfb58 100644
--- a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/QoSFilterTest.java
+++ b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/QoSFilterTest.java
@@ -4,21 +4,19 @@
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
-// The Eclipse Public License is available at
+// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
-// You may elect to redistribute this code under either of these licenses.
+// You may elect to redistribute this code under either of these licenses.
// ========================================================================
package org.eclipse.jetty.servlets;
import java.io.IOException;
-import java.io.InputStream;
import java.net.URL;
import java.util.EnumSet;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-
import javax.servlet.DispatcherType;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
@@ -27,16 +25,20 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import junit.framework.TestCase;
-
import org.eclipse.jetty.server.LocalConnector;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.FilterMapping;
import org.eclipse.jetty.testing.HttpTester;
import org.eclipse.jetty.testing.ServletTester;
import org.eclipse.jetty.util.log.Log;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
-public class QoSFilterTest extends TestCase
+public class QoSFilterTest
{
private ServletTester _tester;
private LocalConnector[] _connectors;
@@ -44,42 +46,46 @@ public class QoSFilterTest extends TestCase
private final int NUM_CONNECTIONS = 8;
private final int NUM_LOOPS = 6;
private final int MAX_QOS = 4;
-
- protected void setUp() throws Exception
+
+ @Before
+ public void setUp() throws Exception
{
_tester = new ServletTester();
_tester.setContextPath("/context");
_tester.addServlet(TestServlet.class, "/test");
TestServlet.__maxSleepers=0;
TestServlet.__sleepers=0;
-
+
_connectors = new LocalConnector[NUM_CONNECTIONS];
for(int i = 0; i < _connectors.length; ++i)
_connectors[i] = _tester.createLocalConnector();
-
+
_doneRequests = new CountDownLatch(NUM_CONNECTIONS*NUM_LOOPS);
-
+
_tester.start();
}
-
- protected void tearDown() throws Exception
+
+ @After
+ public void tearDown() throws Exception
{
_tester.stop();
}
+ @Test
public void testNoFilter() throws Exception
- {
+ {
for(int i = 0; i < NUM_CONNECTIONS; ++i )
{
new Thread(new Worker(i)).start();
}
-
+
_doneRequests.await(10,TimeUnit.SECONDS);
-
+
assertFalse("TEST WAS NOT PARALLEL ENOUGH!",TestServlet.__maxSleepers<=MAX_QOS);
assertTrue(TestServlet.__maxSleepers<=NUM_CONNECTIONS);
}
+ @Test
public void testBlockingQosFilter() throws Exception
{
FilterHolder holder = new FilterHolder(QoSFilter2.class);
@@ -97,23 +103,23 @@ public class QoSFilterTest extends TestCase
assertTrue(TestServlet.__maxSleepers==MAX_QOS);
}
+ @Test
public void testQosFilter() throws Exception
- {
+ {
FilterHolder holder = new FilterHolder(QoSFilter2.class);
holder.setAsyncSupported(true);
holder.setInitParameter(QoSFilter.MAX_REQUESTS_INIT_PARAM, ""+MAX_QOS);
_tester.getContext().getServletHandler().addFilterWithMapping(holder,"/*",EnumSet.of(DispatcherType.REQUEST,DispatcherType.ASYNC));
-
for(int i = 0; i < NUM_CONNECTIONS; ++i )
{
new Thread(new Worker2(i)).start();
}
-
+
_doneRequests.await(20,TimeUnit.SECONDS);
assertFalse("TEST WAS NOT PARALLEL ENOUGH!",TestServlet.__maxSleepers<MAX_QOS);
assertTrue(TestServlet.__maxSleepers<=MAX_QOS);
}
-
+
class Worker implements Runnable {
private int _num;
public Worker(int num)
@@ -126,7 +132,6 @@ public class QoSFilterTest extends TestCase
for (int i=0;i<NUM_LOOPS;i++)
{
HttpTester request = new HttpTester();
- HttpTester response = new HttpTester();
request.setMethod("GET");
request.setHeader("host", "tester");
@@ -135,22 +140,14 @@ public class QoSFilterTest extends TestCase
try
{
String responseString = _tester.getResponses(request.generate(), _connectors[_num]);
- int index=-1;
- if((index = responseString.indexOf("HTTP", index+1))!=-1)
+ if(responseString.indexOf("HTTP")!=-1)
{
- responseString = response.parse(responseString);
_doneRequests.countDown();
}
}
- catch (IOException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- catch (Exception e)
+ catch (Exception x)
{
- // TODO Auto-generated catch block
- e.printStackTrace();
+ assertTrue(false);
}
}
}
@@ -173,25 +170,24 @@ public class QoSFilterTest extends TestCase
{
url=new URL(addr+"/context/test?priority="+(_num%QoSFilter.__DEFAULT_MAX_PRIORITY)+"&n="+_num+"&l="+i);
// System.err.println(_num+"-"+i+" Try "+url);
- InputStream in = (InputStream)url.getContent();
+ url.getContent();
_doneRequests.countDown();
// System.err.println(_num+"-"+i+" Got "+IO.toString(in)+" "+_doneRequests.getCount());
}
}
catch(Exception e)
{
- Log.warn(url.toString());
+ Log.warn(String.valueOf(url));
Log.debug(e);
}
}
}
-
+
public static class TestServlet extends HttpServlet implements Servlet
{
- private int _count;
private static int __sleepers;
private static int __maxSleepers;
-
+
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
@@ -214,25 +210,24 @@ public class QoSFilterTest extends TestCase
}
response.setContentType("text/plain");
- response.getWriter().println("DONE!");
+ response.getWriter().println("DONE!");
}
catch (InterruptedException e)
{
e.printStackTrace();
response.sendError(500);
- }
+ }
}
}
-
+
public static class QoSFilter2 extends QoSFilter
{
public int getPriority(ServletRequest request)
{
- String p = ((HttpServletRequest)request).getParameter("priority");
+ String p = request.getParameter("priority");
if (p!=null)
return Integer.parseInt(p);
return 0;
}
}
-
}

Back to the top