mirror of
https://github.com/versity/versitygw.git
synced 2026-10-22 06:12:39 +00:00
Merge pull request #2492 from versity/test/remove_skips
test: some skips removals, cleanup, possible log deletion fix
This commit is contained in:
@@ -17,14 +17,16 @@
|
||||
source ./tests/drivers/rest.sh
|
||||
|
||||
check_cors_404_content_type_header_and_bucket_name() {
|
||||
if ! check_param_count_v2 "data file" 1 $#; then
|
||||
if ! check_param_count_v2 "data file, bucket name" 2 $#; then
|
||||
return 1
|
||||
fi
|
||||
if ! check_for_header_key_and_value "$1" "Content-Type" "application/xml"; then
|
||||
local data_file="$1" bucket_name="$2"
|
||||
|
||||
if ! check_for_header_key_and_value "$data_file" "Content-Type" "application/xml"; then
|
||||
log 2 "error checking Content-Type header and value"
|
||||
return 1
|
||||
fi
|
||||
if ! check_specific_argument_name_and_value "$1"; then
|
||||
if ! check_specific_argument_name_and_value "$data_file" "BucketName" "$bucket_name"; then
|
||||
log 2 "error checking BucketName"
|
||||
return 1
|
||||
fi
|
||||
@@ -35,10 +37,11 @@ get_bucket_cors_check_404_header_and_bucket_name() {
|
||||
if ! check_param_count_v2 "bucket name" 1 $#; then
|
||||
return 1
|
||||
fi
|
||||
local bucket_name="$1"
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
argument_name="BucketName" argument_value="$1"
|
||||
if ! send_rest_go_command_expect_error_callback "404" "NoSuchCORSConfiguration" "The CORS configuration does not exist" \
|
||||
"check_cors_404_content_type_header_and_bucket_name" "-bucketName" "$1" "-query" "cors"; then
|
||||
"check_cors_404_content_type_header_and_bucket_name" "-bucketName" "$bucket_name" "-query" "cors" "--" "$bucket_name"; then
|
||||
log 2 "error sending get cors command and checking result"
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -211,20 +211,24 @@ list_check_buckets_rest_with_prefix() {
|
||||
}
|
||||
|
||||
list_buckets_check_authorization_scheme_error() {
|
||||
bad_scheme_name="AWS-HMAC-SHA25"
|
||||
if ! send_rest_go_command_expect_error_callback "400" "InvalidArgument" "Unsupported Authorization Type" "parse_and_check_authorization_data" "-authorizationScheme" "$bad_scheme_name"; then
|
||||
local bad_scheme_name="AWS-HMAC-SHA25"
|
||||
if ! send_rest_go_command_expect_error_callback "400" "InvalidArgument" "Unsupported Authorization Type" \
|
||||
"parse_and_check_authorization_data" "-authorizationScheme" "$bad_scheme_name" "--" "$bad_scheme_name"; then
|
||||
log 2 "error sending command and checking results"
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
parse_and_check_authorization_data() {
|
||||
if ! check_param_count_v2 "data file" 1 $#; then
|
||||
if ! check_param_count_v2 "data file, bad scheme name" 2 $#; then
|
||||
return 1
|
||||
fi
|
||||
local data_file="$1" bad_scheme_name="$2"
|
||||
local argument_name argument_value
|
||||
# shellcheck disable=SC2154
|
||||
log 5 "bucket list: $(cat "$1")"
|
||||
if ! argument_name=$(get_element_text "$1" "Error" "ArgumentName"); then
|
||||
log 5 "bucket list: $(cat "$data_file")"
|
||||
if ! argument_name=$(get_element_text "$data_file" "Error" "ArgumentName"); then
|
||||
log 2 "error getting argument name"
|
||||
return 1
|
||||
fi
|
||||
@@ -232,7 +236,7 @@ parse_and_check_authorization_data() {
|
||||
log 2 "expected 'Authorization', was '$argument_name'"
|
||||
return 1
|
||||
fi
|
||||
if ! argument_value=$(get_element_text "$1" "Error" "ArgumentValue"); then
|
||||
if ! argument_value=$(get_element_text "$data_file" "Error" "ArgumentValue"); then
|
||||
log 2 "error getting argument value"
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -127,12 +127,14 @@ check_for_no_upload_id() {
|
||||
if ! check_param_count_v2 "data file, unexpected upload ID, first upload ID" 3 $#; then
|
||||
return 1
|
||||
fi
|
||||
check_if_element_exists "$1" "$2" "UploadIdMarker"
|
||||
local data_file="$1" second_upload_id="$2" first_upload_id="$3"
|
||||
|
||||
check_if_element_exists "$data_file" "$second_upload_id" "UploadIdMarker"
|
||||
if [ "$?" -ne 1 ]; then
|
||||
log 2 "error checking for element, or '$2' actually exists in 'UploadIdMarker' (data: $(cat "$1"))"
|
||||
log 2 "error checking for element, or '$second_upload_id' actually exists in 'UploadIdMarker' (data: $(cat "$data_file"))"
|
||||
return 1
|
||||
fi
|
||||
if ! check_xml_element "$1" "$3" "Upload" "UploadId"; then
|
||||
if ! check_xml_element "$data_file" "$first_upload_id" "Upload" "UploadId"; then
|
||||
log 2 "error checking upload ID"
|
||||
return 1
|
||||
fi
|
||||
@@ -140,12 +142,13 @@ check_for_no_upload_id() {
|
||||
}
|
||||
|
||||
list_multipart_uploads_check_no_upload_id_in_response() {
|
||||
if ! check_param_count_v2 "bucket, upload ID query, second upload ID" 3 $#; then
|
||||
if ! check_param_count_v2 "bucket, upload ID query, first upload ID" 3 $#; then
|
||||
return 1
|
||||
fi
|
||||
local bucket="$1" second_upload_id="$2" first_upload_id="$3"
|
||||
local response
|
||||
|
||||
if ! response=$(send_rest_go_command_callback "200" "check_for_no_upload_id" "-bucketName" "$1" "-query" "uploads&max-uploads=1&upload-id-marker=$2" "--" "$2" "$3" 2>&1); then
|
||||
if ! response=$(send_rest_go_command_callback "200" "check_for_no_upload_id" "-bucketName" "$bucket" "-query" "uploads&max-uploads=1&upload-id-marker=$second_upload_id" "--" "$second_upload_id" "$first_upload_id" 2>&1); then
|
||||
log 2 "error sending multipart upload and checking for no upload ID marker in response"
|
||||
return 1
|
||||
fi
|
||||
|
||||
+22
-1
@@ -220,6 +220,19 @@ check_universal_vars() {
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [ -n "$TEST_LOG_FILE" ]; then
|
||||
local test_log_path test_file_dir
|
||||
test_log_path="$(cd "$(dirname "$TEST_LOG_FILE")" && pwd)/$(basename "$TEST_LOG_FILE")"
|
||||
test_file_dir="$(cd "$TEST_FILE_FOLDER" && pwd)"
|
||||
|
||||
case "$test_log_path" in
|
||||
"$test_file_dir"/*)
|
||||
log 1 "TEST_LOG_FILE is inside TEST_FILE_FOLDER"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
export TEST_FILE_FOLDER
|
||||
if ! init_command_log; then
|
||||
log 1 "error initializing command log"
|
||||
@@ -408,8 +421,16 @@ check_user_profile_and_add_if_needed() {
|
||||
return 0
|
||||
}
|
||||
|
||||
get_test_log_folder() {
|
||||
if [ -n "$TEST_LOG_FILE" ]; then
|
||||
dirname "$TEST_LOG_FILE"
|
||||
return 0
|
||||
fi
|
||||
printf '%s\n' "${TMPDIR:-/tmp}"
|
||||
}
|
||||
|
||||
init_command_log() {
|
||||
COMMAND_LOG="$TEST_FILE_FOLDER/command-$(uuidgen).log"
|
||||
COMMAND_LOG="$(get_test_log_folder)/command-$(uuidgen).log"
|
||||
log 5 "command log: $COMMAND_LOG"
|
||||
|
||||
export COMMAND_LOG
|
||||
|
||||
@@ -23,15 +23,11 @@ source ./tests/setup.sh
|
||||
|
||||
# tags: curl,cors,GetBucketCors,minimal-request
|
||||
@test "REST - GetCors - correct content-type, and returns bucket name" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1842"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name=$output
|
||||
local bucket_name
|
||||
|
||||
run setup_bucket_v2 "$bucket_name"
|
||||
run setup_bucket_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run get_bucket_cors_check_404_header_and_bucket_name "$bucket_name"
|
||||
assert_success
|
||||
|
||||
@@ -158,9 +158,11 @@ source ./tests/drivers/put_object/put_object_rest.sh
|
||||
|
||||
# tags: curl,DeleteBucket,PutObject
|
||||
@test "REST - DeleteBucket - BucketNotEmpty error contains bucket that is not empty" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1780"
|
||||
if [ "$RECREATE_BUCKETS" == "false" ]; then
|
||||
skip "avoid bucket deletion in static mode"
|
||||
fi
|
||||
local bucket_name test_file
|
||||
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
@@ -102,19 +102,18 @@ source ./tests/setup.sh
|
||||
|
||||
# tags: curl,GetObject,partNumber,range,Content-Range
|
||||
@test "REST - GetObject - part number 1 returns 206, Content-Range header" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/2074"
|
||||
fi
|
||||
local bucket_name file_name
|
||||
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name file_name <<< "$output"
|
||||
assert_success
|
||||
read -r bucket_name file_name <<< "$output"
|
||||
|
||||
run put_object_rest "$TEST_FILE_FOLDER/$file_name" "$bucket_name" "$file_name"
|
||||
assert_success
|
||||
run put_object_rest "$TEST_FILE_FOLDER/$file_name" "$bucket_name" "$file_name"
|
||||
assert_success
|
||||
|
||||
run send_rest_go_command_callback "206" "check_for_header_key_and_value" "-bucketName" "$bucket_name" "-objectKey" "$file_name" "-query" "partNumber=1" \
|
||||
"--" "Content-Range" "bytes 0-9/10"
|
||||
assert_success
|
||||
run send_rest_go_command_callback "206" "check_for_header_key_and_value" "-bucketName" "$bucket_name" "-objectKey" "$file_name" "-query" "partNumber=1" \
|
||||
"--" "Content-Range" "bytes 0-9/10"
|
||||
assert_success
|
||||
}
|
||||
|
||||
# tags: curl,GetObject,invalid-header,response-headers
|
||||
|
||||
@@ -55,7 +55,7 @@ export RUN_USERS=true
|
||||
# tags: curl,ListBuckets,required-headers,Authorization,invalid-header
|
||||
@test "REST - invalid authorization scheme" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1705"
|
||||
skip "https://github.com/versity/versitygw/issues/2489"
|
||||
fi
|
||||
run list_buckets_check_authorization_scheme_error
|
||||
assert_success
|
||||
@@ -223,20 +223,12 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl,invalid-method
|
||||
@test "REST - service route - invalid POST route" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1810"
|
||||
fi
|
||||
run get_file_name
|
||||
assert_success
|
||||
file_name=$output
|
||||
local bucket_name
|
||||
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
run setup_bucket_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run setup_bucket_and_add_file "$bucket_name" "$file_name"
|
||||
assert_success
|
||||
|
||||
run send_rest_go_command_expect_error_with_specific_arg_names_values "405" "MethodNotAllowed" "is not allowed" 4 "Method" "POST" "ResourceType" "SERVICE" "-method" "POST"
|
||||
assert_success
|
||||
}
|
||||
@@ -352,32 +344,24 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl,ListBuckets,required-headers,x-amz-date
|
||||
@test "REST - ListBuckets - omit date" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1934"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
local bucket_name
|
||||
|
||||
run setup_bucket_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run setup_bucket "$bucket_name"
|
||||
assert_success
|
||||
|
||||
run send_rest_go_command_expect_error "403" "AccessDenied" "AWS authentication requires a valid Date or x-amz-date header" "-omitDate"
|
||||
assert_success
|
||||
}
|
||||
|
||||
# tags: curl,ListBuckets,required-headers,x-amz-date
|
||||
@test "REST - ListBuckets - invalid date" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1934"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
local bucket_name
|
||||
|
||||
run setup_bucket_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run setup_bucket "$bucket_name"
|
||||
assert_success
|
||||
|
||||
run send_rest_go_command_expect_error "403" "AccessDenied" "AWS authentication requires a valid Date or x-amz-date header" "-customDate" "ABCDEFG"
|
||||
assert_success
|
||||
}
|
||||
|
||||
@@ -110,9 +110,8 @@ source ./tests/setup.sh
|
||||
|
||||
# tags: curl,ListMultipartUploads,multipart,uploadId
|
||||
@test "REST - ListMultipartUploads - uploadId without key should be ignored" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/2150"
|
||||
fi
|
||||
local bucket_name test_file upload_id_one upload_id_two
|
||||
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
@@ -125,16 +124,8 @@ source ./tests/setup.sh
|
||||
assert_success
|
||||
upload_id_two=$output
|
||||
|
||||
local first_upload_id second_upload_id
|
||||
if [[ "$upload_id_one" < "$upload_id_two" ]]; then
|
||||
first_upload_id="$upload_id_one"
|
||||
second_upload_id="$upload_id_two"
|
||||
else
|
||||
first_upload_id="$upload_id_two"
|
||||
second_upload_id="$upload_id_one"
|
||||
fi
|
||||
|
||||
run list_multipart_uploads_check_no_upload_id_in_response "$bucket_name" "$second_upload_id" "$first_upload_id"
|
||||
# NOTE: upload IDs are ordered by initiation time, not lexicographically, so first created is first returned
|
||||
run list_multipart_uploads_check_no_upload_id_in_response "$bucket_name" "$upload_id_two" "$upload_id_one"
|
||||
assert_success
|
||||
}
|
||||
|
||||
|
||||
@@ -87,8 +87,10 @@ source ./tests/util/util_time.sh
|
||||
|
||||
@test "ListObjectVersions - version ID marker w/o key marker" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/2174"
|
||||
skip "https://github.com/versity/versitygw/issues/1808"
|
||||
fi
|
||||
local bucket_name file_one file_two
|
||||
|
||||
run setup_bucket_and_add_files_v3 "$BUCKET_ONE_NAME" "2"
|
||||
assert_success
|
||||
read -r bucket_name file_one file_two <<< "$output"
|
||||
|
||||
@@ -88,23 +88,11 @@ source ./tests/drivers/objects_and_versions.sh
|
||||
|
||||
# tags: curl,ListObjectsV2,bucket-region,x-amz-bucket-region
|
||||
@test "REST - ListObjectsV2 - includes bucket header" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1814"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file test_file_two
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file="$output"
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file_two="$output"
|
||||
|
||||
run setup_bucket_and_add_files "$bucket_name" "$test_file" "$test_file_two"
|
||||
run setup_bucket_and_add_files_v3 "$BUCKET_ONE_NAME" 2
|
||||
assert_success
|
||||
read -r bucket_name test_file test_file_two <<< "$output"
|
||||
|
||||
run send_rest_go_command_check_header_key_and_value "200" "x-amz-bucket-region" "$AWS_REGION" "-method" "GET" \
|
||||
"-bucketName" "$bucket_name" "-query" "list-type=2"
|
||||
|
||||
+90
-121
@@ -27,17 +27,15 @@ source ./tests/util/util_public_access_block.sh
|
||||
source ./tests/util/util_time.sh
|
||||
source ./tests/drivers/get_object/get_object_rest.sh
|
||||
|
||||
test_file="test_file"
|
||||
export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, chunked, x-amz-content-sha256, content-length
|
||||
@test "REST - put object w/STREAMING-AWS4-HMAC-SHA256-PAYLOAD without content length" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_object_rest_chunked_payload_type_without_content_length "$TEST_FILE_FOLDER/$test_file" "$bucket_name" "$test_file"
|
||||
assert_success
|
||||
@@ -45,12 +43,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, content-encoding
|
||||
@test "REST - PutObject - aws-chunked kept when the payload is not chunked" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_object_rest_with_content_encoding "$TEST_FILE_FOLDER/$test_file" "$bucket_name" "$test_file" "aws-chunked"
|
||||
assert_success
|
||||
@@ -61,12 +58,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, content-encoding, x-amz-content-sha256, invalid-header
|
||||
@test "REST - PutObject - aws-chunked with UNSIGNED-PAYLOAD rejected" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_object_rest_unsigned_payload_with_aws_chunked "$TEST_FILE_FOLDER/$test_file" "$bucket_name" "$test_file"
|
||||
assert_success
|
||||
@@ -74,12 +70,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, Expires, invalid-header
|
||||
@test "REST - PutObject - invalid 'Expires' parameter" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_object_rest_check_expires_header "$TEST_FILE_FOLDER/$test_file" "$bucket_name" "$test_file"
|
||||
assert_success
|
||||
@@ -90,10 +85,16 @@ export RUN_USERS=true
|
||||
if [ "$SKIP_USERS_TESTS" == "true" ]; then
|
||||
skip "skipping versity-specific users tests"
|
||||
fi
|
||||
local bucket_name test_file username password
|
||||
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file="$output"
|
||||
|
||||
run setup_bucket_file_and_user_v2 "$bucket_name" "$test_file" "$USERNAME_ONE" "$PASSWORD_ONE" "admin"
|
||||
assert_success
|
||||
username="${lines[${#lines[@]}-2]}"
|
||||
@@ -109,10 +110,16 @@ export RUN_USERS=true
|
||||
if [ "$SKIP_USERS_TESTS" == "true" ]; then
|
||||
skip "skipping versity-specific users tests"
|
||||
fi
|
||||
local bucket_name test_file username password
|
||||
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file="$output"
|
||||
|
||||
run setup_bucket_file_and_user_v2 "$bucket_name" "$test_file" "$USERNAME_ONE" "$PASSWORD_ONE" "user"
|
||||
assert_success
|
||||
username="${lines[${#lines[@]}-2]}"
|
||||
@@ -127,12 +134,11 @@ export RUN_USERS=true
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1321"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_object_without_content_length "$bucket_name" "$test_file" "$TEST_FILE_FOLDER/$test_file"
|
||||
assert_success
|
||||
@@ -140,12 +146,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, x-amz-checksum-algorithm, checksum
|
||||
@test "REST - PutObject w/x-amz-checksum-algorithm" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_object_rest_with_unneeded_algorithm_param "$TEST_FILE_FOLDER/$test_file" "$bucket_name" "$test_file" "crc32c"
|
||||
assert_success
|
||||
@@ -153,12 +158,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, If-None-Match, not-implemented
|
||||
@test "REST - PutObject - If-None-Match - no asterisk" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_add_file "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_add_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command_expect_error "501" "NotImplemented" "not implemented" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-method" "PUT" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-signedParams" "If-None-Match:true"
|
||||
@@ -167,12 +171,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, If-None-Match
|
||||
@test "REST - PutObject - If-None-Match - block copy" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_add_file "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_add_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command_expect_error "412" "PreconditionFailed" "did not hold" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-method" "PUT" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-signedParams" "If-None-Match:*"
|
||||
@@ -181,12 +184,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, If-None-Match
|
||||
@test "REST - PutObject - If-None-Match - success" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command "200" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-method" "PUT" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-signedParams" "if-none-match:*"
|
||||
@@ -195,12 +197,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, If-Match
|
||||
@test "REST - PutObject - If-Match - file doesn't exist on server" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
send_rest_go_command_expect_error "404" "NoSuchKey" "key does not exist" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-method" "PUT" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-signedParams" "if-match:abc"
|
||||
@@ -209,12 +210,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, If-Match, ETag
|
||||
@test "REST - PutObject - If-Match - incorrect etag" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_add_file "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_add_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command_expect_error "412" "PreconditionFailed" "did not hold" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-method" "PUT" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-signedParams" "if-match:abc"
|
||||
@@ -223,12 +223,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, If-Match, ETag
|
||||
@test "REST - PutObject - If-Match - correct etag" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file etag
|
||||
|
||||
run setup_bucket_and_add_file "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_add_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run get_etag_rest "$bucket_name" "$test_file"
|
||||
assert_success
|
||||
@@ -242,15 +241,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject
|
||||
@test "PutObject - metadata keys are made lowercase" {
|
||||
uppercase_key="CAPITAL"
|
||||
uppercase_value="DUMMY"
|
||||
local uppercase_key="CAPITAL" uppercase_value="DUMMY" bucket_name test_file
|
||||
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_add_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command "200" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-method" "PUT" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-signedParams" "x-amz-meta-$uppercase_key:$uppercase_value"
|
||||
@@ -265,10 +260,16 @@ export RUN_USERS=true
|
||||
if [ "$SKIP_USERS_TESTS" == "true" ]; then
|
||||
skip "skipping versitygw-specific users tests"
|
||||
fi
|
||||
local bucket_name test_file username password
|
||||
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file="$output"
|
||||
|
||||
run setup_bucket_file_and_user_v2 "$bucket_name" "$test_file" "$USERNAME_ONE" "$PASSWORD_ONE" "admin"
|
||||
assert_success
|
||||
username="${lines[${#lines[@]}-2]}"
|
||||
@@ -280,12 +281,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, Expect
|
||||
@test "REST - PutObject - expect continue - success" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command "200" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-method" "PUT" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-signedParams" "Expect:100-continue"
|
||||
@@ -294,17 +294,16 @@ export RUN_USERS=true
|
||||
|
||||
# tags: user, curl, PutObject
|
||||
@test "REST - PutObject - invalid x-amz-request-payer" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file username password
|
||||
|
||||
run create_versitygw_acl_user_or_get_direct_user "$USERNAME_ONE" "$PASSWORD_ONE"
|
||||
assert_success
|
||||
username=${lines[2]}
|
||||
password=${lines[3]}
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_bucket_ownership_controls "$bucket_name" "BucketOwnerPreferred"
|
||||
assert_success
|
||||
@@ -324,12 +323,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, Content-Disposition
|
||||
@test "REST - PutObject - content disposition" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command "200" "-bucketName" "$bucket_name" "-objectKey" "$test_file" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
"-method" "PUT" "-contentMD5" "-signedParams" "Content-Disposition:dummy"
|
||||
@@ -341,12 +339,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, object-lock, retention, x-amz-object-lock-retain-until-date, x-amz-object-lock-mode, content-md5, invalid-header
|
||||
@test "REST - PutObject - x-amz-object-lock-retain-until-date - invalid format" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run send_rest_go_command_expect_error "400" "InvalidArgument" "must be provided in ISO 8601 format" "-bucketName" "$bucket_name" \
|
||||
"-objectKey" "$test_file" "-payloadFile" "$TEST_FILE_FOLDER/$test_file" \
|
||||
@@ -356,15 +353,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, object-lock, retention, x-amz-object-lock-retain-until-date, x-amz-object-lock-mode, content-md5, invalid-header
|
||||
@test "REST - PutObject - x-amz-object-lock-retain-until-date - earlier date" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1734"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file earlier_date
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
earlier_date="2025-12-25T12:00:00Z"
|
||||
run send_rest_go_command_expect_error_with_arg_name_value "400" "InvalidArgument" "must be in the future" \
|
||||
@@ -375,15 +368,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, object-lock, retention, x-amz-object-lock-mode, x-amz-object-lock-retain-until-date, content-md5, invalid-header
|
||||
@test "REST - PutObject - x-amz-object-lock-mode - invalid mode" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1736"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file later_date lock_mode
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run get_time_seconds_in_future 10
|
||||
assert_success
|
||||
@@ -398,12 +387,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, object-lock, retention, versioning, content-md5, invalid-header
|
||||
@test "TEST - REST - PutObject - not allowed without content-MD5 with lock configuration" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_bucket_versioning_rest "$bucket_name" "Enabled"
|
||||
assert_success
|
||||
@@ -419,12 +407,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, object-lock, retention, versioning, content-md5, x-amz-object-lock-mode, x-amz-object-lock-retain-until-date
|
||||
@test "REST - PutObject - object lock - success" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file later_date
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_bucket_versioning_rest "$bucket_name" "Enabled"
|
||||
assert_success
|
||||
@@ -445,16 +432,11 @@ export RUN_USERS=true
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "skip for versitygw - see #1904"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file="$output"
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run put_bucket_ownership_controls_rest "$bucket_name" "BucketOwnerPreferred"
|
||||
assert_success
|
||||
@@ -506,19 +488,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: curl, PutObject, object-lock, legal-hold, x-amz-object-lock-legal-hold, invalid-header
|
||||
@test "PutObject - x-amz-object-lock-legal-hold - invalid value" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/1775"
|
||||
fi
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file="$output"
|
||||
|
||||
run setup_bucket_and_file_v2 "$bucket_name" "$test_file"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
local legal_hold_value="wrong"
|
||||
run send_rest_go_command_expect_error_with_arg_name_value "400" "InvalidArgument" "Legal Hold must be either of" \
|
||||
@@ -574,16 +548,11 @@ export RUN_USERS=true
|
||||
|
||||
# tags: openssl, PutObject
|
||||
@test "REST - PutObject - openssl go non-file payload" {
|
||||
run get_bucket_name "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
bucket_name="$output"
|
||||
local bucket_name test_file later_date
|
||||
|
||||
run get_file_name
|
||||
assert_success
|
||||
test_file=$output
|
||||
|
||||
run setup_bucket_v2 "$bucket_name"
|
||||
run setup_bucket_and_file_v3 "$BUCKET_ONE_NAME"
|
||||
assert_success
|
||||
read -r bucket_name test_file <<< "$output"
|
||||
|
||||
run bash -c "tr -dc 'a-zA-Z0-9 ' < /dev/urandom | head -c 100"
|
||||
assert_success
|
||||
|
||||
@@ -68,9 +68,6 @@ teardown() {
|
||||
}
|
||||
|
||||
@test "PutBucketWebsite - XML message with empty WebsiteConfiguration struct" {
|
||||
if [ "$DIRECT" != "true" ]; then
|
||||
skip "https://github.com/versity/versitygw/issues/2260"
|
||||
fi
|
||||
local bucket_name
|
||||
|
||||
setup_versitygw_for_website
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ start_versity_process() {
|
||||
local versity_app_index="$1" command_array=("${@:2}")
|
||||
local log_file_name response process_id
|
||||
|
||||
log_file_name="${TEST_FILE_FOLDER}/versity-${TEST_ID}-${versity_app_index}-$(uuidgen)"
|
||||
log_file_name="$(get_test_log_folder)/versity-${TEST_ID}-${versity_app_index}-$(uuidgen)"
|
||||
printf -v "VERSITY_LOG_FILE_${versity_app_index}" '%s' "$log_file_name"
|
||||
export VERSITY_LOG_FILE_"${versity_app_index}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user