ci: add S3 mutation regression coverage (#8804)

* test/s3: stabilize distributed lock regression

* ci: add S3 mutation regression workflow

* test: fix delete regression readiness probe

* test: address mutation regression review comments
This commit is contained in:
Chris Lu
2026-03-28 20:17:20 -07:00
committed by GitHub
parent 297cdef1a3
commit 0884acd70c
5 changed files with 287 additions and 25 deletions

View File

@@ -1,7 +1,7 @@
# S3 API Test Makefile
# This Makefile provides comprehensive targets for running S3 versioning tests
.PHONY: help build-weed setup-server start-server stop-server test-versioning test-versioning-quick test-versioning-comprehensive test-all clean logs check-deps
.PHONY: all test help build-weed setup-server start-server stop-server test-versioning test-versioning-quick test-versioning-regressions test-versioning-comprehensive test-all clean logs check-deps
# Configuration
WEED_BINARY := ../../../weed/weed_binary
@@ -12,6 +12,12 @@ FILER_PORT := 8888
TEST_TIMEOUT := 10m
TEST_PATTERN := TestVersioning
.DEFAULT_GOAL := help
all: test
test: test-with-server
# Default target
help:
@echo "S3 API Test Makefile"
@@ -25,6 +31,7 @@ help:
@echo " stop-server - Stop SeaweedFS server"
@echo " test-versioning - Run all versioning tests"
@echo " test-versioning-quick - Run core versioning tests only"
@echo " test-versioning-regressions - Run targeted versioning regression tests"
@echo " test-versioning-simple - Run tests without server management"
@echo " test-versioning-comprehensive - Run comprehensive versioning tests"
@echo " test-all - Run all S3 API tests"
@@ -179,6 +186,12 @@ test-versioning-quick: check-deps
@go test -v -timeout=$(TEST_TIMEOUT) -run "TestBucketListReturnDataVersioning|TestVersioningBasicWorkflow|TestVersioningDeleteMarkers" .
@echo "✅ Core versioning tests completed"
# Targeted regressions for conditional mutation, multipart, copy, and suspended delete flows.
test-versioning-regressions: check-deps
@echo "Running targeted S3 versioning regression tests..."
@go test -v -timeout=$(TEST_TIMEOUT) -run "TestVersioningCompleteMultipartUploadIsIdempotent|TestVersioningSelfCopyMetadataReplaceCreatesNewVersion|TestVersioningSelfCopyMetadataReplaceSuspendedKeepsNullVersion|TestSuspendedDeleteCreatesDeleteMarker" .
@echo "✅ Targeted versioning regression tests completed"
# All versioning tests
test-versioning: check-deps
@echo "Running all S3 versioning tests..."
@@ -348,4 +361,4 @@ compare-python-tests:
@echo "Python equivalent: test_bucket_list_return_data_versioning"
@echo ""
@echo "Running Go version..."
@time go test -v -run "TestBucketListReturnDataVersioning" . 2>&1 | grep -E "(PASS|FAIL|took)"
@time go test -v -run "TestBucketListReturnDataVersioning" . 2>&1 | grep -E "(PASS|FAIL|took)"