mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-06 13:27:43 +00:00
aabda41ae5
* build: upgrade Rust baseline to 1.96.0 * ci: pin Rust workflows to 1.96.0 * remove * ci: pin setup action to Rust 1.96.0 * build: pin toolchain to Rust 1.96.0
56 lines
1.7 KiB
Markdown
56 lines
1.7 KiB
Markdown
# rio-v2 Fixture Tests
|
|
|
|
This directory holds interoperability tests for `rustfs-rio-v2`.
|
|
|
|
## Generated MinIO fixtures
|
|
|
|
The integration test `minio_generated_fixtures.rs` reads raw MinIO backend data generated by
|
|
`crates/rio-v2/tests/minio_fixture_lab/lab.py`.
|
|
|
|
Default fixture root:
|
|
|
|
```text
|
|
crates/rio-v2/tests/fixtures/minio-generated
|
|
```
|
|
|
|
The generated MinIO fixture data is intentionally not checked in and these tests are
|
|
ignored by default, so they are not part of automated CI runs.
|
|
|
|
To generate or expand fixtures locally, use:
|
|
|
|
```powershell
|
|
uv run python .\minio_fixture_lab\lab.py capture-matrix `
|
|
--root .\rustfs\crates\rio-v2\tests\fixtures\minio-generated `
|
|
--minio-binary .\rustfs\tmp\minio.darwin-arm64.RELEASE.2025-09-07T16-13-09Z `
|
|
--endpoint https://127.0.0.1:19000 `
|
|
--disk-count 1
|
|
```
|
|
|
|
Or point the tests at another generated root:
|
|
|
|
```powershell
|
|
$env:RUSTFS_MINIO_FIXTURE_ROOT = '.\rustfs\tmp\minio-fixture-lab-smoke'
|
|
cargo +1.96.0 test -p rustfs-rio-v2 --test minio_generated_fixtures -- --ignored
|
|
```
|
|
|
|
## Scope
|
|
|
|
The current fixture test covers the full default capture matrix:
|
|
|
|
- `sse-s3-singlepart-64k`
|
|
- `sse-s3-multipart-8m`
|
|
- `sse-kms-singlepart-64k`
|
|
- `sse-kms-multipart-8m`
|
|
- `sse-c-singlepart-64k`
|
|
- `sse-c-multipart-8m`
|
|
|
|
It checks that:
|
|
|
|
- raw `xl.meta` can be parsed through `rustfs-filemeta`
|
|
- singlepart and multipart fixture structures are recognized
|
|
- SSE-S3, SSE-KMS, and SSE-C metadata markers survive capture
|
|
- KMS key ids are derived from each fixture's own `manifest.json`, so local static-KMS runs are not tied to one hard-coded key name
|
|
- SSE-C `HEAD` responses round-trip the expected customer algorithm and customer-key MD5
|
|
|
|
These tests do not yet validate full plaintext reconstruction from MinIO-written encrypted data.
|