diff --git a/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java b/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java index 32c3bff74e..ea7f1723e6 100644 --- a/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java +++ b/core/src/testFixtures/java/io/grpc/internal/AbstractTransportTest.java @@ -1449,7 +1449,7 @@ public abstract class AbstractTransportTest { clientStream.flush(); clientStream.halfClose(); doPingPong(serverListener); - assertFalse(serverStreamListener.awaitHalfClosed(TIMEOUT_MS, TimeUnit.MILLISECONDS)); + assertFalse(serverStreamListener.isHalfClosed()); serverStream.request(1); serverReceived += verifyMessageCountAndClose(serverStreamListener.messageQueue, 1); @@ -1461,11 +1461,7 @@ public abstract class AbstractTransportTest { Status status = Status.OK.withDescription("... quite a lengthy discussion"); serverStream.close(status, new Metadata()); doPingPong(serverListener); - try { - clientStreamListener.awaitClose(TIMEOUT_MS, TimeUnit.MILLISECONDS); - fail("Expected TimeoutException"); - } catch (TimeoutException expectedException) { - } + assertFalse(clientStreamListener.isClosed()); clientStream.request(1); clientReceived += verifyMessageCountAndClose(clientStreamListener.messageQueue, 1); diff --git a/core/src/testFixtures/java/io/grpc/internal/ClientStreamListenerBase.java b/core/src/testFixtures/java/io/grpc/internal/ClientStreamListenerBase.java index 97186400cb..3c35cf5922 100644 --- a/core/src/testFixtures/java/io/grpc/internal/ClientStreamListenerBase.java +++ b/core/src/testFixtures/java/io/grpc/internal/ClientStreamListenerBase.java @@ -43,6 +43,13 @@ public class ClientStreamListenerBase implements ClientStreamListener { return status.get(timeout, unit); } + /** + * Return {@code true} if {@code #awaitClose} would return immediately with a status. + */ + public boolean isClosed() { + return status.isDone(); + } + /** * Returns response headers from the server or throws {@link * java.util.concurrent.TimeoutException} if they aren't delivered before the timeout. diff --git a/core/src/testFixtures/java/io/grpc/internal/ServerStreamListenerBase.java b/core/src/testFixtures/java/io/grpc/internal/ServerStreamListenerBase.java index b4ded80e5b..aaa7060054 100644 --- a/core/src/testFixtures/java/io/grpc/internal/ServerStreamListenerBase.java +++ b/core/src/testFixtures/java/io/grpc/internal/ServerStreamListenerBase.java @@ -54,6 +54,10 @@ public class ServerStreamListenerBase implements ServerStreamListener { return halfClosedLatch.await(timeout, unit); } + public boolean isHalfClosed() { + return halfClosedLatch.getCount() == 0; + } + public Status awaitClose(int timeout, TimeUnit unit) throws Exception { return status.get(timeout, unit); }