package basic import ( "fmt" "os" "strings" "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" fmt.Println("TestMain: Setting environment variables...") // Set AWS credentials for tests os.Setenv("AWS_ACCESS_KEY_ID", config.AccessKey) os.Setenv("AWS_SECRET_ACCESS_KEY", config.SecretKey) os.Setenv("AWS_REGION", "us-east-1") fmt.Printf("TestMain: Set AWS_ACCESS_KEY_ID=%s, AWS_SECRET_ACCESS_KEY=%s, AWS_REGION=us-east-1\n", config.AccessKey, strings.Repeat("*", len(config.SecretKey))) 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) }