Skip to content

Commit d235b97

Browse files
committed
Fix some ServerListenerTest tests
1 parent c0310f4 commit d235b97

2 files changed

Lines changed: 88 additions & 80 deletions

File tree

src/test/java/software/amazon/awssdk/crt/test/ServerListenerTest.java

Lines changed: 87 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package software.amazon.awssdk.crt.test;
22

3-
import org.junit.Ignore;
43
import org.junit.Test;
54
import software.amazon.awssdk.crt.CrtRuntimeException;
65
import software.amazon.awssdk.crt.eventstream.*;
@@ -25,7 +24,6 @@
2524

2625
import static org.junit.Assert.*;
2726

28-
@Ignore
2927
public class ServerListenerTest extends CrtTestFixture {
3028
public ServerListenerTest() {}
3129

@@ -107,26 +105,31 @@ public void onConnectionShutdown(ServerConnection serverConnection, int errorCod
107105
assertNotNull(listener1);
108106
boolean exceptionThrown = false;
109107
try {
110-
ServerListener listener2 = new ServerListener("127.0.0.1", (short)8039, socketOptions, null, bootstrap, new ServerListenerHandler() {
111-
public ServerConnectionHandler onNewConnection(ServerConnection serverConnection, int errorCode) {
112-
return null;
113-
}
114-
115-
public void onConnectionShutdown(ServerConnection serverConnection, int errorCode) {
116-
}
117-
});
108+
ServerListener listener2 = new ServerListener("127.0.0.1", (short)8039, socketOptions, null, bootstrap, new ServerListenerHandler() {
109+
public ServerConnectionHandler onNewConnection(ServerConnection serverConnection, int errorCode) {
110+
return null;
111+
}
112+
113+
public void onConnectionShutdown(ServerConnection serverConnection, int errorCode) {
114+
}
115+
});
118116
} catch (CrtRuntimeException ex) {
119-
// TODO This doesn't happen for nw sockets.
120117
exceptionThrown = true;
121118
}
122-
assertTrue(exceptionThrown);
123119

124-
listener1.close();
125-
listener1.getShutdownCompleteFuture().get(1, TimeUnit.SECONDS);
126-
bootstrap.close();
127-
elGroup.close();
128-
elGroup.getShutdownCompleteFuture().get(5, TimeUnit.SECONDS);
129-
socketOptions.close();
120+
try {
121+
assertTrue(exceptionThrown);
122+
123+
listener1.close();
124+
listener1.getShutdownCompleteFuture().get(1, TimeUnit.SECONDS);
125+
bootstrap.close();
126+
elGroup.close();
127+
elGroup.getShutdownCompleteFuture().get(5, TimeUnit.SECONDS);
128+
socketOptions.close();
129+
} catch (Exception ex) {
130+
System.err.printf("Unexpected exception: %s", ex);
131+
throw ex;
132+
}
130133
}
131134

132135
@Test
@@ -179,18 +182,18 @@ public void onConnectionShutdown(ServerConnection serverConnection, int errorCod
179182
SocketAddress address = new InetSocketAddress("127.0.0.1", 8040);
180183
lock.lock();
181184
clientSocket.connect(address, 3000);
182-
testSynchronizationCVar.await(1, TimeUnit.SECONDS);
185+
testSynchronizationCVar.await(3, TimeUnit.SECONDS);
183186
lock.unlock();
184187
assertNotNull(serverConnections[0]);
185188
clientSocket.close();
186189

187-
serverConnections[0].getClosedFuture().get(1, TimeUnit.SECONDS);
190+
serverConnections[0].getClosedFuture().get(3, TimeUnit.SECONDS);
188191

189192
assertTrue(connectionReceived[0]);
190193
assertTrue(connectionShutdown[0]);
191194

192195
listener.close();
193-
listener.getShutdownCompleteFuture().get(1, TimeUnit.SECONDS);
196+
listener.getShutdownCompleteFuture().get(3, TimeUnit.SECONDS);
194197
bootstrap.close();
195198
elGroup.close();
196199
elGroup.getShutdownCompleteFuture().get(5, TimeUnit.SECONDS);
@@ -401,63 +404,68 @@ public void onConnectionShutdown(ServerConnection serverConnection, int errorCod
401404
}
402405
});
403406

404-
Socket clientSocket = new Socket();
405-
SocketAddress address = new InetSocketAddress("127.0.0.1", 8042);
406-
lock.lock();
407-
clientSocket.connect(address, 3000);
408-
testSynchronizationCVar.await(1, TimeUnit.SECONDS);
409-
410-
assertNotNull(serverConnections[0]);
411-
assertTrue(connectionReceived[0]);
412-
413-
Header messageType = Header.createHeader(":message-type", (int)MessageType.Connect.getEnumValue());
414-
Header messageFlags = Header.createHeader(":message-flags", 0);
415-
Header streamId = Header.createHeader(":stream-id", 0);
416-
417-
List<Header> messageHeaders = new ArrayList<>(3);
418-
messageHeaders.add(messageType);
419-
messageHeaders.add(messageFlags);
420-
messageHeaders.add(streamId);
421-
422-
Message connectMessage = new Message(messageHeaders, null);
423-
ByteBuffer connectMessageBuf = connectMessage.getMessageBuffer();
424-
byte[] toSend = new byte[connectMessageBuf.remaining()];
425-
connectMessageBuf.get(toSend);
426-
clientSocket.getOutputStream().write(toSend);
427-
connectMessage.close();
428-
429-
testSynchronizationCVar.await(1, TimeUnit.SECONDS);
430-
431-
String operationName = "testOperation";
432-
messageHeaders = new ArrayList<>(3);
433-
messageHeaders.add(Header.createHeader(":message-type", (int)MessageType.ApplicationMessage.getEnumValue()));
434-
messageHeaders.add(Header.createHeader(":message-flags", 0));
435-
messageHeaders.add(Header.createHeader(":stream-id", 1));
436-
messageHeaders.add(Header.createHeader("operation", operationName));
437-
String payload = "{\"message\": \"message payload\"}";
438-
Message continuationMessage = new Message(messageHeaders, payload.getBytes(StandardCharsets.UTF_8));
439-
ByteBuffer continuationMessageBuf = continuationMessage.getMessageBuffer();
440-
toSend = new byte[continuationMessageBuf.remaining()];
441-
continuationMessageBuf.get(toSend);
442-
clientSocket.getOutputStream().write(toSend);
443-
continuationMessage.close();
444-
445-
testSynchronizationCVar.await(1, TimeUnit.SECONDS);
446-
lock.unlock();
447-
448-
clientSocket.close();
449-
serverConnections[0].getClosedFuture().get(1, TimeUnit.SECONDS);
450-
451-
assertTrue(connectionShutdown[0]);
452-
assertNotNull(receivedOperationName[0]);
453-
assertEquals(operationName, receivedOperationName[0]);
454-
assertEquals(payload, receivedContinuationPayload[0]);
455-
listener.close();
456-
listener.getShutdownCompleteFuture().get(1, TimeUnit.SECONDS);
457-
bootstrap.close();
458-
elGroup.close();
459-
elGroup.getShutdownCompleteFuture().get(5, TimeUnit.SECONDS);
460-
461-
socketOptions.close();
407+
try {
408+
Socket clientSocket = new Socket();
409+
SocketAddress address = new InetSocketAddress("127.0.0.1", 8042);
410+
lock.lock();
411+
clientSocket.connect(address, 3000);
412+
testSynchronizationCVar.await(5, TimeUnit.SECONDS);
413+
414+
assertNotNull(serverConnections[0]);
415+
assertTrue(connectionReceived[0]);
416+
417+
Header messageType = Header.createHeader(":message-type", (int) MessageType.Connect.getEnumValue());
418+
Header messageFlags = Header.createHeader(":message-flags", 0);
419+
Header streamId = Header.createHeader(":stream-id", 0);
420+
421+
List<Header> messageHeaders = new ArrayList<>(3);
422+
messageHeaders.add(messageType);
423+
messageHeaders.add(messageFlags);
424+
messageHeaders.add(streamId);
425+
426+
Message connectMessage = new Message(messageHeaders, null);
427+
ByteBuffer connectMessageBuf = connectMessage.getMessageBuffer();
428+
byte[] toSend = new byte[connectMessageBuf.remaining()];
429+
connectMessageBuf.get(toSend);
430+
clientSocket.getOutputStream().write(toSend);
431+
connectMessage.close();
432+
433+
testSynchronizationCVar.await(5, TimeUnit.SECONDS);
434+
435+
String operationName = "testOperation";
436+
messageHeaders = new ArrayList<>(3);
437+
messageHeaders.add(Header.createHeader(":message-type", (int) MessageType.ApplicationMessage.getEnumValue()));
438+
messageHeaders.add(Header.createHeader(":message-flags", 0));
439+
messageHeaders.add(Header.createHeader(":stream-id", 1));
440+
messageHeaders.add(Header.createHeader("operation", operationName));
441+
String payload = "{\"message\": \"message payload\"}";
442+
Message continuationMessage = new Message(messageHeaders, payload.getBytes(StandardCharsets.UTF_8));
443+
ByteBuffer continuationMessageBuf = continuationMessage.getMessageBuffer();
444+
toSend = new byte[continuationMessageBuf.remaining()];
445+
continuationMessageBuf.get(toSend);
446+
clientSocket.getOutputStream().write(toSend);
447+
continuationMessage.close();
448+
449+
testSynchronizationCVar.await(5, TimeUnit.SECONDS);
450+
lock.unlock();
451+
452+
clientSocket.close();
453+
serverConnections[0].getClosedFuture().get(5, TimeUnit.SECONDS);
454+
455+
assertTrue(connectionShutdown[0]);
456+
assertNotNull(receivedOperationName[0]);
457+
assertEquals(operationName, receivedOperationName[0]);
458+
assertEquals(payload, receivedContinuationPayload[0]);
459+
listener.close();
460+
listener.getShutdownCompleteFuture().get(5, TimeUnit.SECONDS);
461+
bootstrap.close();
462+
elGroup.close();
463+
elGroup.getShutdownCompleteFuture().get(5, TimeUnit.SECONDS);
464+
465+
socketOptions.close();
466+
} catch (Exception ex) {
467+
System.err.printf("Unexpected exception: %s", ex);
468+
throw ex;
469+
}
462470
}
463471
}

0 commit comments

Comments
 (0)