@Test
    void callExecutorIsEventLoopByDefault() {
        final AtomicReference<Thread> onMessageThread = new AtomicReference<>();
        final AtomicReference<Thread> onCompleteThread = new AtomicReference<>();
        asyncStub.emptyCall(EMPTY, new StreamObserver<Empty>() {
            @Override
            public void onNext(Empty value) {
                onMessageThread.set(Thread.currentThread());
            }

            @Override
            public void onError(Throwable t) {
            }

            @Override
            public void onCompleted() {
                onCompleteThread.set(Thread.currentThread());
            }
        });

        await().untilAtomic(onMessageThread, instanceOf(EventLoopThread.class));
        await().untilAtomic(onCompleteThread, instanceOf(EventLoopThread.class));
    }
Must be at least {@link #unaryPayloadLength()}, plus some to account for encoding overhead.
grpc/src/test/java/com/linecorp/armeria/client/grpc/GrpcClientTest.java