mirror of https://github.com/grpc/grpc-java.git
api:Provide a default implementation for new method added to ManagedTranport.Listener to support ClientTransportFilters (#10795)
* Provide a default implementation for new method added to ManagedTransport.Listener to support ClientTransportFilters * Relax test constraint to reduce flakiness due to timing. * Add test for listener.filterTransport.
This commit is contained in:
parent
f01c110f77
commit
4b2e5eddd2
|
|
@ -706,7 +706,7 @@ public class ContextTest {
|
|||
|
||||
@Test
|
||||
public void innerDeadlineCompletesBeforeOuter() throws Exception {
|
||||
Context base = Context.current().withDeadline(Deadline.after(2, TimeUnit.SECONDS), scheduler);
|
||||
Context base = Context.current().withDeadline(Deadline.after(3, TimeUnit.SECONDS), scheduler);
|
||||
Context child = base.withDeadline(Deadline.after(1, TimeUnit.SECONDS), scheduler);
|
||||
child.addListener(cancellationListener, MoreExecutors.directExecutor());
|
||||
assertFalse(base.isCancelled());
|
||||
|
|
@ -719,7 +719,7 @@ public class ContextTest {
|
|||
|
||||
deadlineLatch = new CountDownLatch(1);
|
||||
base.addListener(cancellationListener, MoreExecutors.directExecutor());
|
||||
assertTrue(deadlineLatch.await(2, TimeUnit.SECONDS));
|
||||
assertTrue(deadlineLatch.await(4, TimeUnit.SECONDS));
|
||||
assertTrue(base.isCancelled());
|
||||
assertTrue(base.cancellationCause() instanceof TimeoutException);
|
||||
assertNotSame(base.cancellationCause(), child.cancellationCause());
|
||||
|
|
|
|||
|
|
@ -110,6 +110,8 @@ public interface ManagedClientTransport extends ClientTransport {
|
|||
* Called just before {@link #transportReady} to allow direct modification of transport
|
||||
* Attributes.
|
||||
*/
|
||||
Attributes filterTransport(Attributes attributes);
|
||||
default Attributes filterTransport(Attributes attributes) {
|
||||
return attributes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* Copyright 2024 The gRPC Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package io.grpc.internal;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import io.grpc.Attributes;
|
||||
import io.grpc.Status;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
|
||||
@RunWith(JUnit4.class)
|
||||
public class ManagedClientTransportTest {
|
||||
|
||||
@Test
|
||||
public void testListener() {
|
||||
ManagedClientTransport.Listener listener = new ManagedClientTransport.Listener() {
|
||||
@Override
|
||||
public void transportShutdown(Status s) {}
|
||||
|
||||
@Override
|
||||
public void transportTerminated() {}
|
||||
|
||||
@Override
|
||||
public void transportReady() {}
|
||||
|
||||
@Override
|
||||
public void transportInUse(boolean inUse) {}
|
||||
};
|
||||
|
||||
// Test that the listener methods do not throw.
|
||||
listener.transportShutdown(Status.OK);
|
||||
listener.transportTerminated();
|
||||
listener.transportReady();
|
||||
listener.transportInUse(true);
|
||||
|
||||
|
||||
assertNull(listener.filterTransport(null));
|
||||
|
||||
Attributes attributes = Attributes.newBuilder()
|
||||
.set(Attributes.Key.create("yolo"), "To be, or not to be?")
|
||||
.set(Attributes.Key.create("foo"), "bar!")
|
||||
.set(Attributes.Key.create("bar"), "foo?")
|
||||
.build();
|
||||
assertEquals(attributes, listener.filterTransport(attributes));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue