Browse Source
feat: add weed mini TestMain support to all S3 integration tests
feat: add weed mini TestMain support to all S3 integration tests
- Added s3_test_main.go with auto-managed weed mini server to: - acl, basic, copying, cors, delete, etag, filer_group, iam - remote_cache, retention, sse, tagging (12 additional test suites) - All tests now support automatic server lifecycle management via TestMain - Backward compatible with USE_EXTERNAL_SERVER=true for CI pipelines - No changes required to existing test files - All 13 S3 test suites now use consistent weed mini infrastructure This enables: - Tests to run independently with self-managed server - Simplified CI/CD pipelines - Reduced infrastructure complexity - Consistent test infrastructure across all S3 testsfeature/modernize-s3-tests
12 changed files with 504 additions and 0 deletions
-
42test/s3/acl/s3_test_main.go
-
42test/s3/basic/s3_test_main.go
-
42test/s3/copying/s3_test_main.go
-
42test/s3/cors/s3_test_main.go
-
42test/s3/delete/s3_test_main.go
-
42test/s3/etag/s3_test_main.go
-
42test/s3/filer_group/s3_test_main.go
-
42test/s3/iam/s3_test_main.go
-
42test/s3/remote_cache/s3_test_main.go
-
42test/s3/retention/s3_test_main.go
-
42test/s3/sse/s3_test_main.go
-
42test/s3/tagging/s3_test_main.go
@ -0,0 +1,42 @@ |
|||||
|
package acl |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package basic |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package copying_test |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package cors |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package delete |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package s3api |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package filer_group |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package iam |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package remote_cache |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package retention |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package sse_test |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
@ -0,0 +1,42 @@ |
|||||
|
package tagging |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"os" |
||||
|
"testing" |
||||
|
|
||||
|
"github.com/seaweedfs/seaweedfs/test/s3/testutil" |
||||
|
) |
||||
|
|
||||
|
var testServer *testutil.TestServer |
||||
|
|
||||
|
// TestMain sets up and tears down the test environment using weed mini
|
||||
|
func TestMain(m *testing.M) { |
||||
|
var exitCode int |
||||
|
|
||||
|
fmt.Println("TestMain: Starting test setup...") |
||||
|
|
||||
|
// Check if we should manage the server or use an existing one
|
||||
|
if os.Getenv("USE_EXTERNAL_SERVER") != "true" { |
||||
|
// Start server using weed mini
|
||||
|
fmt.Println("TestMain: Starting weed mini server...") |
||||
|
config := testutil.DefaultServerConfig(nil) |
||||
|
config.AccessKey = "some_access_key1" |
||||
|
config.SecretKey = "some_secret_key1" |
||||
|
|
||||
|
var err error |
||||
|
testServer, err = testutil.StartServer(config) |
||||
|
if err != nil { |
||||
|
fmt.Printf("TestMain: ERROR - Failed to start test server: %v\n", err) |
||||
|
os.Exit(1) |
||||
|
} |
||||
|
fmt.Println("TestMain: Server started successfully") |
||||
|
defer testServer.Stop() |
||||
|
} |
||||
|
|
||||
|
// Run tests
|
||||
|
fmt.Println("TestMain: Running tests...") |
||||
|
exitCode = m.Run() |
||||
|
fmt.Printf("TestMain: Tests completed with exit code %d\n", exitCode) |
||||
|
os.Exit(exitCode) |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue