Skip to content

Commit

Permalink
Run interop tests for v1.69.0 (all tests pass)
Browse files Browse the repository at this point in the history
  • Loading branch information
edsko committed Jan 17, 2025
1 parent da3e531 commit f614a7c
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 31 deletions.
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Legend:
* 🚫 not supported by `grapesy`

We last tested against version
[v1.62.0](https://github.com/grpc/grpc/releases/tag/v1.62.0) (released Feb 20,
[v1.69.0](https://github.com/grpc/grpc/releases/tag/v1.69.0) (released Dec 24,
2024).

### `grapesy` server versus reference client
Expand Down Expand Up @@ -81,18 +81,16 @@ are not supported by _any_ of the reference implementations that we tested, we
did not consider them any further. The full list is:

* [`cacheable_unary`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#cacheable_unary)
* [`channel_soak`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#channel_soak)
* [`compute_engine_channel_credentials`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptionsmd#compute_engine_channel_credentials)
* [`compute_engine_creds`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#compute_engine_creds)
* [`concurrent_large_unary`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#concurrent_large_unary)
* [`google_default_credentials`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#google_default_credentials)
* [`jwt_token_creds`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#jwt_token_creds)
* [`long_lived_channel`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#long_lived_channel)
* [`oauth2_auth_token`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#oauth2_auth_token)
* [`per_rpc_creds`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#per_rpc_creds)
* [`google_default_credentials`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#google_default_credentials)
* [`compute_engine_channel_credentials`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptionsmd#compute_engine_channel_credentials),
* [`rpc_soak`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#rpc_soak)
* [`channel_soak`](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md#channel_soak)

[grpc:website]: https://grpc.io/
[grpc:interop]: https://github.com/grpc/grpc/tree/master/tools/interop_matrix
[grapesy:issue:72-orca]: https://github.com/well-typed/grapesy/issues/72

## Memory profiles

Expand Down Expand Up @@ -185,4 +183,10 @@ profile](/assets/profiles/many-messages-server.png)
<td>1151.017</td>
<td>3563.867</td>
</tr>
</table>
</table>


[grpc:website]: https://grpc.io/
[grpc:interop]: https://github.com/grpc/grpc/tree/master/tools/interop_matrix
[grapesy:issue:72-orca]: https://github.com/well-typed/grapesy/issues/72

41 changes: 19 additions & 22 deletions dev/interop.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,29 +35,29 @@ All tests should pass.
## Running development `grapesy` against reference implementation

> [!NOTE]
> At the time of writing version
> [v1.62.0](https://github.com/grpc/grpc/releases/tag/v1.62.0) is the most
> recent (released Feb 20, 2024).
> At the time of writing (2025-01-17) version
> [v1.69.0](https://github.com/grpc/grpc/releases/tag/v1.69.0) is the most
> recent.
In this section we will describe how to run a development `grapesy` server or
client (that is, a local checkout of the git repository, run simply using
`cabal run`) against a reference implementation. For this you will need a
checkout of the [official gRPC repo](https://github.com/grpc/grpc/).

```bash
$ git clone https://github.com/grpc/grpc.git -b v1.62.0 ./grpc-repo
grpc-repo$ git switch -c v1.62.0
$ git clone https://github.com/grpc/grpc.git -b v1.69.0 ./grpc-repo
grpc-repo$ git switch -c v1.69.0
grpc-repo$ git submodule update --init --recursive
```

For some languages, the gRPC implementation lives in a separate repository.

```bash
$ git clone https://github.com/grpc/grpc-java.git -b v1.62.0
grpc-java$ git switch -c v1.62.0
$ git clone https://github.com/grpc/grpc-java.git -b v1.69.0
grpc-java$ git switch -c v1.69.0

$ git clone https://github.com/grpc/grpc-go.git -b v1.62.0
grpc-go$ git switch -c v1.62.0
$ git clone https://github.com/grpc/grpc-go.git -b v1.69.0
grpc-go$ git switch -c v1.69.0
```

These need to be checked out alongside `grpc-repo`, so that you end up with
Expand All @@ -74,7 +74,7 @@ parent
```

> [!WARNING]
> Unlike the [QuickCheck
> Unlike the [Quick start
> instructions](https://grpc.io/docs/languages/python/quickstart/), this does
> _not_ do a shallow checkout. This is important: the tests will fail otherwise
> with an error such as this one:
Expand All @@ -90,9 +90,9 @@ fatal: clone of 'https://github.com/abseil/abseil-cpp.git' into submodule path '
> The official interop tests fail when IPv6 is enabled on the host machine. For
> convenience, there is a script in the `grapesy` repo at
> [/dev/disable-ipv6.sh](/dev/disable-ipv6.sh) that can be used to disable IPv6
> on Linux machines. If IPv6 is enabled, tests will fail with an error such as
> the one below (this error is in the test _infrastructure_, independent from
> the reference client or server):
> on Linux machines (run with `sudo`). If IPv6 is enabled, tests will fail with
> an error such as the one below (this error is in the test _infrastructure_,
> independent from the reference client or server):
```
Traceback (most recent call last):
Expand All @@ -115,7 +115,7 @@ dependencies. For convenience, in this section we describe how to set this up
on Linux. First, you will need Python:

```bash
$ apt-get install python3 python3-pip python3-setuptools python3-yaml
$ sudo apt-get install python3 python3-pip python3-setuptools python3-yaml
```

Create a Python virtual environment
Expand All @@ -130,7 +130,7 @@ PATH (see https://docs.python.org/3/library/venv.html#how-venvs-work); one
option is to create an `.envrc` file in `grpc-repo` with

```bash
export PATH=/path/to/grpc-repo/python-venv/bin:$PATH
export PATH=$PWD/python-venv/bin:$PATH
```

(you can also use `python-venv/bin/activate` but simply setting the path is
Expand All @@ -140,19 +140,13 @@ Finally, install the required Python dependencies:

```bash
grpc-repo$ python3 -m pip install --upgrade \
six==1.16.0 \
google-auth==1.23.0 \
google-api-python-client==1.12.8 \
oauth2client==4.1.0
```

(these version numbers match the ones used in
`tools/dockerfile/interoptest/grpc_interop_go/Dockerfile` and others).

> [!NOTE]
> The Docker file in the repo also pins `pip` itself, but to quite an old
> version (19.3.1). I found that this old version results in some errors, and
> had no problems with the default version (23.2 at the time of writing).
`tools/dockerfile/interoptest/grpc_interop_python/Dockerfile` and others).

As a sanity check, you can try to run the Python reference client against the
Python reference server:
Expand Down Expand Up @@ -297,6 +291,9 @@ grpc-repo$ SERVER_PORT=50052 bash ./java_client.sh
Only the ORCA tests are expected to fail (you may wish to disable those by
editing the client scripts).

The C++ client tests generate a lot of output; test failures will be reported
as `SIGABRT`/`SIGSEGV`.

## Running automatic tests

So far we've been running the interop tests in "manual" mode. To run them
Expand Down

0 comments on commit f614a7c

Please sign in to comment.