Many of us share concerns that testing the consistency features of S3Guard will be difficult if we depend on the rare and unpredictable occurrence of actual inconsistency in S3 to exercise those code paths.
I think we should have a mechanism for injecting failure to force exercising of the consistency codepaths in S3Guard.
- Integration tests that cause S3A to see the types of inconsistency we address with S3Guard.
- These are deterministic integration tests.
Unit tests are possible as well, if we were to stub out the S3Client. That may be less bang for the buck, though.