blob: b860e2be561263a9659ad08905e2edb93bc3b1aa [file] [log] [blame] [view]
# 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](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md).
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