This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git
The following commit(s) were added to refs/heads/main by this push: new f4176c46 PROTON-2713 Ensure connection drops before checking post condition f4176c46 is described below commit f4176c46055fab950eb2e41a8fb6b1f35b8f007a Author: Timothy Bish <tabish...@gmail.com> AuthorDate: Wed Apr 19 11:10:59 2023 -0400 PROTON-2713 Ensure connection drops before checking post condition Need to ensure the peer has dropped the connection before checking the failure case. --- .../protonj2/client/impl/StreamSenderTest.java | 33 ++++++++++++++++------ 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/StreamSenderTest.java b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/StreamSenderTest.java index 4577b694..537d6da1 100644 --- a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/StreamSenderTest.java +++ b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/StreamSenderTest.java @@ -2471,7 +2471,7 @@ public class StreamSenderTest extends ImperativeClientTestCase { } @Test - void testStreamMessageFlushFailsAfterConnectionDropped() throws Exception { + public void testStreamMessageFlushFailsAfterConnectionDropped() throws Exception { try (ProtonTestServer peer = new ProtonTestServer()) { peer.expectSASLAnonymousConnect(); peer.expectOpen().respond(); @@ -2480,12 +2480,15 @@ public class StreamSenderTest extends ImperativeClientTestCase { peer.remoteFlow().withLinkCredit(1).queue(); peer.start(); - URI remoteURI = peer.getServerURI(); + final URI remoteURI = peer.getServerURI(); + final CountDownLatch disconnected = new CountDownLatch(1); LOG.info("Test started, peer listening on: {}", remoteURI); Client container = Client.create(); - Connection connection = container.connect(remoteURI.getHost(), remoteURI.getPort()); + ConnectionOptions connectOptions = new ConnectionOptions(); + connectOptions.disconnectedHandler((c, e) -> disconnected.countDown()); + Connection connection = container.connect(remoteURI.getHost(), remoteURI.getPort(), connectOptions); StreamSender sender = connection.openStreamSender("test-queue"); StreamSenderMessage message = sender.beginMessage(); @@ -2515,6 +2518,8 @@ public class StreamSenderTest extends ImperativeClientTestCase { // Next write should fail as connection should have dropped. stream.write(new byte[] { 8, 9, 10, 11 }); + assertTrue(disconnected.await(5, TimeUnit.SECONDS)); + try { stream.flush(); fail("Should not be able to flush after connection drop"); @@ -2529,7 +2534,7 @@ public class StreamSenderTest extends ImperativeClientTestCase { } @Test - void testStreamMessageCloseThatFlushesFailsAfterConnectionDropped() throws Exception { + public void testStreamMessageCloseThatFlushesFailsAfterConnectionDropped() throws Exception { try (ProtonTestServer peer = new ProtonTestServer()) { peer.expectSASLAnonymousConnect(); peer.expectOpen().respond(); @@ -2538,12 +2543,15 @@ public class StreamSenderTest extends ImperativeClientTestCase { peer.remoteFlow().withLinkCredit(1).queue(); peer.start(); - URI remoteURI = peer.getServerURI(); + final URI remoteURI = peer.getServerURI(); + final CountDownLatch disconnected = new CountDownLatch(1); LOG.info("Test started, peer listening on: {}", remoteURI); Client container = Client.create(); - Connection connection = container.connect(remoteURI.getHost(), remoteURI.getPort()); + ConnectionOptions connectOptions = new ConnectionOptions(); + connectOptions.disconnectedHandler((c, e) -> disconnected.countDown()); + Connection connection = container.connect(remoteURI.getHost(), remoteURI.getPort(), connectOptions); StreamSender sender = connection.openStreamSender("test-queue"); StreamSenderMessage message = sender.beginMessage(); @@ -2573,6 +2581,8 @@ public class StreamSenderTest extends ImperativeClientTestCase { // Next write should fail as connection should have dropped. stream.write(new byte[] { 8, 9, 10, 11 }); + assertTrue(disconnected.await(5, TimeUnit.SECONDS)); + try { stream.close(); fail("Should not be able to close after connection drop"); @@ -2587,7 +2597,7 @@ public class StreamSenderTest extends ImperativeClientTestCase { } @Test - void testStreamMessageWriteThatFlushesFailsAfterConnectionDropped() throws Exception { + public void testStreamMessageWriteThatFlushesFailsAfterConnectionDropped() throws Exception { try (ProtonTestServer peer = new ProtonTestServer()) { peer.expectSASLAnonymousConnect(); peer.expectOpen().respond(); @@ -2597,12 +2607,15 @@ public class StreamSenderTest extends ImperativeClientTestCase { peer.dropAfterLastHandler(); peer.start(); - URI remoteURI = peer.getServerURI(); + final URI remoteURI = peer.getServerURI(); + final CountDownLatch disconnected = new CountDownLatch(1); LOG.info("Test started, peer listening on: {}", remoteURI); Client container = Client.create(); - Connection connection = container.connect(remoteURI.getHost(), remoteURI.getPort()); + ConnectionOptions connectOptions = new ConnectionOptions(); + connectOptions.disconnectedHandler((c, e) -> disconnected.countDown()); + Connection connection = container.connect(remoteURI.getHost(), remoteURI.getPort(), connectOptions); StreamSenderOptions options = new StreamSenderOptions().writeBufferSize(1024); StreamSender sender = connection.openStreamSender("test-queue", options); StreamSenderMessage message = sender.beginMessage(); @@ -2614,6 +2627,8 @@ public class StreamSenderTest extends ImperativeClientTestCase { peer.waitForScriptToComplete(); + assertTrue(disconnected.await(5, TimeUnit.SECONDS)); + try { stream.write(payload); fail("Should not be able to write section after connection drop"); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org