Skip to content
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

Merged
merged 5 commits into from Apr 29, 2024

Conversation

meagar
Copy link
Contributor

@meagar meagar commented Apr 13, 2024

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

Copy link

conventional-commit-lint-gcf bot commented Apr 13, 2024

🤖 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 automerge label. Good luck human!

-- conventional-commit-lint bot
https://conventionalcommits.org/

@meagar meagar force-pushed the bigtable-conformance-tests branch from 6a08613 to 49113c6 Compare April 15, 2024 16:18
@meagar meagar force-pushed the bigtable-conformance-tests branch 2 times, most recently from cc23ad4 to 351fb41 Compare April 15, 2024 17:53
@meagar meagar changed the title [WIP] Add a test proxy to support client conformance tests Add a test proxy to support client conformance tests Apr 15, 2024
@meagar meagar changed the title Add a test proxy to support client conformance tests Add a test proxy for Bigtable client conformance tests Apr 16, 2024
@meagar meagar changed the title Add a test proxy for Bigtable client conformance tests feat: Add a test proxy for Bigtable client conformance tests Apr 16, 2024
@meagar meagar force-pushed the bigtable-conformance-tests branch from bd793dc to c075534 Compare April 29, 2024 16:08
@dazuma
Copy link
Member

dazuma commented Apr 29, 2024

The conventional commit message should't be feat: since this doesn't implement a feature in the library itself. Actually, it probably should be fix: since we've included several small bug fixes to the library in addition to test infrastructure.

@dazuma
Copy link
Member

dazuma commented Apr 29, 2024

fix(bigtable): Fixes for using a preconfigured GRPC channel as credentials
fix(bigtable): Fixes for leaving predicate unset in check_and_mutate_row

@dazuma dazuma merged commit 06a5c10 into googleapis:main Apr 29, 2024
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Bigtable Client Conformance Tests
3 participants