MCPcopy
hub / github.com/kopia/kopia / TestUploadMetadataCompression

Function TestUploadMetadataCompression

snapshot/upload/upload_test.go:242–298  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

240}
241
242func TestUploadMetadataCompression(t *testing.T) {
243 t.Parallel()
244
245 buildPolicy := func(compressor compression.Name) *policy.Tree {
246 return policy.BuildTree(map[string]*policy.Policy{
247 ".": {
248 MetadataCompressionPolicy: policy.MetadataCompressionPolicy{
249 CompressorName: compressor,
250 },
251 },
252 }, policy.DefaultPolicy)
253 }
254
255 cases := []struct {
256 name string
257 policyTree *policy.Tree
258 compressionID compression.HeaderID
259 }{
260 {
261 name: "default metadata compression",
262 policyTree: policy.BuildTree(nil, policy.DefaultPolicy),
263 compressionID: compression.HeaderZstdFastest,
264 },
265 {
266 name: "disable metadata compression",
267 policyTree: buildPolicy("none"),
268 compressionID: content.NoCompression,
269 },
270 {
271 name: "enable metadata compression",
272 policyTree: buildPolicy("gzip"),
273 compressionID: compression.ByName["gzip"].HeaderID(),
274 },
275 }
276
277 ctx := testlogging.Context(t)
278
279 for _, tc := range cases {
280 policyTree := tc.policyTree
281 compID := tc.compressionID
282
283 t.Run(tc.name, func(t *testing.T) {
284 t.Parallel()
285
286 th := newUploadTestHarness(ctx, t)
287 t.Cleanup(th.cleanup)
288 u := NewUploader(th.repo)
289
290 s1, err := u.Upload(ctx, th.sourceDir, policyTree, snapshot.SourceInfo{})
291 require.NoError(t, err, "upload error")
292
293 dir := testutil.EnsureType[fs.Directory](t, snapshotfs.EntryFromDirEntry(th.repo, s1.RootEntry))
294 entries := findAllEntries(t, ctx, dir)
295 verifyMetadataCompressor(t, ctx, th.repo, entries, compID)
296 })
297 }
298}
299

Callers

nothing calls this directly

Calls 12

UploadMethod · 0.95
BuildTreeFunction · 0.92
ContextFunction · 0.92
EnsureTypeFunction · 0.92
EntryFromDirEntryFunction · 0.92
newUploadTestHarnessFunction · 0.85
NewUploaderFunction · 0.85
findAllEntriesFunction · 0.85
verifyMetadataCompressorFunction · 0.85
HeaderIDMethod · 0.65
RunMethod · 0.65
CleanupMethod · 0.65

Tested by

no test coverage detected