Apache Pekko gRPC Interop tests

This project contains grpc-interop-testing tests and other tests that require code generation.

The project layout is roughly as follows:

  • src/main/*: code shared between this subproject and the 00-interop-tests scripted tests
  • src/main/*/io/grpc/testing/integration2: infrastructure taken from grpc-java, but generalized to also allow invoking the Apache Pekko gRPC implementation
  • src/*/*/org/apache/pekko/grpc/interop: grpc-interop-testing tests
  • src/test/scala/org/apache/pekko/grpc/scaladsl other tests that require code generation

grpc-interop-testing tests

Test interoperability between the Apache Pekko implementation and the implementation from io.gpc:grpc-interop-testing, based on gRPC's original testset.

There are 3 ways to run these tests:

Running as unit tests

The GrpcInteropSpec test in this project will run the test suite using various combinations of Apache Pekko gRPC Java, Apache Pekko gRPC Scala and gRPC-Java.

Running as scripted tests

The ‘scripted’ ‘00-interop’ tests in the sbt-plugin subproject depends on some of the resources in this subproject to run the tests, this time including code generation from the actual sbt plugin.

Running manually

Running the tests manually is a WiP and might need some local tweaks to work.

Run PekkoHttpServerAppScala to start a gRPC server with the server-side of the tests, which can then be tested against using other gRPC implementations implementing the client side.

Similarly, GrpcIoClientApp can be used for the client side