mirror of https://github.com/grpc/grpc-java.git
Fix order dependent tests regarding message duration b/271122310 (#9930)
* Fix order dependent test by changing the initializations and comparison so that elapsed time isn't as significant in identifying whether it was the context or call option's duration that was used. fixes b/271122310
This commit is contained in:
parent
50a76610ee
commit
58e2224df9
|
|
@ -352,11 +352,12 @@ public class InternalLoggingChannelInterceptorTest {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
ClientCall.Listener<byte[]> mockListener = mock(ClientCall.Listener.class);
|
ClientCall.Listener<byte[]> mockListener = mock(ClientCall.Listener.class);
|
||||||
|
|
||||||
|
int durationSecs = 5;
|
||||||
ClientCall<byte[], byte[]> interceptedLoggingCall =
|
ClientCall<byte[], byte[]> interceptedLoggingCall =
|
||||||
factory.create()
|
factory.create()
|
||||||
.interceptCall(
|
.interceptCall(
|
||||||
method,
|
method,
|
||||||
CallOptions.DEFAULT.withDeadlineAfter(1, TimeUnit.SECONDS),
|
CallOptions.DEFAULT.withDeadlineAfter(durationSecs, TimeUnit.SECONDS),
|
||||||
new Channel() {
|
new Channel() {
|
||||||
@Override
|
@Override
|
||||||
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
||||||
|
|
@ -387,8 +388,8 @@ public class InternalLoggingChannelInterceptorTest {
|
||||||
ArgumentMatchers.any()),
|
ArgumentMatchers.any()),
|
||||||
any(SpanContext.class));
|
any(SpanContext.class));
|
||||||
Duration timeout = callOptTimeoutCaptor.getValue();
|
Duration timeout = callOptTimeoutCaptor.getValue();
|
||||||
assertThat(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout))
|
assertThat(Math.abs(TimeUnit.SECONDS.toNanos(durationSecs) - Durations.toNanos(timeout)))
|
||||||
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
.isAtMost(TimeUnit.MILLISECONDS.toNanos(750));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -396,7 +397,7 @@ public class InternalLoggingChannelInterceptorTest {
|
||||||
final SettableFuture<ClientCall<byte[], byte[]>> callFuture = SettableFuture.create();
|
final SettableFuture<ClientCall<byte[], byte[]>> callFuture = SettableFuture.create();
|
||||||
Context.current()
|
Context.current()
|
||||||
.withDeadline(
|
.withDeadline(
|
||||||
Deadline.after(1, TimeUnit.SECONDS),
|
Deadline.after(2, TimeUnit.SECONDS),
|
||||||
Executors.newSingleThreadScheduledExecutor())
|
Executors.newSingleThreadScheduledExecutor())
|
||||||
.run(() -> {
|
.run(() -> {
|
||||||
MethodDescriptor<byte[], byte[]> method =
|
MethodDescriptor<byte[], byte[]> method =
|
||||||
|
|
@ -413,7 +414,7 @@ public class InternalLoggingChannelInterceptorTest {
|
||||||
factory.create()
|
factory.create()
|
||||||
.interceptCall(
|
.interceptCall(
|
||||||
method,
|
method,
|
||||||
CallOptions.DEFAULT.withDeadlineAfter(1, TimeUnit.SECONDS),
|
CallOptions.DEFAULT.withDeadlineAfter(5, TimeUnit.SECONDS),
|
||||||
new Channel() {
|
new Channel() {
|
||||||
@Override
|
@Override
|
||||||
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
||||||
|
|
@ -447,8 +448,8 @@ public class InternalLoggingChannelInterceptorTest {
|
||||||
ArgumentMatchers.any()),
|
ArgumentMatchers.any()),
|
||||||
any(SpanContext.class));
|
any(SpanContext.class));
|
||||||
Duration timeout = contextTimeoutCaptor.getValue();
|
Duration timeout = contextTimeoutCaptor.getValue();
|
||||||
assertThat(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout))
|
assertThat(Math.abs(TimeUnit.SECONDS.toNanos(2) - Durations.toNanos(timeout)))
|
||||||
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
.isAtMost(TimeUnit.MILLISECONDS.toNanos(750));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -512,8 +513,8 @@ public class InternalLoggingChannelInterceptorTest {
|
||||||
Duration timeout = timeoutCaptor.getValue();
|
Duration timeout = timeoutCaptor.getValue();
|
||||||
assertThat(LogHelper.min(contextDeadline, callOptionsDeadline))
|
assertThat(LogHelper.min(contextDeadline, callOptionsDeadline))
|
||||||
.isSameInstanceAs(contextDeadline);
|
.isSameInstanceAs(contextDeadline);
|
||||||
assertThat(TimeUnit.SECONDS.toNanos(10) - Durations.toNanos(timeout))
|
assertThat(Math.abs(TimeUnit.SECONDS.toNanos(10) - Durations.toNanos(timeout)))
|
||||||
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
.isAtMost(TimeUnit.MILLISECONDS.toNanos(750));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -354,7 +354,7 @@ public class InternalLoggingServerInterceptorTest {
|
||||||
eq(SpanContext.INVALID));
|
eq(SpanContext.INVALID));
|
||||||
verifyNoMoreInteractions(mockLogHelper);
|
verifyNoMoreInteractions(mockLogHelper);
|
||||||
Duration timeout = timeoutCaptor.getValue();
|
Duration timeout = timeoutCaptor.getValue();
|
||||||
assertThat(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout))
|
assertThat(Math.abs(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout)))
|
||||||
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -979,7 +979,7 @@ public final class BinlogHelperTest {
|
||||||
ArgumentMatchers.<SocketAddress>isNull());
|
ArgumentMatchers.<SocketAddress>isNull());
|
||||||
verifyNoMoreInteractions(mockSinkWriter);
|
verifyNoMoreInteractions(mockSinkWriter);
|
||||||
Duration timeout = timeoutCaptor.getValue();
|
Duration timeout = timeoutCaptor.getValue();
|
||||||
assertThat(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout))
|
assertThat(Math.abs(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout)))
|
||||||
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1000,7 +1000,7 @@ public final class BinlogHelperTest {
|
||||||
.getClientInterceptor(CALL_ID)
|
.getClientInterceptor(CALL_ID)
|
||||||
.interceptCall(
|
.interceptCall(
|
||||||
method,
|
method,
|
||||||
CallOptions.DEFAULT.withDeadlineAfter(1, TimeUnit.SECONDS),
|
CallOptions.DEFAULT.withDeadlineAfter(2, TimeUnit.SECONDS),
|
||||||
new Channel() {
|
new Channel() {
|
||||||
@Override
|
@Override
|
||||||
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
||||||
|
|
@ -1028,17 +1028,18 @@ public final class BinlogHelperTest {
|
||||||
AdditionalMatchers.or(ArgumentMatchers.<SocketAddress>isNull(),
|
AdditionalMatchers.or(ArgumentMatchers.<SocketAddress>isNull(),
|
||||||
ArgumentMatchers.<SocketAddress>any()));
|
ArgumentMatchers.<SocketAddress>any()));
|
||||||
Duration timeout = callOptTimeoutCaptor.getValue();
|
Duration timeout = callOptTimeoutCaptor.getValue();
|
||||||
assertThat(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout))
|
assertThat(Math.abs(TimeUnit.SECONDS.toNanos(2) - Durations.toNanos(timeout)))
|
||||||
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
.isAtMost(TimeUnit.MILLISECONDS.toNanos(750));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void clientDeadlineLogged_deadlineSetViaContext() throws Exception {
|
public void clientDeadlineLogged_deadlineSetViaContext() throws Exception {
|
||||||
// important: deadline is read from the ctx where call was created
|
// important: deadline is read from the ctx where call was created
|
||||||
final SettableFuture<ClientCall<byte[], byte[]>> callFuture = SettableFuture.create();
|
final SettableFuture<ClientCall<byte[], byte[]>> callFuture = SettableFuture.create();
|
||||||
|
Deadline expectedDeadline = Deadline.after(2, TimeUnit.SECONDS);
|
||||||
Context.current()
|
Context.current()
|
||||||
.withDeadline(
|
.withDeadline(
|
||||||
Deadline.after(1, TimeUnit.SECONDS), Executors.newSingleThreadScheduledExecutor())
|
expectedDeadline, Executors.newSingleThreadScheduledExecutor())
|
||||||
.run(new Runnable() {
|
.run(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
@ -1054,7 +1055,7 @@ public final class BinlogHelperTest {
|
||||||
.getClientInterceptor(CALL_ID)
|
.getClientInterceptor(CALL_ID)
|
||||||
.interceptCall(
|
.interceptCall(
|
||||||
method,
|
method,
|
||||||
CallOptions.DEFAULT.withDeadlineAfter(1, TimeUnit.SECONDS),
|
CallOptions.DEFAULT.withDeadlineAfter(10, TimeUnit.SECONDS),
|
||||||
new Channel() {
|
new Channel() {
|
||||||
@Override
|
@Override
|
||||||
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(
|
||||||
|
|
@ -1085,9 +1086,10 @@ public final class BinlogHelperTest {
|
||||||
anyLong(),
|
anyLong(),
|
||||||
AdditionalMatchers.or(ArgumentMatchers.<SocketAddress>isNull(),
|
AdditionalMatchers.or(ArgumentMatchers.<SocketAddress>isNull(),
|
||||||
ArgumentMatchers.<SocketAddress>any()));
|
ArgumentMatchers.<SocketAddress>any()));
|
||||||
Duration timeout = callOptTimeoutCaptor.getValue();
|
long expectedTimeRemaining = expectedDeadline.timeRemaining(TimeUnit.NANOSECONDS);
|
||||||
assertThat(TimeUnit.SECONDS.toNanos(1) - Durations.toNanos(timeout))
|
long timeout = Durations.toNanos(callOptTimeoutCaptor.getValue());
|
||||||
.isAtMost(TimeUnit.MILLISECONDS.toNanos(250));
|
assertThat(Math.abs(expectedTimeRemaining - timeout))
|
||||||
|
.isAtMost(TimeUnit.MILLISECONDS.toNanos(750));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue