@@ -13,13 +13,18 @@ import (
1313 "testing"
1414)
1515
16+ type s3TestSetup struct {
17+ name string
18+ factory workspaceFactory
19+ testingID string
20+ provider * s3Provider
21+ }
22+
1623var (
1724 directoryFactory workspaceFactory
18- s3Factory workspaceFactory
1925 directoryTestingID string
20- s3TestingID string
2126 dirPrv workspaceClient
22- s3Prv * s3Provider
27+ s3TestSetups [] s3TestSetup
2328 skipS3Tests = os .Getenv ("WORKSPACE_PROVIDER_S3_BUCKET" ) == ""
2429)
2530
@@ -29,12 +34,31 @@ func TestMain(m *testing.M) {
2934 dirPrv , _ = directoryFactory .New (directoryTestingID )
3035
3136 if ! skipS3Tests {
32- s3Factory , _ = newS3 (context .Background (), os .Getenv ("WORKSPACE_PROVIDER_S3_BUCKET" ), os .Getenv ("WORKSPACE_PROVIDER_S3_BASE_ENDPOINT" ), os .Getenv ("WORKSPACE_PROVIDER_S3_USE_PATH_STYLE" ) == "true" )
33- // This won't ever error because it doesn't create anything.
34- s3TestingID = s3Factory .Create ()
37+ if os .Getenv ("WORKSPACE_PROVIDER_S3_USE_PATH_STYLE" ) != "true" {
38+ s3Factory , _ := newS3 (context .Background (), os .Getenv ("WORKSPACE_PROVIDER_S3_BUCKET" ), os .Getenv ("WORKSPACE_PROVIDER_S3_BASE_ENDPOINT" ), false )
39+ // This won't ever error because it doesn't create anything.
40+ s3TestingID := s3Factory .Create ()
41+
42+ s3Client , _ := s3Factory .New (s3TestingID )
43+ s3Prv := s3Client .(* s3Provider )
44+ s3TestSetups = append (s3TestSetups , s3TestSetup {
45+ name : "default" ,
46+ factory : s3Factory ,
47+ testingID : s3TestingID ,
48+ provider : s3Prv ,
49+ })
50+ }
51+
52+ s3PathStyleFactory , _ := newS3 (context .Background (), os .Getenv ("WORKSPACE_PROVIDER_S3_BUCKET" ), os .Getenv ("WORKSPACE_PROVIDER_S3_BASE_ENDPOINT" ), true )
53+ s3PathStyleTestingID := s3PathStyleFactory .Create ()
54+ s3PathStyleClient , _ := s3PathStyleFactory .New (s3PathStyleTestingID )
55+ s3TestSetups = append (s3TestSetups , s3TestSetup {
56+ name : "use-path-style" ,
57+ factory : s3PathStyleFactory ,
58+ testingID : s3PathStyleTestingID ,
59+ provider : s3PathStyleClient .(* s3Provider ),
60+ })
3561
36- s3Client , _ := s3Factory .New (s3TestingID )
37- s3Prv = s3Client .(* s3Provider )
3862 }
3963
4064 exitCode := m .Run ()
@@ -45,8 +69,10 @@ func TestMain(m *testing.M) {
4569 }
4670
4771 if ! skipS3Tests {
48- if err := s3Factory .Rm (context .Background (), s3TestingID ); err != nil {
49- errs = append (errs , fmt .Errorf ("error removing s3 workspace: %v" , err ))
72+ for _ , s3TS := range s3TestSetups {
73+ if err := s3TS .factory .Rm (context .Background (), s3TS .testingID ); err != nil {
74+ errs = append (errs , fmt .Errorf ("error removing s3 workspace: %v" , err ))
75+ }
5076 }
5177 }
5278
0 commit comments