-
Notifications
You must be signed in to change notification settings - Fork 553
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add a test proxy for Bigtable client conformance tests #25680
Conversation
🤖 I detect that the PR title and the commit message differ and there's only one commit. To use the PR title for the commit history, you can use Github's automerge feature with squashing, or use -- conventional-commit-lint bot |
6a08613
to
49113c6
Compare
cc23ad4
to
351fb41
Compare
351fb41
to
12448db
Compare
bd793dc
to
c075534
Compare
The conventional commit message should't be |
fix(bigtable): Fixes for using a preconfigured GRPC channel as credentials |
Introduce a test proxy required for Bigtable client conformance tests, per https://github.com/googleapis/cloud-bigtable-clients-test, as well as some small (I believe non-breaking) changes in
google-cloud-bigtable
to allow the test proxy to work.The test harness is written in Go, and provides its own (very simple) mock implementation of Bigtable. The test proxy exposes a number of RPC calls that are thin wrappers around the language-specific client library, so the test harness can tell the proxy to make various permutations of typical Bigtable calls (read row, check-and-mutate, etc) and verify the client's behavior by looking at how it interacts with the mock Bigtable implementation, and the types of responses the proxy returns.
This PR also includes a couple minor fixes to
google-cloud-bigtable
which I think generally update the code to reflect the existing documentation comments (so they require no documentation change).It's worth mentioning that I tried to fail early with clear error messages in any place in the proxy that the current test suite didn't cause to be executed, and I didn't feel comfortable authoring an implementation that I'd have no way of testing. This should provide good feedback for future maintainers to understand where to make changes, should new tests trip my asserts/aborts.
closes: #25682