Sruhvx-jpg opened a new pull request, #3288:
URL: https://github.com/apache/iceberg-rust/pull/3288
## Which issue does this PR close?
- Closes #2211
- Supersedes and revives #2253
## What changes are included in this PR?
- **New Crate `iceberg-storage-common`**: Defines a shared parameterized
integration test suite (`file_io_suite`, `resolving_suite`, `credential_suite`)
to enforce `FileIO` contracts across storage implementations.
- **De-duplicate OpenDAL Tests**: Removes duplicate integration test files
from `crates/storage/opendal` while keeping HuggingFace tests isolated to
prevent CI secret leak risks.
- **Fast Probe Health Check**: Adds a 300ms TCP/HTTP endpoint probe before
retry loops so tests fail-fast / skip cleanly (0ms) when Docker emulators are
offline.
- **Extra Contract Assertions**:
- `test_file_io_zero_byte_file` (0-byte write/read/exists)
- `test_file_io_range_read_out_of_bounds` (enforce error contract on range
OOB)
- `test_file_io_delete_stream_mixed` (batch delete with mixed
existing/non-existent keys)
- `test_file_io_concurrent_writes` (concurrent multi-task writers on
shared FileIO)
- `test_file_io_serialization_roundtrip` (FileIO serde roundtrip)
- **Forward-Compatibility**: Added `TODO` tracking #3165 (approved
`object_store` S3 backend) to plug into the `StorageKind` matrix upon merge.
## Are these changes tested?
Tested across S3 (RustFS/MinIO), GCS emulator, local FS, and in-memory
storage:
- `cargo test -p iceberg-storage-common` (92 tests passed, 0 failed)
- `cargo test -p iceberg-storage-opendal` (all unit & integration tests pass)
- `cargo clippy` & `cargo fmt` clean.
## Generative AI Disclosure
This contribution was created with the assistance of an AI coding assistant
(Pi / Anthropic / Gemini). All generated code has been manually audited,
reviewed, compiled, and verified by the author in accordance with the Apache
Software Foundation Generative Tooling Guidance.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]