From 9ef7ee8254ec7a5e0707c3fb75e4b3d9feb137a1 Mon Sep 17 00:00:00 2001 From: Luke McCrone Date: Fri, 9 May 2025 10:24:59 -0300 Subject: [PATCH] test: remove parameter from setup_bucket --- tests/drivers/drivers.sh | 39 ++++++++++++++ tests/test_common.sh | 89 +++++++++++++++++-------------- tests/test_common_acl.sh | 5 +- tests/test_mc.sh | 6 +-- tests/test_rest.sh | 10 ++-- tests/test_rest_acl.sh | 4 +- tests/test_rest_bucket.sh | 12 ++--- tests/test_rest_chunked.sh | 12 ++--- tests/test_rest_versioning.sh | 2 +- tests/test_s3.sh | 6 ++- tests/test_s3api_bucket.sh | 4 +- tests/test_s3api_multipart.sh | 8 +-- tests/test_s3api_object.sh | 4 +- tests/test_s3api_policy_bucket.sh | 12 ++--- tests/test_s3api_policy_object.sh | 2 +- tests/test_s3api_root_inner.sh | 4 +- tests/test_s3cmd.sh | 6 +-- tests/test_user_common.sh | 4 +- tests/util/util_bucket.sh | 23 ++++---- tests/util/util_chunked_upload.sh | 6 +-- tests/util/util_setup.sh | 6 +-- 21 files changed, 159 insertions(+), 105 deletions(-) create mode 100644 tests/drivers/drivers.sh diff --git a/tests/drivers/drivers.sh b/tests/drivers/drivers.sh new file mode 100644 index 00000000..e333c9b2 --- /dev/null +++ b/tests/drivers/drivers.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Copyright 2024 Versity Software +# This file is licensed under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http:#www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +check_param_count() { + if [ $# -ne 4 ]; then + log 2 "'check_param_count' requires function name, params list, expected, actual" + return 1 + fi + if [ "$3" -ne "$4" ]; then + log 2 "function $1 requires $2" + return 1 + fi + return 0 +} + +check_param_count_gt() { + if [ $# -ne 4 ]; then + log 2 "'check_param_count_gt' requires function name, params list, expected minimum, actual" + return 1 + fi + if [ "$3" -gt "$4" ]; then + log 2 "function $1 requires $2" + return 1 + fi + return 0 +} diff --git a/tests/test_common.sh b/tests/test_common.sh index 116afd5d..9a8ba864 100644 --- a/tests/test_common.sh +++ b/tests/test_common.sh @@ -37,11 +37,13 @@ source ./tests/commands/put_bucket_tagging.sh source ./tests/commands/put_object_tagging.sh source ./tests/commands/put_object.sh source ./tests/commands/put_public_access_block.sh +source ./tests/drivers/drivers.sh # param: command type # fail on test failure test_common_multipart_upload() { - assert [ $# -eq 1 ] + run check_param_count "test_common_multipart_upload" "client type" 1 "$#" + assert_success bucket_file="largefile" run setup_bucket_and_large_file "$BUCKET_ONE_NAME" "$bucket_file" @@ -75,28 +77,31 @@ test_common_create_delete_bucket() { return fi - assert [ $# -eq 1 ] + run check_param_count "test_common_create_delete_bucket" "client type" 1 "$#" + assert_success - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME" + assert_success + + run create_bucket "$1" "$BUCKET_ONE_NAME" assert_success run bucket_exists "$1" "$BUCKET_ONE_NAME" assert_success - run bucket_cleanup "$1" "$BUCKET_ONE_NAME" + run delete_bucket "$1" "$BUCKET_ONE_NAME" assert_success } test_common_copy_object() { - if [[ $# -ne 1 ]]; then - fail "copy object test requires command type" - fi + run check_param_count "test_common_copy_object" "client type" 1 "$#" + assert_success local object_name="test-object" run create_test_file "$object_name" assert_success - run setup_buckets "$1" "$BUCKET_ONE_NAME" "$BUCKET_TWO_NAME" + run setup_buckets "$BUCKET_ONE_NAME" "$BUCKET_TWO_NAME" assert_success if [[ $1 == 's3' ]]; then @@ -120,7 +125,8 @@ test_common_copy_object() { # param: client # fail on error test_common_put_object_with_data() { - assert [ $# -eq 1 ] + run check_param_count "test_common_put_object_with_data" "client type" 1 "$#" + assert_success local object_name="test-object" run create_test_file "$object_name" @@ -132,7 +138,8 @@ test_common_put_object_with_data() { # param: client # fail on error test_common_put_object_no_data() { - assert [ $# -eq 1 ] + run check_param_count "test_common_put_object_no_data" "client type" 1 "$#" + assert_success local object_name="test-object" run create_test_file "$object_name" 0 @@ -144,9 +151,10 @@ test_common_put_object_no_data() { # params: client, filename # fail on test failure test_common_put_object() { - assert [ $# -eq 2 ] + run check_param_count "test_common_put_object" "client type, file" 2 "$#" + assert_success - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success # s3 erases file locally, so we need to copy it first @@ -174,9 +182,8 @@ test_common_put_object() { } test_common_put_get_object() { - if [[ $# -ne 1 ]]; then - fail "put, get object test requires client" - fi + run check_param_count "test_common_put_get_object" "client type" 1 "$#" + assert_success local object_name="test-object" run setup_bucket_and_file "$BUCKET_ONE_NAME" "$object_name" @@ -200,11 +207,10 @@ test_common_put_get_object() { # param: "aws" or "s3cmd" # pass if buckets are properly listed, fail if not test_common_list_buckets() { - if [[ $# -ne 1 ]]; then - fail "List buckets test requires one argument" - fi + run check_param_count "test_common_list_buckets" "client type" 1 "$#" + assert_success - run setup_buckets "$1" "$BUCKET_ONE_NAME" "$BUCKET_TWO_NAME" + run setup_buckets "$BUCKET_ONE_NAME" "$BUCKET_TWO_NAME" assert_success run list_and_check_buckets "$1" "$BUCKET_ONE_NAME" "$BUCKET_TWO_NAME" @@ -212,10 +218,8 @@ test_common_list_buckets() { } test_common_list_objects() { - if [[ $# -ne 1 ]]; then - log 2 "common test function for listing objects requires command type" - return 1 - fi + run check_param_count "test_common_list_objects" "client type" 1 "$#" + assert_success object_one="test-file-one" object_two="test-file-two" @@ -233,12 +237,13 @@ test_common_list_objects() { } test_common_set_get_delete_bucket_tags() { - assert [ $# -eq 1 ] + run check_param_count "test_common_set_get_delete_bucket_tags" "client type" 1 "$#" + assert_success local key="test_key" local value="test_value" - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run verify_no_bucket_tags "$1" "$BUCKET_ONE_NAME" @@ -258,7 +263,8 @@ test_common_set_get_delete_bucket_tags() { } test_common_set_get_object_tags() { - assert [ $# -eq 1 ] + run check_param_count "test_common_set_get_object_tags" "client type" 1 "$#" + assert_success local bucket_file="bucket-file" local key="test_key" @@ -281,10 +287,8 @@ test_common_set_get_object_tags() { } test_common_presigned_url_utf8_chars() { - if [[ $# -ne 1 ]]; then - log 2 "presigned url command missing command type" - return 1 - fi + run check_param_count "test_common_presigned_url_utf8_chars" "client type" 1 "$#" + assert_success local bucket_file="my-$%^&*;" local bucket_file_copy="bucket-file-copy" @@ -294,7 +298,7 @@ test_common_presigned_url_utf8_chars() { run dd if=/dev/urandom of="$TEST_FILE_FOLDER/$bucket_file" bs=5M count=1 assert_success - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run put_object "$1" "$TEST_FILE_FOLDER"/"$bucket_file" "$BUCKET_ONE_NAME" "$bucket_file" @@ -308,12 +312,13 @@ test_common_presigned_url_utf8_chars() { } test_common_list_objects_file_count() { - assert [ $# -eq 1 ] + run check_param_count "test_common_list_objects_file_count" "client type" 1 "$#" + assert_success run create_test_file_count 1001 assert_success - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run put_object_multiple "$1" "$TEST_FILE_FOLDER/file_*" "$BUCKET_ONE_NAME" @@ -324,7 +329,8 @@ test_common_list_objects_file_count() { } test_common_delete_object_tagging() { - [[ $# -eq 1 ]] || fail "test common delete object tagging requires command type" + run check_param_count "test_common_delete_object_tagging" "client type" 1 "$#" + assert_success bucket_file="bucket_file" tag_key="key" @@ -350,9 +356,10 @@ test_common_delete_object_tagging() { } test_common_get_bucket_location() { - assert [ $# -eq 1 ] + run check_param_count "test_common_get_bucket_location" "client type" 1 "$#" + assert_success - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run get_check_bucket_location "$1" "$BUCKET_ONE_NAME" @@ -360,7 +367,8 @@ test_common_get_bucket_location() { } test_common_get_put_delete_bucket_policy() { - assert [ $# -eq 1 ] + run check_param_count "test_common_get_put_delete_bucket_policy" "client type" 1 "$#" + assert_success policy_file="policy_file" @@ -376,7 +384,7 @@ test_common_get_put_delete_bucket_policy() { assert_success log 5 "POLICY: $(cat "$TEST_FILE_FOLDER/$policy_file")" - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run check_for_empty_policy "$1" "$BUCKET_ONE_NAME" @@ -396,12 +404,15 @@ test_common_get_put_delete_bucket_policy() { } test_common_ls_directory_object() { + run check_param_count "test_common_ls_directory_object" "client type" 1 "$#" + assert_success + test_file="a" run create_test_file "$test_file" 0 assert_success - run setup_bucket "$1" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success if [ "$1" == 's3cmd' ]; then diff --git a/tests/test_common_acl.sh b/tests/test_common_acl.sh index 7569abf2..d57a8b05 100644 --- a/tests/test_common_acl.sh +++ b/tests/test_common_acl.sh @@ -19,7 +19,7 @@ test_put_bucket_acl_s3cmd() { skip "https://github.com/versity/versitygw/issues/963" fi - run setup_bucket "s3cmd" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success username=$USERNAME_ONE @@ -54,7 +54,8 @@ get_grantee_type_and_id() { } test_common_put_bucket_acl() { - assert [ $# -eq 1 ] + run check_param_count "test_common_put_bucket_acl" "client type" 1 "$#" + assert_success run setup_bucket_and_user "$BUCKET_ONE_NAME" "$USERNAME_ONE" "$PASSWORD_ONE" "user" assert_success diff --git a/tests/test_mc.sh b/tests/test_mc.sh index 71a323d4..9213942d 100755 --- a/tests/test_mc.sh +++ b/tests/test_mc.sh @@ -48,7 +48,7 @@ export RUN_MC=true if [[ $RECREATE_BUCKETS == "false" ]]; then skip "will not test bucket deletion in static bucket test config" fi - run setup_bucket "mc" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run delete_bucket "mc" "$BUCKET_ONE_NAME" @@ -125,7 +125,7 @@ export RUN_MC=true } @test "test_get_bucket_info_mc" { - run setup_bucket "mc" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run bucket_info_contains_bucket "mc" "$BUCKET_ONE_NAME" @@ -133,7 +133,7 @@ export RUN_MC=true } @test "test_get_bucket_info_doesnt_exist_mc" { - run setup_bucket "mc" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run head_bucket "mc" "$BUCKET_ONE_NAME"a diff --git a/tests/test_rest.sh b/tests/test_rest.sh index 296c1574..b2d9de69 100755 --- a/tests/test_rest.sh +++ b/tests/test_rest.sh @@ -146,7 +146,7 @@ test_file="test_file" } @test "REST - multipart upload create then abort" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run create_abort_multipart_upload_rest "$BUCKET_ONE_NAME" "$test_file" @@ -212,7 +212,7 @@ test_file="test_file" skip "https://github.com/versity/versitygw/issues/959" fi - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run get_and_check_no_policy_error "$BUCKET_ONE_NAME" @@ -220,7 +220,7 @@ test_file="test_file" } @test "REST - put policy" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run setup_user_versitygw_or_direct "$USERNAME_ONE" "$PASSWORD_ONE" "user" "$BUCKET_ONE_NAME" @@ -269,7 +269,7 @@ test_file="test_file" skip "https://github.com/versity/versitygw/issues/999" fi test_file_two="test_file_2" - run setup_bucket "s3api" "$BUCKET_ONE_NAME" "$test_file" "$test_file_two" + run setup_bucket_and_files "s3api" "$BUCKET_ONE_NAME" "$test_file" "$test_file_two" assert_success run put_object "rest" "$TEST_FILE_FOLDER/$test_file" "$BUCKET_ONE_NAME" "$test_file" @@ -342,7 +342,7 @@ test_file="test_file" if [ "$DIRECT" != "true" ]; then skip "https://github.com/versity/versitygw/issues/1040" fi - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run delete_objects_no_content_md5_header "$BUCKET_ONE_NAME" diff --git a/tests/test_rest_acl.sh b/tests/test_rest_acl.sh index b83226f5..a7888f65 100755 --- a/tests/test_rest_acl.sh +++ b/tests/test_rest_acl.sh @@ -27,7 +27,7 @@ source ./tests/util/util_setup.sh export RUN_USERS=true @test "REST - get ACL" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run get_and_check_acl_rest "$BUCKET_ONE_NAME" @@ -105,7 +105,7 @@ export RUN_USERS=true if [ "$DIRECT" != "true" ]; then skip "https://github.com/versity/versitygw/issues/986" fi - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run put_bucket_ownership_controls "$BUCKET_ONE_NAME" "BucketOwnerPreferred" diff --git a/tests/test_rest_bucket.sh b/tests/test_rest_bucket.sh index 2acdb1da..732d3a57 100755 --- a/tests/test_rest_bucket.sh +++ b/tests/test_rest_bucket.sh @@ -30,7 +30,7 @@ source ./tests/util/util_rest.sh source ./tests/util/util_tags.sh @test "REST - HeadBucket" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run head_bucket_rest "$BUCKET_ONE_NAME" @@ -43,7 +43,7 @@ source ./tests/util/util_tags.sh } @test "REST - bucket tagging - no tags" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run verify_no_bucket_tags_rest "$BUCKET_ONE_NAME" @@ -54,7 +54,7 @@ source ./tests/util/util_tags.sh test_key="testKey" test_value="testValue" - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run add_verify_bucket_tags_rest "$BUCKET_ONE_NAME" "$test_key" "$test_value" @@ -62,7 +62,7 @@ source ./tests/util/util_tags.sh } @test "test_rest_list_buckets" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run list_check_buckets_rest @@ -70,7 +70,7 @@ source ./tests/util/util_tags.sh } @test "REST - get, put bucket ownership controls" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run get_and_check_ownership_controls "$BUCKET_ONE_NAME" "BucketOwnerEnforced" @@ -84,7 +84,7 @@ source ./tests/util/util_tags.sh } @test "test_rest_set_get_lock_config" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run check_no_object_lock_config_rest "$BUCKET_ONE_NAME" diff --git a/tests/test_rest_chunked.sh b/tests/test_rest_chunked.sh index ec82fd9b..52e83177 100755 --- a/tests/test_rest_chunked.sh +++ b/tests/test_rest_chunked.sh @@ -35,7 +35,7 @@ source ./tests/util/util_setup.sh } @test "REST - chunked upload, signature error" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success test_file="test-file" @@ -50,7 +50,7 @@ source ./tests/util/util_setup.sh if [ "$DIRECT" != "true" ]; then skip "https://github.com/versity/versitygw/issues/1147" fi - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success test_file="test-file" @@ -62,7 +62,7 @@ source ./tests/util/util_setup.sh } @test "REST - chunked upload, success (file with just a's)" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success test_file="test-file" @@ -77,7 +77,7 @@ source ./tests/util/util_setup.sh } @test "REST - chunked upload, success (null bytes)" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success test_file="test-file" @@ -92,7 +92,7 @@ source ./tests/util/util_setup.sh } @test "REST - chunked upload, success (random bytes)" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success test_file="test-file" @@ -107,7 +107,7 @@ source ./tests/util/util_setup.sh } @test "REST - chunked upload, success (zero-byte file)" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success test_file="test-file" diff --git a/tests/test_rest_versioning.sh b/tests/test_rest_versioning.sh index e72aca74..511fced8 100755 --- a/tests/test_rest_versioning.sh +++ b/tests/test_rest_versioning.sh @@ -26,7 +26,7 @@ source ./tests/util/util_setup.sh test_file="test_file" @test "REST - check, enable, suspend versioning" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success log 5 "get versioning" diff --git a/tests/test_s3.sh b/tests/test_s3.sh index 6af6bf18..e78d368c 100755 --- a/tests/test_s3.sh +++ b/tests/test_s3.sh @@ -58,7 +58,11 @@ source ./tests/util/util_file.sh if [[ $RECREATE_BUCKETS == "false" ]]; then skip "will not test bucket deletion in static bucket test config" fi - run setup_bucket "s3" "$BUCKET_ONE_NAME" + + run setup_bucket "$BUCKET_ONE_NAME" + assert_success + + run delete_bucket "s3" "$BUCKET_ONE_NAME" assert_success } diff --git a/tests/test_s3api_bucket.sh b/tests/test_s3api_bucket.sh index d966f843..4af046c2 100755 --- a/tests/test_s3api_bucket.sh +++ b/tests/test_s3api_bucket.sh @@ -80,7 +80,7 @@ export RUN_USERS=true # get-bucket-acl @test "test_get_bucket_acl" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run get_bucket_acl_and_check_owner "s3api" "$BUCKET_ONE_NAME" @@ -97,7 +97,7 @@ export RUN_USERS=true # get-bucket-tagging - test_set_get_delete_bucket_tags @test "test_head_bucket" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run check_for_empty_region "$BUCKET_ONE_NAME" diff --git a/tests/test_s3api_multipart.sh b/tests/test_s3api_multipart.sh index b6ca4a7d..4e3851f1 100755 --- a/tests/test_s3api_multipart.sh +++ b/tests/test_s3api_multipart.sh @@ -38,7 +38,7 @@ export RUN_USERS=true run dd if=/dev/urandom of="$TEST_FILE_FOLDER/$bucket_file" bs=5M count=1 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run run_then_abort_multipart_upload "$BUCKET_ONE_NAME" "$bucket_file" "$TEST_FILE_FOLDER"/"$bucket_file" 4 @@ -54,7 +54,7 @@ export RUN_USERS=true run dd if=/dev/urandom of="$TEST_FILE_FOLDER/$bucket_file" bs=20M count=1 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run multipart_upload "$BUCKET_ONE_NAME" "$bucket_file" "$TEST_FILE_FOLDER"/"$bucket_file" 4 @@ -111,7 +111,7 @@ export RUN_USERS=true run dd if=/dev/urandom of="$TEST_FILE_FOLDER/$bucket_file" bs=20M count=1 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run multipart_upload_from_bucket "$BUCKET_ONE_NAME" "$bucket_file" "$TEST_FILE_FOLDER"/"$bucket_file" 4 @@ -145,7 +145,7 @@ export RUN_USERS=true run dd if=/dev/urandom of="$TEST_FILE_FOLDER/$bucket_file" bs=5M count=1 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run start_multipart_upload_list_check_parts "$BUCKET_ONE_NAME" "$bucket_file" "$TEST_FILE_FOLDER"/"$bucket_file" diff --git a/tests/test_s3api_object.sh b/tests/test_s3api_object.sh index a4ce7cc5..826dfa32 100755 --- a/tests/test_s3api_object.sh +++ b/tests/test_s3api_object.sh @@ -247,7 +247,7 @@ export RUN_USERS=true run create_test_file "$test_file" 0 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run put_object "s3api" "$TEST_FILE_FOLDER/$test_file" "$BUCKET_ONE_NAME" "$test_file" @@ -258,7 +258,7 @@ export RUN_USERS=true } @test "directory object - create multipart upload" { - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run create_multipart_upload "$BUCKET_ONE_NAME" "test_file/" diff --git a/tests/test_s3api_policy_bucket.sh b/tests/test_s3api_policy_bucket.sh index 182a88c8..1d514e78 100644 --- a/tests/test_s3api_policy_bucket.sh +++ b/tests/test_s3api_policy_bucket.sh @@ -23,7 +23,7 @@ test_s3api_policy_delete_bucket_policy() { run create_test_file "$policy_file" 0 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run setup_user_v2 "user" 1 "$BUCKET_ONE_NAME" @@ -58,7 +58,7 @@ test_s3api_policy_get_bucket_acl() { run create_test_file "$policy_file" 0 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run setup_user_v2 "user" 1 "$BUCKET_ONE_NAME" @@ -91,7 +91,7 @@ test_s3api_policy_get_bucket_policy() { run create_test_file "$policy_file" assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run setup_user_v2 "user" 1 "$BUCKET_ONE_NAME" @@ -127,7 +127,7 @@ test_s3api_policy_get_bucket_tagging() { run create_test_files "$policy_file" assert_success "error creating test files" - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run setup_user_v2 "user" 1 "$BUCKET_ONE_NAME" @@ -197,7 +197,7 @@ test_s3api_policy_put_bucket_policy() { run create_test_file "$policy_file" 0 assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run setup_user_v2 "user" 1 "$BUCKET_ONE_NAME" @@ -237,7 +237,7 @@ test_s3api_policy_put_bucket_tagging() { run create_test_files "$policy_file" assert_success "error creating test files" - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success "error setting up bucket" run setup_user_v2 "user" 1 "$BUCKET_ONE_NAME" diff --git a/tests/test_s3api_policy_object.sh b/tests/test_s3api_policy_object.sh index 2339b313..f8f7e47c 100644 --- a/tests/test_s3api_policy_object.sh +++ b/tests/test_s3api_policy_object.sh @@ -287,7 +287,7 @@ test_s3api_policy_invalid_action() { run setup_policy_with_single_statement "$TEST_FILE_FOLDER/$policy_file" "2012-10-17" "$effect" "$principal" "$action" "$resource" assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run check_for_empty_policy "s3api" "$BUCKET_ONE_NAME" diff --git a/tests/test_s3api_root_inner.sh b/tests/test_s3api_root_inner.sh index af1ac220..5b32576d 100755 --- a/tests/test_s3api_root_inner.sh +++ b/tests/test_s3api_root_inner.sh @@ -51,7 +51,7 @@ test_get_object_full_range_s3api_root() { bucket_file="bucket_file" echo -n "0123456789" > "$TEST_FILE_FOLDER/$bucket_file" - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run put_object "s3api" "$TEST_FILE_FOLDER/$bucket_file" "$BUCKET_ONE_NAME" "$bucket_file" @@ -81,7 +81,7 @@ test_put_object_s3api_root() { run create_test_files "$bucket_file" assert_success - run setup_buckets "s3api" "$BUCKET_ONE_NAME" "$BUCKET_TWO_NAME" + run setup_buckets "$BUCKET_ONE_NAME" "$BUCKET_TWO_NAME" assert_success run put_object "s3api" "$TEST_FILE_FOLDER/$bucket_file" "$BUCKET_ONE_NAME" "$bucket_file" diff --git a/tests/test_s3cmd.sh b/tests/test_s3cmd.sh index 72406dbb..0bd71cf8 100755 --- a/tests/test_s3cmd.sh +++ b/tests/test_s3cmd.sh @@ -101,7 +101,7 @@ export RUN_USERS=true if [ "$DIRECT" != "true" ]; then skip "https://github.com/versity/versitygw/issues/1154" fi - run setup_bucket "s3cmd" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run put_public_access_block_enable_public_acls "$BUCKET_ONE_NAME" @@ -122,7 +122,7 @@ export RUN_USERS=true #} @test "test_get_bucket_info_s3cmd" { - run setup_bucket "s3cmd" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run head_bucket "s3cmd" "$BUCKET_ONE_NAME" @@ -131,7 +131,7 @@ export RUN_USERS=true } @test "test_get_bucket_info_doesnt_exist_s3cmd" { - run setup_bucket "s3cmd" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success run head_bucket "s3cmd" "$BUCKET_ONE_NAME"a diff --git a/tests/test_user_common.sh b/tests/test_user_common.sh index 0eef563f..003b8f3a 100755 --- a/tests/test_user_common.sh +++ b/tests/test_user_common.sh @@ -38,7 +38,7 @@ test_admin_user() { run create_user_with_user "$admin_username" "$admin_password" "$user_username" "$user_password" "user" assert_success - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success if [ "$RECREATE_BUCKETS" == "true" ]; then @@ -81,7 +81,7 @@ test_user_user() { password="${lines[2]}" log 5 "username: $username, password: $password" - run setup_bucket "s3api" "$BUCKET_ONE_NAME" + run setup_bucket "$BUCKET_ONE_NAME" assert_success if [ "$RECREATE_BUCKETS" == "true" ]; then diff --git a/tests/util/util_bucket.sh b/tests/util/util_bucket.sh index b7c9fed2..28633175 100644 --- a/tests/util/util_bucket.sh +++ b/tests/util/util_bucket.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash +source ./tests/drivers/drivers.sh source ./tests/util/util_acl.sh source ./tests/util/util_multipart_abort.sh source ./tests/util/util_policy.sh @@ -247,12 +248,11 @@ bucket_cleanup_if_bucket_exists() { # params: client, bucket name(s) # return 0 for success, 1 for failure setup_buckets() { - if [ $# -lt 2 ]; then - log 2 "'setup_buckets' command requires client, bucket names" + if ! check_param_count_gt "setup_buckets" "minimum of 1 bucket name" 1 $#; then return 1 fi - for name in "${@:2}"; do - if ! setup_bucket "$1" "$name"; then + for name in "$@"; do + if ! setup_bucket "$name"; then log 2 "error setting up bucket $name" return 1 fi @@ -264,13 +264,12 @@ setup_buckets() { # return 0 on successful setup, 1 on error setup_bucket() { log 6 "setup_bucket" - if [ $# -ne 2 ]; then - log 2 "'setup_bucket' requires client, bucket name" + if ! check_param_count "setup_bucket" "bucket name" 1 $#; then return 1 fi bucket_exists="true" - if ! bucket_exists "$1" "$2"; then + if ! bucket_exists "s3api" "$1"; then if [[ $RECREATE_BUCKETS == "false" ]]; then log 2 "When RECREATE_BUCKETS isn't set to \"true\", buckets should be pre-created by user" return 1 @@ -278,14 +277,14 @@ setup_bucket() { bucket_exists="false" fi - if ! bucket_cleanup_if_bucket_exists "$1" "$2" "$bucket_exists"; then + if ! bucket_cleanup_if_bucket_exists "s3api" "$1" "$bucket_exists"; then log 2 "error deleting bucket or contents if they exist" return 1 fi - log 5 "util.setup_bucket: command type: $1, bucket name: $2" + log 5 "util.setup_bucket: bucket name: $1" if [[ $RECREATE_BUCKETS == "true" ]]; then - if ! create_bucket "$1" "$2"; then + if ! create_bucket "s3api" "$1"; then log 2 "error creating bucket" return 1 fi @@ -294,13 +293,13 @@ setup_bucket() { fi # bucket creation and resets take longer to propagate in direct mode - if [ "$DIRECT" == "true" ] && ! direct_wait_for_bucket "$2"; then + if [ "$DIRECT" == "true" ] && ! direct_wait_for_bucket "$1"; then return 1 fi if [[ $1 == "s3cmd" ]]; then log 5 "putting bucket ownership controls" - if bucket_exists "s3cmd" "$2" && ! put_bucket_ownership_controls "$2" "BucketOwnerPreferred"; then + if bucket_exists "s3cmd" "$1" && ! put_bucket_ownership_controls "$1" "BucketOwnerPreferred"; then log 2 "error putting bucket ownership controls" return 1 fi diff --git a/tests/util/util_chunked_upload.sh b/tests/util/util_chunked_upload.sh index 38bd14ce..b650d705 100644 --- a/tests/util/util_chunked_upload.sh +++ b/tests/util/util_chunked_upload.sh @@ -186,7 +186,7 @@ chunked_upload_trailer_success() { log 2 "'chunked_upload_trailer_success' requires checksum" return 1 fi - if ! setup_bucket "s3api" "$BUCKET_ONE_NAME"; then + if ! setup_bucket "$BUCKET_ONE_NAME"; then log 2 "error setting up bucket" return 1 fi @@ -211,7 +211,7 @@ chunked_upload_trailer_invalid_checksum() { log 2 "'chunked_upload_trailer_invalid_checksum' requires checksum" return 1 fi - if ! setup_bucket "s3api" "$BUCKET_ONE_NAME"; then + if ! setup_bucket "$BUCKET_ONE_NAME"; then log 2 "error setting up bucket" return 1 fi @@ -243,7 +243,7 @@ chunked_upload_trailer_incorrect_checksum() { log 2 "'chunked_upload_trailer_invalid_checksum' requires checksum" return 1 fi - if ! setup_bucket "s3api" "$BUCKET_ONE_NAME"; then + if ! setup_bucket "$BUCKET_ONE_NAME"; then log 2 "error setting up bucket" return 1 fi diff --git a/tests/util/util_setup.sh b/tests/util/util_setup.sh index 6c58e9e2..560c80c4 100644 --- a/tests/util/util_setup.sh +++ b/tests/util/util_setup.sh @@ -17,7 +17,7 @@ setup_bucket_and_files() { log 2 "'setup_bucket_and_files' requires bucket name, file names" return 1 fi - if ! setup_bucket "s3api" "$1"; then + if ! setup_bucket "$1"; then log 2 "error setting up bucket" return 1 fi @@ -33,7 +33,7 @@ setup_bucket_and_large_file() { log 2 "'setup_bucket_and_large_file' requires bucket name, file name" return 1 fi - if ! setup_bucket "s3api" "$1"; then + if ! setup_bucket "$1"; then log 2 "error setting up bucket" return 1 fi @@ -49,7 +49,7 @@ setup_bucket_and_user() { log 2 "'setup_bucket_and_user' requires bucket name, username, password, user type" return 1 fi - if ! setup_bucket "s3api" "$1"; then + if ! setup_bucket "$1"; then log 2 "error setting up bucket" return 1 fi