mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-05 12:57:42 +00:00
215 lines
7.0 KiB
Plaintext
215 lines
7.0 KiB
Plaintext
# Implemented S3 feature tests
|
|
# ============================
|
|
#
|
|
# These tests SHOULD PASS on RustFS for standard S3 API compatibility.
|
|
# Run these tests to verify RustFS S3 compatibility.
|
|
#
|
|
# Covered operations:
|
|
# - Bucket: Create, Delete, List, Head, GetLocation
|
|
# - Object: Put, Get, Delete, Copy, Head
|
|
# - ListObjects/ListObjectsV2: prefix, delimiter, marker, maxkeys
|
|
# - Multipart Upload: Create, Upload, Complete, Abort, List
|
|
# - Tagging: Bucket and Object tags
|
|
# - Bucket Policy: Put, Get, Delete
|
|
# - Public Access Block: Put, Get, Delete
|
|
# - Presigned URLs: GET and PUT operations
|
|
# - Range requests: Partial object retrieval
|
|
# - Metadata: User-defined metadata
|
|
# - Conditional GET: If-Match, If-None-Match, If-Modified-Since
|
|
#
|
|
# - SSE-C: Server-side encryption with customer-provided keys
|
|
# - Object ownership: Bucket ownership controls
|
|
#
|
|
# Total: 174 tests
|
|
|
|
test_basic_key_count
|
|
test_bucket_create_naming_bad_short_one
|
|
test_bucket_create_naming_bad_short_two
|
|
test_bucket_create_naming_bad_starts_nonalpha
|
|
test_bucket_create_naming_dns_dash_at_end
|
|
test_bucket_create_naming_dns_dash_dot
|
|
test_bucket_create_naming_dns_dot_dash
|
|
test_bucket_create_naming_dns_dot_dot
|
|
test_bucket_create_naming_dns_underscore
|
|
test_bucket_create_naming_good_contains_hyphen
|
|
test_bucket_create_naming_good_contains_period
|
|
test_bucket_create_naming_good_long_60
|
|
test_bucket_create_naming_good_long_61
|
|
test_bucket_create_naming_good_long_62
|
|
test_bucket_create_naming_good_long_63
|
|
test_bucket_create_naming_good_starts_alpha
|
|
test_bucket_create_naming_good_starts_digit
|
|
test_bucket_delete_nonempty
|
|
test_bucket_delete_notexist
|
|
test_bucket_head
|
|
test_bucket_head_notexist
|
|
test_bucket_list_distinct
|
|
test_bucket_list_empty
|
|
test_bucket_list_long_name
|
|
test_bucket_list_marker_after_list
|
|
test_bucket_list_marker_empty
|
|
test_bucket_list_marker_none
|
|
test_bucket_list_marker_not_in_list
|
|
test_bucket_list_marker_unreadable
|
|
test_bucket_list_maxkeys_invalid
|
|
test_bucket_list_maxkeys_none
|
|
test_bucket_list_maxkeys_zero
|
|
test_bucket_list_prefix_alt
|
|
test_bucket_list_prefix_basic
|
|
test_bucket_list_prefix_delimiter_alt
|
|
test_bucket_list_prefix_delimiter_basic
|
|
test_bucket_list_prefix_delimiter_delimiter_not_exist
|
|
test_bucket_list_prefix_delimiter_prefix_delimiter_not_exist
|
|
test_bucket_list_prefix_delimiter_prefix_not_exist
|
|
test_bucket_list_prefix_empty
|
|
test_bucket_list_prefix_none
|
|
test_bucket_list_prefix_not_exist
|
|
test_bucket_list_prefix_unreadable
|
|
test_bucket_list_special_prefix
|
|
test_bucket_list_delimiter_basic
|
|
test_bucket_list_delimiter_alt
|
|
test_bucket_list_delimiter_dot
|
|
test_bucket_list_delimiter_empty
|
|
test_bucket_list_delimiter_none
|
|
test_bucket_list_delimiter_not_exist
|
|
test_bucket_list_delimiter_percentage
|
|
test_bucket_list_delimiter_prefix_ends_with_delimiter
|
|
test_bucket_list_delimiter_unreadable
|
|
test_bucket_list_delimiter_whitespace
|
|
test_bucket_listv2_continuationtoken
|
|
test_bucket_listv2_continuationtoken_empty
|
|
test_bucket_listv2_fetchowner_defaultempty
|
|
test_bucket_listv2_fetchowner_empty
|
|
test_bucket_listv2_fetchowner_notempty
|
|
test_bucket_listv2_maxkeys_none
|
|
test_bucket_listv2_maxkeys_zero
|
|
test_bucket_listv2_prefix_alt
|
|
test_bucket_listv2_prefix_basic
|
|
test_bucket_listv2_prefix_delimiter_alt
|
|
test_bucket_listv2_prefix_delimiter_basic
|
|
test_bucket_listv2_prefix_delimiter_delimiter_not_exist
|
|
test_bucket_listv2_prefix_delimiter_prefix_delimiter_not_exist
|
|
test_bucket_listv2_prefix_delimiter_prefix_not_exist
|
|
test_bucket_listv2_prefix_empty
|
|
test_bucket_listv2_prefix_none
|
|
test_bucket_listv2_prefix_not_exist
|
|
test_bucket_listv2_prefix_unreadable
|
|
test_bucket_listv2_startafter_after_list
|
|
test_bucket_listv2_startafter_not_in_list
|
|
test_bucket_listv2_startafter_unreadable
|
|
test_bucket_notexist
|
|
test_buckets_create_then_list
|
|
test_buckets_list_ctime
|
|
test_bucketv2_notexist
|
|
test_bucketv2_policy_another_bucket
|
|
test_get_bucket_policy_status
|
|
test_get_nonpublicpolicy_principal_bucket_policy_status
|
|
test_get_public_acl_bucket_policy_status
|
|
test_get_authpublic_acl_bucket_policy_status
|
|
test_get_publicpolicy_acl_bucket_policy_status
|
|
test_get_nonpublicpolicy_acl_bucket_policy_status
|
|
test_block_public_put_bucket_acls
|
|
test_block_public_object_canned_acls
|
|
test_ignore_public_acls
|
|
test_set_get_del_bucket_policy
|
|
test_get_object_ifmatch_good
|
|
test_get_object_ifmodifiedsince_good
|
|
test_get_object_ifunmodifiedsince_failed
|
|
test_list_buckets_bad_auth
|
|
test_multi_object_delete
|
|
test_multi_object_delete_key_limit
|
|
test_multi_objectv2_delete
|
|
test_multi_objectv2_delete_key_limit
|
|
test_multipart_copy_without_range
|
|
test_multipart_upload_empty
|
|
test_multipart_upload_incorrect_etag
|
|
test_multipart_upload_missing_part
|
|
test_multipart_upload_multiple_sizes
|
|
test_multipart_upload_on_a_bucket_with_policy
|
|
test_multipart_upload_overwrite_existing_object
|
|
test_multipart_upload_size_too_small
|
|
test_object_copy_bucket_not_found
|
|
test_object_copy_key_not_found
|
|
test_object_copy_not_owned_object_bucket
|
|
test_object_head_zero_bytes
|
|
test_get_obj_head_tagging
|
|
test_object_metadata_replaced_on_put
|
|
test_object_put_authenticated
|
|
test_object_read_not_exist
|
|
test_object_set_get_metadata_none_to_empty
|
|
test_object_set_get_metadata_none_to_good
|
|
test_object_set_get_metadata_overwrite_to_empty
|
|
test_object_write_cache_control
|
|
test_object_write_check_etag
|
|
test_object_write_expires
|
|
test_object_write_file
|
|
test_object_write_read_update_read_delete
|
|
test_object_write_to_nonexist_bucket
|
|
test_put_max_kvsize_tags
|
|
test_ranged_request_empty_object
|
|
test_ranged_request_invalid_range
|
|
test_set_multipart_tagging
|
|
test_upload_part_copy_percent_encoded_key
|
|
test_api_error_from_storage_error_mappings
|
|
test_get_object_torrent
|
|
|
|
# Object attributes
|
|
test_get_checksum_object_attributes
|
|
|
|
# SSE-C encryption tests
|
|
test_encryption_sse_c_method_head
|
|
test_encryption_sse_c_present
|
|
test_encryption_sse_c_other_key
|
|
|
|
# ListObjectsV2 delimiter and encoding tests
|
|
test_bucket_list_encoding_basic
|
|
test_bucket_listv2_delimiter_alt
|
|
test_bucket_listv2_delimiter_basic
|
|
test_bucket_listv2_delimiter_dot
|
|
test_bucket_listv2_delimiter_empty
|
|
test_bucket_listv2_delimiter_none
|
|
test_bucket_listv2_delimiter_not_exist
|
|
test_bucket_listv2_delimiter_percentage
|
|
test_bucket_listv2_delimiter_prefix_ends_with_delimiter
|
|
test_bucket_listv2_delimiter_unreadable
|
|
test_bucket_listv2_delimiter_whitespace
|
|
test_bucket_listv2_encoding_basic
|
|
|
|
# Multipart and tagging tests
|
|
test_abort_multipart_upload
|
|
test_multipart_resend_first_finishes_last
|
|
test_set_bucket_tagging
|
|
test_put_excess_key_tags
|
|
test_put_excess_tags
|
|
test_put_excess_val_tags
|
|
|
|
# PublicAccessBlock tests
|
|
test_put_get_delete_public_block
|
|
test_put_public_block
|
|
test_block_public_policy
|
|
test_block_public_policy_with_principal
|
|
test_get_public_block_deny_bucket_policy
|
|
test_get_undefined_public_block
|
|
|
|
# Bucket policy tests
|
|
test_bucketv2_policy
|
|
test_bucket_policy_acl
|
|
test_bucketv2_policy_acl
|
|
test_bucket_policy_another_bucket
|
|
test_bucket_policy_allow_notprincipal
|
|
test_bucket_policy_put_obj_acl
|
|
test_object_presigned_put_object_with_acl
|
|
test_object_put_acl_mtime
|
|
|
|
# Object ownership
|
|
test_create_bucket_no_ownership_controls
|
|
|
|
# Bucket encryption
|
|
test_put_bucket_encryption_kms
|
|
test_put_bucket_encryption_s3
|
|
test_get_bucket_encryption_kms
|
|
test_get_bucket_encryption_s3
|
|
test_delete_bucket_encryption_kms
|
|
test_delete_bucket_encryption_s3
|
|
test_lifecycle_expiration_days0
|