From fc28ca32832efb9691ae5291058ab5fb13301599 Mon Sep 17 00:00:00 2001 From: ashmrtn <3891298+ashmrtn@users.noreply.github.com> Date: Tue, 3 Oct 2023 09:39:03 -0700 Subject: [PATCH] Use local fs for non-retention tests (#4424) Switch kopia package tests that don't require retention to use the local file system for speed. Tests that do check retention settings require S3. Brings kopia package test runtime down from ~430s to ~130s on local machine --- #### Does this PR need a docs update or release note? - [ ] :white_check_mark: Yes, it's included - [ ] :clock1: Yes, but in a later PR - [x] :no_entry: No #### Type of change - [ ] :sunflower: Feature - [ ] :bug: Bugfix - [ ] :world_map: Documentation - [x] :robot: Supportability/Tests - [ ] :computer: CI/Deployment - [ ] :broom: Tech Debt/Cleanup #### Issue(s) * closes #4422 #### Test Plan - [x] :muscle: Manual - [ ] :zap: Unit test - [ ] :green_heart: E2E --- src/internal/kopia/conn_test.go | 22 ++++++++++++++++++---- src/internal/kopia/model_store_test.go | 4 ++-- src/internal/kopia/wrapper_test.go | 12 ++++++------ 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/internal/kopia/conn_test.go b/src/internal/kopia/conn_test.go index bbd824c3d..e5c2dbdec 100644 --- a/src/internal/kopia/conn_test.go +++ b/src/internal/kopia/conn_test.go @@ -22,6 +22,20 @@ import ( storeTD "github.com/alcionai/corso/src/pkg/storage/testdata" ) +func openLocalKopiaRepo( + t tester.TestT, + ctx context.Context, //revive:disable-line:context-as-argument +) (*conn, error) { + st := storeTD.NewFilesystemStorage(t) + + k := NewConn(st) + if err := k.Initialize(ctx, repository.Options{}, repository.Retention{}); err != nil { + return nil, err + } + + return k, nil +} + func openKopiaRepo( t tester.TestT, ctx context.Context, //revive:disable-line:context-as-argument @@ -81,7 +95,7 @@ func (suite *WrapperIntegrationSuite) TestRepoExistsError() { ctx, flush := tester.NewContext(t) defer flush() - st := storeTD.NewPrefixedS3Storage(t) + st := storeTD.NewFilesystemStorage(t) k := NewConn(st) err := k.Initialize(ctx, repository.Options{}, repository.Retention{}) @@ -101,7 +115,7 @@ func (suite *WrapperIntegrationSuite) TestBadProviderErrors() { ctx, flush := tester.NewContext(t) defer flush() - st := storeTD.NewPrefixedS3Storage(t) + st := storeTD.NewFilesystemStorage(t) st.Provider = storage.ProviderUnknown k := NewConn(st) @@ -115,7 +129,7 @@ func (suite *WrapperIntegrationSuite) TestConnectWithoutInitErrors() { ctx, flush := tester.NewContext(t) defer flush() - st := storeTD.NewPrefixedS3Storage(t) + st := storeTD.NewFilesystemStorage(t) k := NewConn(st) err := k.Connect(ctx, repository.Options{}) @@ -408,7 +422,7 @@ func (suite *WrapperIntegrationSuite) TestSetUserAndHost() { Host: "bar", } - st := storeTD.NewPrefixedS3Storage(t) + st := storeTD.NewFilesystemStorage(t) k := NewConn(st) err := k.Initialize(ctx, opts, repository.Retention{}) diff --git a/src/internal/kopia/model_store_test.go b/src/internal/kopia/model_store_test.go index 6226a14ad..db25eee57 100644 --- a/src/internal/kopia/model_store_test.go +++ b/src/internal/kopia/model_store_test.go @@ -29,7 +29,7 @@ type fooModel struct { //revive:disable-next-line:context-as-argument func getModelStore(t *testing.T, ctx context.Context) *ModelStore { - c, err := openKopiaRepo(t, ctx) + c, err := openLocalKopiaRepo(t, ctx) require.NoError(t, err, clues.ToCore(err)) return &ModelStore{c: c, modelVersion: globalModelVersion} @@ -856,7 +856,7 @@ func openConnAndModelStore( t *testing.T, ctx context.Context, //revive:disable-line:context-as-argument ) (*conn, *ModelStore) { - st := storeTD.NewPrefixedS3Storage(t) + st := storeTD.NewFilesystemStorage(t) c := NewConn(st) err := c.Initialize(ctx, repository.Options{}, repository.Retention{}) diff --git a/src/internal/kopia/wrapper_test.go b/src/internal/kopia/wrapper_test.go index 77721fc7b..7b4508465 100644 --- a/src/internal/kopia/wrapper_test.go +++ b/src/internal/kopia/wrapper_test.go @@ -184,7 +184,7 @@ func (suite *BasicKopiaIntegrationSuite) TestMaintenance_FirstRun_NoChanges() { ctx, flush := tester.NewContext(t) defer flush() - k, err := openKopiaRepo(t, ctx) + k, err := openLocalKopiaRepo(t, ctx) require.NoError(t, err, clues.ToCore(err)) w := &Wrapper{k} @@ -204,7 +204,7 @@ func (suite *BasicKopiaIntegrationSuite) TestMaintenance_WrongUser_NoForce_Fails ctx, flush := tester.NewContext(t) defer flush() - k, err := openKopiaRepo(t, ctx) + k, err := openLocalKopiaRepo(t, ctx) require.NoError(t, err, clues.ToCore(err)) w := &Wrapper{k} @@ -241,7 +241,7 @@ func (suite *BasicKopiaIntegrationSuite) TestMaintenance_WrongUser_Force_Succeed ctx, flush := tester.NewContext(t) defer flush() - k, err := openKopiaRepo(t, ctx) + k, err := openLocalKopiaRepo(t, ctx) require.NoError(t, err, clues.ToCore(err)) w := &Wrapper{k} @@ -754,7 +754,7 @@ func (suite *KopiaIntegrationSuite) SetupTest() { t := suite.T() suite.ctx, suite.flush = tester.NewContext(t) - c, err := openKopiaRepo(t, suite.ctx) + c, err := openLocalKopiaRepo(t, suite.ctx) require.NoError(t, err, clues.ToCore(err)) suite.w = &Wrapper{c} @@ -1245,7 +1245,7 @@ func (suite *KopiaIntegrationSuite) TestRestoreAfterCompressionChange() { ctx, flush := tester.NewContext(t) defer flush() - k, err := openKopiaRepo(t, ctx) + k, err := openLocalKopiaRepo(t, ctx) require.NoError(t, err, clues.ToCore(err)) err = k.Compression(ctx, "s2-default") @@ -1559,7 +1559,7 @@ func (suite *KopiaSimpleRepoIntegrationSuite) SetupTest() { //nolint:forbidigo suite.ctx, _ = logger.CtxOrSeed(context.Background(), ls) - c, err := openKopiaRepo(t, suite.ctx) + c, err := openLocalKopiaRepo(t, suite.ctx) require.NoError(t, err, clues.ToCore(err)) suite.w = &Wrapper{c}