Files
rustfs/docs/testing/e2e-suite-inventory.md
T
Zhengchao An a825326ede test(e2e): fold seven identical POST-policy exact-mismatch tests into one table (#6016)
* test(e2e): fold seven identical POST-policy exact-mismatch tests into one table

The seven *_policy_mismatch tests in multipart_auth_test.rs were body-identical after literal normalization: the policy pins one field to an exact value, the form sends a different value, and the upload must be rejected with 400 InvalidPolicyDocument naming the field. Each test booted its own full server.

They fold into one table-driven test on the run_post_object_policy_case helper introduced by the PR1 fold. Every row keeps its original test's exact bucket, key, field name, policy value, mismatched form value, body bytes, and expected error strings — including the three rows that asserted the stronger <Code>InvalidPolicyDocument</Code> form. The pinned condition is built with an explicit serde_json::Map since the field name is now a table parameter.

cargo nextest list reports 97 tests for this module; the inventory row is updated in the same diff (103 -> 97).

Ref rustfs/backlog#1838 (PR2).

* test(e2e): fold the remaining POST-policy duplicate groups (15 tests) (#6018)

Completes the multipart_auth table-driven fold: the six remaining body-identical groups collapse onto the shared run_post_object_policy_case helper.

- Seven single-field exact-mismatch tests (cache-control, expires, tagging, storage-class, content-type, success_action_status, metadata-field-exact) join the existing exact-condition mismatch table as rows — same shape as the PR2 fold.
- The two object-lock mismatch tests become a two-row table (policy pins mode + retain-until-date, one form field mismatches).
- The three SSE-KMS parameter mismatch tests become a three-row table (policy pins the SSE mode plus one KMS parameter, form differs).
- The three SSE-KMS outside-policy tests become a three-row table pinning the distinct contract: an undeclared KMS parameter sails past policy validation and is rejected at runtime with 501 NotImplemented, not a policy error.

Every row keeps its original test's exact bucket, key, field names, values, body bytes, and expected status/code strings. cargo nextest list reports 85 tests for the module; the inventory row is updated in the same diff (97 -> 85).

Ref rustfs/backlog#1838 (PR3).
2026-08-12 20:18:36 +00:00

3.9 KiB

e2e_test suite inventory

Authoritative per-module test counts for the e2e_test crate (backlog#1149 ci-4), generated from cargo nextest list -p e2e_test. Regenerate with:

cargo nextest list -p e2e_test --message-format json | jq -r '.["rust-suites"][]?.testcases | to_entries[] | select(.value.ignored == false) | .key | split("::")[0]' | sort | uniq -c

Modules marked are in the PR smoke profile e2e-smoke (.config/nextest.toml); admission criteria: crates/e2e_test/README.md. 🌙 marks tests in the scheduled e2e-repl-nightly profile (backlog#1147 repl-1): replication_extension_test splits 20 fast tests into the PR smoke lane and 28 slow / _real_dual_node / _real_three_node / _real_single_node tests into the nightly lane (.github/workflows/e2e-replication-nightly.yml). Note: counts exclude #[ignore]d tests (nextest lists them separately). Managed-SSE (SSE-S3/SSE-KMS) replication contracts assert successful re-encryption on the target (backlog#1783); SSE-C replication still pins a fail-closed FAILED contract until ciphertext passthrough lands.

module tests PR smoke
admin_auth_test 4
admin_iam_crud_test 2
admin_pools_test 1
admin_timeout_regression_test 1
anonymous_access_test 4
api_rate_limit_test 3
archive_download_integrity_test 13
bucket_logging_test 3
bucket_policy_check_test 1
checksum_upload_test 7
cluster_concurrency_test 2
cluster_multidrive_pool_test 2
common 12
compression_test 1
connection_cap_test 2
console_smoke_test 1
content_encoding_test 3
copy_object_checksum_test 7
copy_object_metadata_test 4
copy_object_tagging_test 2
copy_object_version_restore_test 2
copy_source_invalid_date_test 1
create_bucket_region_test 2
degraded_read_eof_regression_test 3
delete_marker_migration_semantics_test 2
delete_object_no_content_length_test 1
delete_objects_versioning_test 2
existing_object_tag_policy_test 4
fake_s3_target 4
fault_proxy 7
get_codec_streaming_compat_test 1
head_object_consistency_test 1
head_object_range_test 1
heal_erasure_disk_rebuild_test 3
inline_fast_path_cluster_test 14
internode_rpc_signature_e2e_test 5
kms 41
leading_slash_key_test 2
list_buckets_double_slash_test 3
list_object_versions_metadata_extension_test 1
list_object_versions_regression_test 2
list_objects_duplicates_test 3
list_objects_v2_metadata_extension_test 1
list_objects_v2_pagination_test 12
mc_mirror_small_bucket_test 1
multipart_auth_test 85
multipart_storage_class_test 3
namespace_lock_quorum_test 2
negative_sigv4_test 6
notification_webhook_test 3
object_lambda_test 16
object_lock 33
overwrite_cleanup_regression_test 1
presigned_negative_test 7
protocols 16
quota_test 14
reliability_disk_fault_test 3
reliant 24 18
replication_extension_test 50 20 +30 🌙
security_boundary_test 4
ssec_copy_test 2
server_startup_failfast_test 1
snowball_auto_extract_test 6
special_chars_test 14
stale_multipart_cleanup_cluster_test 1
storage_class_capability_test 4
sts_query_compat_test 3
tls_gen 3
tls_hot_reload_test 1
version_id_regression_test 10

Total listed: 530 tests across 70 modules · PR smoke subset: 148 tests / 33 modules (31 full modules + 18 reliant tests + 20 of replication_extension_test) · nightly e2e-repl-nightly: 30 tests · updated 2026-08-09.