diff --git a/tests/setup.sh b/tests/setup.sh index 8aa22bd4..88208d3f 100644 --- a/tests/setup.sh +++ b/tests/setup.sh @@ -148,10 +148,10 @@ teardown() { log 4 "********** BEGIN TEARDOWN **********" if [ "$DELETE_BUCKETS_AFTER_TEST" != "false" ]; then log 5 "deleting or clearing buckets" - if ! bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME"; then + if ! bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME"; then log 3 "error deleting bucket $BUCKET_ONE_NAME or contents" fi - if ! bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_TWO_NAME"; then + if ! bucket_cleanup_if_bucket_exists "$BUCKET_TWO_NAME"; then log 3 "error deleting bucket $BUCKET_TWO_NAME or contents" fi fi diff --git a/tests/setup_static.sh b/tests/setup_static.sh index 90e491b5..293e0b9b 100755 --- a/tests/setup_static.sh +++ b/tests/setup_static.sh @@ -14,36 +14,36 @@ # specific language governing permissions and limitations # under the License. +source ./tests/drivers/drivers.sh source ./tests/env.sh source ./tests/util/util_object.sh source ./tests/commands/create_bucket.sh create_bucket_if_not_exists() { - if [[ $# -ne 2 ]]; then - log 2 "create_bucket_if_not_exists command missing command type, name" + if ! check_param_count "create_bucket_if_not_exists" "bucket name" 1 $#; then return 1 fi - bucket_exists "$1" "$2" || local exists_result=$? + bucket_exists "$1" || local exists_result=$? if [[ $exists_result -eq 2 ]]; then log 2 "error checking if bucket exists" return 1 fi if [[ $exists_result -eq 0 ]]; then - echo "bucket '$2' already exists, skipping" + echo "bucket '$1' already exists, skipping" return 0 fi - if ! create_bucket_object_lock_enabled "$2"; then + if ! create_bucket_object_lock_enabled "$1"; then log 2 "error creating bucket" return 1 fi - echo "bucket '$2' successfully created" + echo "bucket '$1' successfully created" return 0 } base_setup -if ! create_bucket_if_not_exists "s3api" "$BUCKET_ONE_NAME"; then +if ! create_bucket_if_not_exists "$BUCKET_ONE_NAME"; then log 2 "error creating static bucket one" -elif ! create_bucket_if_not_exists "s3api" "$BUCKET_TWO_NAME"; then +elif ! create_bucket_if_not_exists "$BUCKET_TWO_NAME"; then log 2 "error creating static bucket two" fi diff --git a/tests/test_common.sh b/tests/test_common.sh index 9a8ba864..b8ae1321 100644 --- a/tests/test_common.sh +++ b/tests/test_common.sh @@ -64,9 +64,6 @@ test_common_multipart_upload() { run download_and_compare_file "$1" "$TEST_FILE_FOLDER/$bucket_file" "$BUCKET_ONE_NAME" "$bucket_file" "$TEST_FILE_FOLDER/$bucket_file-copy" assert_success - - bucket_cleanup "$1" "$BUCKET_ONE_NAME" - delete_test_files $bucket_file } # common test for creating, deleting buckets @@ -80,13 +77,13 @@ test_common_create_delete_bucket() { run check_param_count "test_common_create_delete_bucket" "client type" 1 "$#" assert_success - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME" assert_success run create_bucket "$1" "$BUCKET_ONE_NAME" assert_success - run bucket_exists "$1" "$BUCKET_ONE_NAME" + run bucket_exists "$BUCKET_ONE_NAME" assert_success run delete_bucket "$1" "$BUCKET_ONE_NAME" diff --git a/tests/test_common_acl.sh b/tests/test_common_acl.sh index d57a8b05..98100e58 100644 --- a/tests/test_common_acl.sh +++ b/tests/test_common_acl.sh @@ -14,6 +14,11 @@ # specific language governing permissions and limitations # under the License. +if [ "$SKIP_ACL_TESTING" == "true" ]; then + skip "Skipping ACL tests" + exit 0 +fi + test_put_bucket_acl_s3cmd() { if [ "$DIRECT" != "true" ]; then skip "https://github.com/versity/versitygw/issues/963" diff --git a/tests/test_rest.sh b/tests/test_rest.sh index b2d9de69..3f0e9bd5 100755 --- a/tests/test_rest.sh +++ b/tests/test_rest.sh @@ -111,10 +111,10 @@ test_file="test_file" test_key="TestKey" test_value="TestValue" - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME" assert_success # in static bucket config, bucket will still exist - if ! bucket_exists "rest" "$BUCKET_ONE_NAME"; then + if ! bucket_exists "$BUCKET_ONE_NAME"; then run create_bucket_object_lock_enabled "$BUCKET_ONE_NAME" assert_success fi @@ -388,11 +388,11 @@ test_file="test_file" if [ "$RECREATE_BUCKETS" == "false" ] || [[ ( -z "$VERSIONING_DIR" ) && ( "$DIRECT" != "true" ) ]]; then skip "test isn't valid for this configuration" fi - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME" assert_success # in static bucket config, bucket will still exist - if ! bucket_exists "rest" "$BUCKET_ONE_NAME"; then + if ! bucket_exists "$BUCKET_ONE_NAME"; then run create_bucket_object_lock_enabled "$BUCKET_ONE_NAME" assert_success fi @@ -414,11 +414,11 @@ test_file="test_file" if [ "$RECREATE_BUCKETS" == "false" ] || [[ ( -z "$VERSIONING_DIR" ) && ( "$DIRECT" != "true" ) ]]; then skip "test isn't valid for this configuration" fi - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME" assert_success # in static bucket config, bucket will still exist - if ! bucket_exists "rest" "$BUCKET_ONE_NAME"; then + if ! bucket_exists "$BUCKET_ONE_NAME"; then run create_bucket_object_lock_enabled "$BUCKET_ONE_NAME" assert_success fi diff --git a/tests/test_rest_acl.sh b/tests/test_rest_acl.sh index a7888f65..f6ebe06f 100755 --- a/tests/test_rest_acl.sh +++ b/tests/test_rest_acl.sh @@ -26,6 +26,11 @@ source ./tests/util/util_setup.sh export RUN_USERS=true +if [ "$SKIP_ACL_TESTING" == "true" ]; then + skip "Skipping ACL tests" + exit 0 +fi + @test "REST - get ACL" { run setup_bucket "$BUCKET_ONE_NAME" assert_success diff --git a/tests/test_rest_bucket.sh b/tests/test_rest_bucket.sh index 732d3a57..42e926a8 100755 --- a/tests/test_rest_bucket.sh +++ b/tests/test_rest_bucket.sh @@ -90,11 +90,11 @@ source ./tests/util/util_tags.sh run check_no_object_lock_config_rest "$BUCKET_ONE_NAME" assert_success - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME" assert_success # in static bucket config, bucket will still exist - if ! bucket_exists "rest" "$BUCKET_ONE_NAME"; then + if ! bucket_exists "$BUCKET_ONE_NAME"; then run create_bucket_object_lock_enabled "$BUCKET_ONE_NAME" assert_success fi diff --git a/tests/test_s3api_bucket.sh b/tests/test_s3api_bucket.sh index 4af046c2..5dffaf74 100755 --- a/tests/test_s3api_bucket.sh +++ b/tests/test_s3api_bucket.sh @@ -108,6 +108,9 @@ export RUN_USERS=true if [ "$RECREATE_BUCKETS" == "false" ]; then skip "skip test for static buckets" fi + run bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME" + assert_success + run bucket_info_without_bucket assert_success } diff --git a/tests/test_s3api_root_inner.sh b/tests/test_s3api_root_inner.sh index 5b32576d..df971b69 100755 --- a/tests/test_s3api_root_inner.sh +++ b/tests/test_s3api_root_inner.sh @@ -215,7 +215,7 @@ test_retention_bypass_s3api_root() { legal_hold_retention_setup() { assert [ $# -eq 3 ] - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME" assert_success run setup_user "$1" "$2" "user" diff --git a/tests/test_user_common.sh b/tests/test_user_common.sh index 003b8f3a..2fd4c619 100755 --- a/tests/test_user_common.sh +++ b/tests/test_user_common.sh @@ -42,7 +42,7 @@ test_admin_user() { assert_success if [ "$RECREATE_BUCKETS" == "true" ]; then - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_TWO_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_TWO_NAME" assert_success run create_bucket_with_user "s3api" "$BUCKET_TWO_NAME" "$admin_username" "$admin_password" assert_success @@ -85,7 +85,7 @@ test_user_user() { assert_success if [ "$RECREATE_BUCKETS" == "true" ]; then - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_TWO_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_TWO_NAME" assert_success run create_bucket "s3api" "$BUCKET_TWO_NAME" assert_success @@ -113,7 +113,7 @@ test_userplus_operation() { assert_success if [ "$RECREATE_BUCKETS" == "true" ]; then - run bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_TWO_NAME" + run bucket_cleanup_if_bucket_exists "$BUCKET_TWO_NAME" assert_success run create_bucket_with_user "s3api" "$BUCKET_TWO_NAME" "$username" "$password" assert_success diff --git a/tests/util/util_bucket.sh b/tests/util/util_bucket.sh index 28633175..16daed6c 100644 --- a/tests/util/util_bucket.sh +++ b/tests/util/util_bucket.sh @@ -11,38 +11,14 @@ source ./tests/util/util_retention.sh # fail if error delete_bucket_recursive() { log 6 "delete_bucket_recursive" - if [ $# -ne 2 ]; then - log 2 "'delete_bucket_recursive' requires client, bucket name" + if ! check_param_count "delete_bucket_recursive" "bucket name" 1 $#; then return 1 fi - local exit_code=0 - local error - if [[ $1 == 's3' ]]; then - error=$(aws --no-verify-ssl s3 rb s3://"$2" --force 2>&1) || exit_code="$?" - elif [[ $1 == 's3api' ]]; then - if ! delete_bucket_recursive_s3api "$2"; then - log 2 "error deleting bucket recursively (s3api)" - return 1 - fi - return 0 - elif [[ $1 == "s3cmd" ]]; then - error=$(s3cmd "${S3CMD_OPTS[@]}" --no-check-certificate rb s3://"$2" --recursive 2>&1) || exit_code="$?" - elif [[ $1 == "mc" ]]; then - error=$(delete_bucket_recursive_mc "$2" 2>&1) || exit_code="$?" - else - log 2 "invalid client '$1'" + if ! delete_bucket_recursive_s3api "$1"; then + log 2 "error deleting bucket recursively (s3api)" return 1 fi - - if [ $exit_code -ne 0 ]; then - if [[ "$error" == *"The specified bucket does not exist"* ]]; then - return 0 - else - log 2 "error deleting bucket recursively: $error" - return 1 - fi - fi return 0 } @@ -75,7 +51,7 @@ clear_bucket_s3api() { return 1 fi - if ! check_ownership_rule_and_reset_acl "$1"; then + if [ "$SKIP_ACL_TESTING" != "true" ] && ! check_ownership_rule_and_reset_acl "$1"; then log 2 "error checking ownership rule and resetting acl" return 1 fi @@ -117,26 +93,12 @@ delete_bucket_recursive_s3api() { # return 0 on success, 1 on error delete_bucket_contents() { log 6 "delete_bucket_contents" - if [ $# -ne 2 ]; then - log 2 "'delete_bucket_contents' requires client, bucket name" + if ! check_param_count "delete_bucket_contents" "bucket name" 1 $#; then return 1 fi - local exit_code=0 - local error - if [[ $1 == 's3api' ]]; then - if ! clear_bucket_s3api "$2"; then - log 2 "error clearing bucket (s3api)" - return 1 - fi - elif [[ $1 == "s3cmd" ]]; then - delete_bucket_recursive "s3cmd" "$1" - elif [[ $1 == "mc" ]]; then - delete_bucket_recursive "mc" "$1" - elif [[ $1 == "s3" ]]; then - delete_bucket_recursive "s3" "$1" - else - log 2 "unrecognized client: '$1'" + if ! clear_bucket_s3api "$1"; then + log 2 "error clearing bucket (s3api)" return 1 fi return 0 @@ -146,12 +108,11 @@ delete_bucket_contents() { # param: bucket name # return 0 for true, 1 for false, 2 for error bucket_exists() { - if [ $# -ne 2 ]; then - log 2 "bucket_exists command requires client, bucket name" + if ! check_param_count "bucket_exists" "bucket name" 1 $#; then return 2 fi local exists=0 - head_bucket "$1" "$2" || exists=$? + head_bucket "s3api" "$1" || exists=$? # shellcheck disable=SC2181 if [ $exists -eq 2 ]; then log 2 "unexpected error checking if bucket exists" @@ -169,7 +130,7 @@ direct_wait_for_bucket() { return 1 fi bucket_verification_start_time=$(date +%s) - while ! bucket_exists "s3api" "$1"; do + while ! bucket_exists "$1"; do bucket_verification_end_time=$(date +%s) if [ $((bucket_verification_end_time-bucket_verification_start_time)) -ge 60 ]; then log 2 "bucket existence check timeout" @@ -184,32 +145,31 @@ direct_wait_for_bucket() { # return 0 for success, 1 for error bucket_cleanup() { log 6 "bucket_cleanup" - if [ $# -ne 2 ]; then - log 2 "'bucket_cleanup' requires client, bucket name" + if ! check_param_count "bucket_cleanup" "bucket name" 1 $#; then return 1 fi if [[ $RECREATE_BUCKETS == "false" ]]; then - if ! delete_bucket_contents "$1" "$2"; then + if ! delete_bucket_contents "$1"; then log 2 "error deleting bucket contents" return 1 fi - if ! delete_bucket_policy "$1" "$2"; then + if ! delete_bucket_policy "s3api" "$1"; then log 2 "error deleting bucket policy" return 1 fi - if ! get_object_ownership_rule_and_update_acl "$2"; then + if ! get_object_ownership_rule_and_update_acl "$1"; then log 2 "error getting object ownership rule and updating ACL" return 1 fi - if ! abort_all_multipart_uploads "$2"; then + if ! abort_all_multipart_uploads "$1"; then log 2 "error aborting all multipart uploads" return 1 fi - if [ "$RUN_USERS" == "true" ] && ! reset_bucket_owner "$2"; then + if [ "$RUN_USERS" == "true" ] && ! reset_bucket_owner "$1"; then log 2 "error resetting bucket owner" return 1 fi @@ -217,7 +177,7 @@ bucket_cleanup() { log 5 "bucket contents, policy, ACL deletion success" return 0 fi - if ! delete_bucket_recursive "$1" "$2"; then + if ! delete_bucket_recursive "$1"; then log 2 "error with recursive bucket delete" return 1 fi @@ -229,13 +189,12 @@ bucket_cleanup() { # return 0 for success, 1 for error bucket_cleanup_if_bucket_exists() { log 6 "bucket_cleanup_if_bucket_exists" - if [ $# -lt 2 ]; then - log 2 "'bucket_cleanup_if_bucket_exists' requires client, bucket name, bucket known to exist (optional)" + if ! check_param_count_gt "bucket_cleanup_if_bucket_exists" "bucket name, bucket known to exist (optional)" 1 $#; then return 1 fi - if [ "$3" == "true" ] || bucket_exists "$1" "$2"; then - if ! bucket_cleanup "$1" "$2"; then + if [ "$2" == "true" ] || bucket_exists "$1"; then + if ! bucket_cleanup "$1"; then log 2 "error deleting bucket and/or contents" return 1 fi @@ -269,7 +228,7 @@ setup_bucket() { fi bucket_exists="true" - if ! bucket_exists "s3api" "$1"; then + if ! bucket_exists "$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 @@ -277,7 +236,7 @@ setup_bucket() { bucket_exists="false" fi - if ! bucket_cleanup_if_bucket_exists "s3api" "$1" "$bucket_exists"; then + if ! bucket_cleanup_if_bucket_exists "$1" "$bucket_exists"; then log 2 "error deleting bucket or contents if they exist" return 1 fi @@ -299,7 +258,7 @@ setup_bucket() { if [[ $1 == "s3cmd" ]]; then log 5 "putting bucket ownership controls" - if bucket_exists "s3cmd" "$1" && ! put_bucket_ownership_controls "$1" "BucketOwnerPreferred"; then + if bucket_exists "$1" && ! put_bucket_ownership_controls "$1" "BucketOwnerPreferred"; then log 2 "error putting bucket ownership controls" return 1 fi diff --git a/tests/util/util_multipart.sh b/tests/util/util_multipart.sh index aa0c8929..185784c7 100644 --- a/tests/util/util_multipart.sh +++ b/tests/util/util_multipart.sh @@ -330,12 +330,12 @@ setup_multipart_upload_with_params() { return 1 fi - if ! bucket_cleanup_if_bucket_exists "s3api" "$BUCKET_ONE_NAME"; then + if ! bucket_cleanup_if_bucket_exists "$BUCKET_ONE_NAME"; then log 2 "error cleaning up bucket" return 1 fi # in static bucket config, bucket will still exist - if ! bucket_exists "s3api" "$BUCKET_ONE_NAME"; then + if ! bucket_exists "$BUCKET_ONE_NAME"; then if ! create_bucket_object_lock_enabled "$BUCKET_ONE_NAME"; then log 2 "error creating bucket with object lock enabled" return 1 diff --git a/tests/util/util_setup.sh b/tests/util/util_setup.sh index 560c80c4..52de37a7 100644 --- a/tests/util/util_setup.sh +++ b/tests/util/util_setup.sh @@ -83,13 +83,13 @@ setup_bucket_object_lock_enabled() { log 2 "'setup_bucket_object_lock_enabled' requires bucket name" return 1 fi - if ! bucket_cleanup_if_bucket_exists "s3api" "$1"; then + if ! bucket_cleanup_if_bucket_exists "$1"; then log 2 "error cleaning up bucket" return 1 fi # in static bucket config, bucket will still exist - if ! bucket_exists "rest" "$1"; then + if ! bucket_exists "$1"; then if ! create_bucket_object_lock_enabled "$1"; then log 2 "error creating bucket with object lock enabled" return 1 diff --git a/tests/versity.sh b/tests/versity.sh index f1621bfc..2b38c390 100644 --- a/tests/versity.sh +++ b/tests/versity.sh @@ -150,7 +150,7 @@ run_versity_app() { if [[ $IAM_TYPE != "s3" ]]; then return 0 fi - if bucket_exists "s3api" "$USERS_BUCKET"; then + if bucket_exists "$USERS_BUCKET"; then return 0 fi if ! create_bucket "s3api" "$USERS_BUCKET"; then