Issue #2226 - SelectChannelEndPoint test cleanup

+ Renamed SelectChannelEndPointInterestsTest to
  SocketChannelEndPointInterestsTest
+ Merged EndPointTest abstract class into SocketChannelEndPointTest
  as it's only used by that testcase

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
This commit is contained in:
Joakim Erdfelt 2018-03-19 15:04:03 -05:00
parent 13224e4ee8
commit 7c5b49fb7f
3 changed files with 127 additions and 170 deletions

View File

@ -1,157 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2018 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// 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
// 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.
// ========================================================================
//
package org.eclipse.jetty.io;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer;
import org.eclipse.jetty.util.BufferUtil;
import org.junit.Test;
public abstract class EndPointTest<T extends EndPoint>
{
public static class EndPointPair<T>
{
public T client;
public T server;
}
protected abstract EndPointPair<T> newConnection() throws Exception;
@Test
public void testClientServerExchange() throws Exception
{
EndPointPair<T> c = newConnection();
ByteBuffer buffer = BufferUtil.allocate(4096);
// Client sends a request
c.client.flush(BufferUtil.toBuffer("request"));
// Server receives the request
int len = c.server.fill(buffer);
assertEquals(7,len);
assertEquals("request",BufferUtil.toString(buffer));
// Client and server are open
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
// Server sends response and closes output
c.server.flush(BufferUtil.toBuffer("response"));
c.server.shutdownOutput();
// client server are open, server is oshut
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Client reads response
BufferUtil.clear(buffer);
len = c.client.fill(buffer);
assertEquals(8,len);
assertEquals("response",BufferUtil.toString(buffer));
// Client and server are open, server is oshut
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Client reads -1
BufferUtil.clear(buffer);
len = c.client.fill(buffer);
assertEquals(-1,len);
// Client and server are open, server is oshut, client is ishut
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Client shutsdown output, which is a close because already ishut
c.client.shutdownOutput();
// Client is closed. Server is open and oshut
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Server reads close
BufferUtil.clear(buffer);
len = c.server.fill(buffer);
assertEquals(-1,len);
// Client and Server are closed
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertFalse(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
}
@Test
public void testClientClose() throws Exception
{
EndPointPair<T> c = newConnection();
ByteBuffer buffer = BufferUtil.allocate(4096);
c.client.flush(BufferUtil.toBuffer("request"));
int len = c.server.fill(buffer);
assertEquals(7,len);
assertEquals("request",BufferUtil.toString(buffer));
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
c.client.close();
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
len = c.server.fill(buffer);
assertEquals(-1,len);
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
c.server.shutdownOutput();
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertFalse(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
}
}

View File

@ -43,7 +43,7 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
public class SelectChannelEndPointInterestsTest
public class SocketChannelEndPointInterestsTest
{
private QueuedThreadPool threadPool;
private Scheduler scheduler;

View File

@ -18,14 +18,27 @@
package org.eclipse.jetty.io;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import org.eclipse.jetty.util.BufferUtil;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class SocketChannelEndPointTest extends EndPointTest<SocketChannelEndPoint>
public class SocketChannelEndPointTest
{
public static class EndPointPair
{
public SocketChannelEndPoint client;
public SocketChannelEndPoint server;
}
static ServerSocketChannel connector;
@BeforeClass
@ -42,25 +55,126 @@ public class SocketChannelEndPointTest extends EndPointTest<SocketChannelEndPoin
connector=null;
}
@Override
protected EndPointPair<SocketChannelEndPoint> newConnection() throws Exception
private EndPointPair newConnection() throws Exception
{
EndPointPair<SocketChannelEndPoint> c = new EndPointPair<>();
EndPointPair c = new EndPointPair();
c.client=new SocketChannelEndPoint(SocketChannel.open(connector.socket().getLocalSocketAddress()),null,null,null);
c.server=new SocketChannelEndPoint(connector.accept(),null,null,null);
return c;
}
@Override
public void testClientClose() throws Exception
{
super.testClientClose();
}
@Override
@Test
public void testClientServerExchange() throws Exception
{
super.testClientServerExchange();
EndPointPair c = newConnection();
ByteBuffer buffer = BufferUtil.allocate(4096);
// Client sends a request
c.client.flush(BufferUtil.toBuffer("request"));
// Server receives the request
int len = c.server.fill(buffer);
assertEquals(7,len);
assertEquals("request",BufferUtil.toString(buffer));
// Client and server are open
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
// Server sends response and closes output
c.server.flush(BufferUtil.toBuffer("response"));
c.server.shutdownOutput();
// client server are open, server is oshut
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Client reads response
BufferUtil.clear(buffer);
len = c.client.fill(buffer);
assertEquals(8,len);
assertEquals("response",BufferUtil.toString(buffer));
// Client and server are open, server is oshut
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Client reads -1
BufferUtil.clear(buffer);
len = c.client.fill(buffer);
assertEquals(-1,len);
// Client and server are open, server is oshut, client is ishut
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Client shutsdown output, which is a close because already ishut
c.client.shutdownOutput();
// Client is closed. Server is open and oshut
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
// Server reads close
BufferUtil.clear(buffer);
len = c.server.fill(buffer);
assertEquals(-1,len);
// Client and Server are closed
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertFalse(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
}
@Test
public void testClientClose() throws Exception
{
EndPointPair c = newConnection();
ByteBuffer buffer = BufferUtil.allocate(4096);
c.client.flush(BufferUtil.toBuffer("request"));
int len = c.server.fill(buffer);
assertEquals(7,len);
assertEquals("request",BufferUtil.toString(buffer));
assertTrue(c.client.isOpen());
assertFalse(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
c.client.close();
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
len = c.server.fill(buffer);
assertEquals(-1,len);
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertTrue(c.server.isOpen());
assertFalse(c.server.isOutputShutdown());
c.server.shutdownOutput();
assertFalse(c.client.isOpen());
assertTrue(c.client.isOutputShutdown());
assertFalse(c.server.isOpen());
assertTrue(c.server.isOutputShutdown());
}
}