setup sets up a test environment.
(tb testing.TB, version format.Version, opts ...Options)
| 58 | |
| 59 | // setup sets up a test environment. |
| 60 | func (e *Environment) setup(tb testing.TB, version format.Version, opts ...Options) *Environment { |
| 61 | tb.Helper() |
| 62 | |
| 63 | ctx := testlogging.Context(tb) |
| 64 | e.configDir = testutil.TempDirectory(tb) |
| 65 | openOpt := &repo.Options{} |
| 66 | connectOpt := &repo.ConnectOptions{} |
| 67 | |
| 68 | opt := &repo.NewRepositoryOptions{ |
| 69 | BlockFormat: format.ContentFormat{ |
| 70 | MutableParameters: format.MutableParameters{ |
| 71 | Version: version, |
| 72 | }, |
| 73 | HMACSecret: []byte("a-repository-testing-hmac-secret"), |
| 74 | Hash: "HMAC-SHA256", |
| 75 | Encryption: encryption.DefaultAlgorithm, |
| 76 | EnablePasswordChange: true, |
| 77 | }, |
| 78 | ObjectFormat: format.ObjectFormat{ |
| 79 | Splitter: "FIXED-1M", |
| 80 | }, |
| 81 | } |
| 82 | |
| 83 | for _, mod := range opts { |
| 84 | if mod.NewRepositoryOptions != nil { |
| 85 | mod.NewRepositoryOptions(opt) |
| 86 | } |
| 87 | |
| 88 | if mod.OpenOptions != nil { |
| 89 | mod.OpenOptions(openOpt) |
| 90 | } |
| 91 | |
| 92 | if mod.ConnectOptions != nil { |
| 93 | mod.ConnectOptions(connectOpt) |
| 94 | } |
| 95 | } |
| 96 | |
| 97 | var st blob.Storage |
| 98 | if opt.RetentionPeriod == 0 || opt.RetentionMode == "" { |
| 99 | st = blobtesting.NewMapStorage(blobtesting.DataMap{}, nil, openOpt.TimeNowFunc) |
| 100 | } else { |
| 101 | // use versioned mock storage when retention settings are specified |
| 102 | st = blobtesting.NewVersionedMapStorage(openOpt.TimeNowFunc) |
| 103 | } |
| 104 | |
| 105 | st = NewReconnectableStorage(tb, st) |
| 106 | e.st = st |
| 107 | |
| 108 | if e.Password == "" { |
| 109 | e.Password = DefaultPasswordForTesting |
| 110 | } |
| 111 | |
| 112 | err := repo.Initialize(ctx, st, opt, e.Password) |
| 113 | require.NoError(tb, err) |
| 114 | |
| 115 | err = repo.Connect(ctx, e.ConfigFile(), st, e.Password, connectOpt) |
| 116 | require.NoError(tb, err, "can't connect") |
| 117 |
no test coverage detected