This library leverages the conformance tests defined in googleapis/conformance-tests to ensure adherence to expected behaviors.
Access to the conformance tests is achieved via dependencies on
com.google.cloud:google-cloud-conformance-tests
which contains all generated protos and associated files necessary for loading
and accessing the tests.
Conformance tests are written and run as part of the JUnit tests suite.
The JUnit tests class is ITRetryConformanceTest.java
and is considered part of the integration test suite.
This tests suite ensures that automatic retries for operations are properly defined and handled to ensure data integrity.
- Java 8+
- Maven
- Docker (Docker for MacOS has been tested and verified to work as well)
The test suite uses the storage-testbench to configure and generate tests cases which use fault injection to ensure conformance.
ITRetryConformanceTest encapsulates all the necessary lifecycle points needed
to run the test suite, including:
- Running the testbench server via docker
- Setup, validation, cleanup of individual test cases with the testbench
- CI Graceful enforcement of test failures (enforce no regressions, but allow for some cases to not pass without failing the whole run)
A sequence diagram of how the tests are loaded run, and interact with testbench
can be seen below. Time moves from top to bottom, while component interactions
are shown via arrows laterally.
