Browse Source

add s3 tests for object lock and retention

pull/6997/head
chrislu 5 months ago
parent
commit
b63855560a
  1. 65
      .github/workflows/s3tests.yml

65
.github/workflows/s3tests.yml

@ -213,6 +213,71 @@ jobs:
# Clean up data directory # Clean up data directory
rm -rf "$WEED_DATA_DIR" || true rm -rf "$WEED_DATA_DIR" || true
- name: Run S3 Object Lock and Retention tests
timeout-minutes: 15
env:
S3TEST_CONF: /__w/seaweedfs/seaweedfs/docker/compose/s3tests.conf
shell: bash
run: |
cd /__w/seaweedfs/seaweedfs/weed
go install -buildvcs=false
set -x
# Create clean data directory for this test run
export WEED_DATA_DIR="/tmp/seaweedfs-objectlock-$(date +%s)"
mkdir -p "$WEED_DATA_DIR"
weed -v 0 server -filer -filer.maxMB=64 -s3 -ip.bind 0.0.0.0 \
-dir="$WEED_DATA_DIR" \
-master.raftHashicorp -master.electionTimeout 1s -master.volumeSizeLimitMB=1024 \
-volume.max=100 -volume.preStopSeconds=1 -s3.port=8000 -metricsPort=9324 \
-s3.allowEmptyFolder=false -s3.allowDeleteBucketNotEmpty=true -s3.config=../docker/compose/s3.json &
pid=$!
sleep 10
cd /s3-tests
sed -i "s/assert prefixes == \['foo%2B1\/', 'foo\/', 'quux%20ab\/'\]/assert prefixes == \['foo\/', 'foo%2B1\/', 'quux%20ab\/'\]/" s3tests_boto3/functional/test_s3.py
tox -- \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_bucket \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_enable_after_create \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_with_days_and_years \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_days \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_years \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_mode \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_status \
s3tests_boto3/functional/test_s3.py::test_object_lock_suspend_versioning \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_lock \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_lock_invalid_bucket \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_invalid_bucket \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_invalid_mode \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_retention \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_retention_iso8601 \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_retention_invalid_bucket \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_versionid \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_override_default_retention \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_increase_period \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_shorten_period \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_shorten_period_bypass \
s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_retention \
s3tests_boto3/functional/test_s3.py::test_object_lock_delete_multipart_object_with_retention \
s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_retention_and_marker \
s3tests_boto3/functional/test_s3.py::test_object_lock_multi_delete_object_with_retention \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_legal_hold \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_legal_hold_invalid_bucket \
s3tests_boto3/functional/test_s3.py::test_object_lock_put_legal_hold_invalid_status \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_legal_hold \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_legal_hold_invalid_bucket \
s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_legal_hold_on \
s3tests_boto3/functional/test_s3.py::test_object_lock_delete_multipart_object_with_legal_hold_on \
s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_legal_hold_off \
s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_metadata \
s3tests_boto3/functional/test_s3.py::test_object_lock_uploading_obj \
s3tests_boto3/functional/test_s3.py::test_object_lock_changing_mode_from_governance_with_bypass \
s3tests_boto3/functional/test_s3.py::test_object_lock_changing_mode_from_governance_without_bypass \
s3tests_boto3/functional/test_s3.py::test_object_lock_changing_mode_from_compliance
kill -9 $pid || true
# Clean up data directory
rm -rf "$WEED_DATA_DIR" || true
- name: Run SeaweedFS Custom S3 Copy tests - name: Run SeaweedFS Custom S3 Copy tests
timeout-minutes: 10 timeout-minutes: 10
shell: bash shell: bash

Loading…
Cancel
Save