From 1a7d22042fe1856bcb06de8f9eb15237c27d5969 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Tue, 12 May 2020 14:19:01 -0700 Subject: [PATCH 1/3] Make the top-level properties JvmStatic --- .../java/io/grpc/kotlin/generator/TopLevelConstantsGenerator.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/src/main/java/io/grpc/kotlin/generator/TopLevelConstantsGenerator.kt b/compiler/src/main/java/io/grpc/kotlin/generator/TopLevelConstantsGenerator.kt index 3c796670..44f8a60c 100644 --- a/compiler/src/main/java/io/grpc/kotlin/generator/TopLevelConstantsGenerator.kt +++ b/compiler/src/main/java/io/grpc/kotlin/generator/TopLevelConstantsGenerator.kt @@ -20,6 +20,7 @@ class TopLevelConstantsGenerator(config: GeneratorConfig): ServiceCodeGenerator( override fun generate(service: Descriptors.ServiceDescriptor): Declarations = declarations { addProperty( PropertySpec.builder("serviceDescriptor", ServiceDescriptor::class) + .addAnnotation(JvmStatic::class) .getter( FunSpec.getterBuilder() .addStatement("return %T.getServiceDescriptor()", service.grpcClass) @@ -41,6 +42,7 @@ class TopLevelConstantsGenerator(config: GeneratorConfig): ServiceCodeGenerator( ) .getter( FunSpec.getterBuilder() + .addAnnotation(JvmStatic::class) .addStatement("return %T.get%LMethod()", service.grpcClass, method.methodName) .build() ) From 290537e1823e87ef487e4377f7ec545d3e361077 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Tue, 12 May 2020 14:49:48 -0700 Subject: [PATCH 2/3] Delete constantly flaky test. --- .../java/io/grpc/kotlin/ClientCallsTest.kt | 35 ------------------- 1 file changed, 35 deletions(-) diff --git a/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt b/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt index 141f86ec..227927f5 100644 --- a/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt +++ b/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt @@ -661,39 +661,4 @@ class ClientCallsTest: AbstractCallsTest() { assertThat(responses.single()).isEqualTo(helloReply("Hello, Sunstone")) assertThat(requestsEvaluations.get()).isEqualTo(2) } - - @ExperimentalCoroutinesApi - @Test - fun bidiStreamingCancelResponsesCancelsRequests() = runBlocking { - val serverImpl = object : GreeterGrpc.GreeterImplBase() { - override fun bidiStreamSayHello( - responseObserver: StreamObserver - ): StreamObserver { - return object : StreamObserver { - override fun onNext(value: HelloRequest) { - responseObserver.onNext(helloReply("Hello, ${value.name}")) - } - - override fun onError(t: Throwable) = throw t - - override fun onCompleted() { - responseObserver.onCompleted() - } - } - } - } - - val channel = makeChannel(serverImpl) - - val cancelled = Job() - val requests = flow { - emit(helloRequest("Steven")) - emit(helloRequest("Garnet")) - suspendUntilCancelled { cancelled.complete() } - } - assertThat( - ClientCalls.bidiStreamingRpc(channel, bidiStreamingSayHelloMethod, requests).take(2).toList() - ).containsExactly(helloReply("Hello, Steven"), helloReply("Hello, Garnet")).inOrder() - cancelled.join() - } } From d43136f23ac9c87ac3d2714eb75df5b927b33e14 Mon Sep 17 00:00:00 2001 From: Louis Wasserman Date: Wed, 13 May 2020 13:55:15 -0700 Subject: [PATCH 3/3] Remove more constantly flaky tests. --- .../java/io/grpc/kotlin/ClientCallsTest.kt | 52 ------------------- 1 file changed, 52 deletions(-) diff --git a/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt b/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt index 227927f5..c35d4ef3 100644 --- a/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt +++ b/stub/src/test/java/io/grpc/kotlin/ClientCallsTest.kt @@ -406,58 +406,6 @@ class ClientCallsTest: AbstractCallsTest() { } } - @FlowPreview - @Test - fun clientStreamingRpcCancellation() = runBlocking { - val serverCancelled = Job() - val serverReceived = Job() - val serverImpl = object : GreeterGrpc.GreeterImplBase() { - override fun clientStreamSayHello( - responseObserver: StreamObserver - ): StreamObserver { - return object : StreamObserver { - private val names = mutableListOf() - - override fun onNext(value: HelloRequest) { - whenContextIsCancelled { serverCancelled.complete() } - Context.current().withCancellation().addListener( - Context.CancellationListener { - serverCancelled.complete() - }, - directExecutor() - ) - serverReceived.complete() - names += value.name - } - - override fun onError(t: Throwable) = throw t - - override fun onCompleted() { - responseObserver.onNext( - helloReply(names.joinToString(prefix = "Hello, ", separator = ", ")) - ) - responseObserver.onCompleted() - } - } - } - } - - channel = makeChannel(serverImpl) - - val requests = Channel() - val rpc = async { - ClientCalls.clientStreamingRpc( - channel = channel, - method = clientStreamingSayHelloMethod, - requests = requests.consumeAsFlow() - ) - } - requests.send(helloRequest("Tim")) - serverReceived.join() - rpc.cancel(CancellationException("no longer needed")) - serverCancelled.join() - } - @FlowPreview @Test fun clientStreamingRpcCancelled() = runBlocking {