|
1 | 1 | package software.amazon.awssdk.crt.test; |
2 | 2 |
|
3 | | -import org.junit.Ignore; |
4 | 3 | import org.junit.Test; |
5 | 4 | import software.amazon.awssdk.crt.CrtRuntimeException; |
6 | 5 | import software.amazon.awssdk.crt.eventstream.*; |
|
25 | 24 |
|
26 | 25 | import static org.junit.Assert.*; |
27 | 26 |
|
28 | | -@Ignore |
29 | 27 | public class ServerListenerTest extends CrtTestFixture { |
30 | 28 | public ServerListenerTest() {} |
31 | 29 |
|
@@ -107,26 +105,31 @@ public void onConnectionShutdown(ServerConnection serverConnection, int errorCod |
107 | 105 | assertNotNull(listener1); |
108 | 106 | boolean exceptionThrown = false; |
109 | 107 | 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 | + }); |
118 | 116 | } catch (CrtRuntimeException ex) { |
119 | | - // TODO This doesn't happen for nw sockets. |
120 | 117 | exceptionThrown = true; |
121 | 118 | } |
122 | | - assertTrue(exceptionThrown); |
123 | 119 |
|
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 | + } |
130 | 133 | } |
131 | 134 |
|
132 | 135 | @Test |
@@ -179,18 +182,18 @@ public void onConnectionShutdown(ServerConnection serverConnection, int errorCod |
179 | 182 | SocketAddress address = new InetSocketAddress("127.0.0.1", 8040); |
180 | 183 | lock.lock(); |
181 | 184 | clientSocket.connect(address, 3000); |
182 | | - testSynchronizationCVar.await(1, TimeUnit.SECONDS); |
| 185 | + testSynchronizationCVar.await(3, TimeUnit.SECONDS); |
183 | 186 | lock.unlock(); |
184 | 187 | assertNotNull(serverConnections[0]); |
185 | 188 | clientSocket.close(); |
186 | 189 |
|
187 | | - serverConnections[0].getClosedFuture().get(1, TimeUnit.SECONDS); |
| 190 | + serverConnections[0].getClosedFuture().get(3, TimeUnit.SECONDS); |
188 | 191 |
|
189 | 192 | assertTrue(connectionReceived[0]); |
190 | 193 | assertTrue(connectionShutdown[0]); |
191 | 194 |
|
192 | 195 | listener.close(); |
193 | | - listener.getShutdownCompleteFuture().get(1, TimeUnit.SECONDS); |
| 196 | + listener.getShutdownCompleteFuture().get(3, TimeUnit.SECONDS); |
194 | 197 | bootstrap.close(); |
195 | 198 | elGroup.close(); |
196 | 199 | elGroup.getShutdownCompleteFuture().get(5, TimeUnit.SECONDS); |
@@ -401,63 +404,68 @@ public void onConnectionShutdown(ServerConnection serverConnection, int errorCod |
401 | 404 | } |
402 | 405 | }); |
403 | 406 |
|
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 | + } |
462 | 470 | } |
463 | 471 | } |
0 commit comments