MCPcopy
hub / github.com/containerd/containerd / testDB

Function testDB

contrib/fuzz/metadata_fuzz_test.go:277–325  ·  view source on GitHub ↗
(t *testing.T, opt ...testOpt)

Source from the content-addressed store, hash-verified

275type testOpt func(*testOptions)
276
277func testDB(t *testing.T, opt ...testOpt) (context.Context, *metadata.DB, func(), error) {
278 ctx, cancel := context.WithCancel(context.Background())
279 ctx = namespaces.WithNamespace(ctx, "testing")
280
281 var topts testOptions
282
283 for _, o := range opt {
284 o(&topts)
285 }
286
287 dirname := t.TempDir()
288
289 snapshotter, err := native.NewSnapshotter(filepath.Join(dirname, "native"))
290 if err != nil {
291 return ctx, nil, func() { cancel() }, err
292 }
293
294 snapshotters := map[string]snapshots.Snapshotter{
295 "native": snapshotter,
296 }
297
298 for name, fn := range topts.extraSnapshots {
299 snapshotter, err := fn(filepath.Join(dirname, name))
300 if err != nil {
301 return ctx, nil, func() { cancel() }, err
302 }
303 snapshotters[name] = snapshotter
304 }
305
306 cs, err := local.NewStore(filepath.Join(dirname, "content"))
307 if err != nil {
308 return ctx, nil, func() { cancel() }, err
309 }
310
311 bdb, err := bolt.Open(filepath.Join(dirname, "metadata.db"), 0644, nil)
312 if err != nil {
313 return ctx, nil, func() { cancel() }, err
314 }
315
316 db := metadata.NewDB(bdb, cs, snapshotters)
317 if err := db.Init(ctx); err != nil {
318 return ctx, nil, func() { cancel() }, err
319 }
320
321 return ctx, db, func() {
322 bdb.Close()
323 cancel()
324 }, nil
325}
326
327func FuzzContentStore(f *testing.F) {
328 f.Fuzz(func(t *testing.T, data []byte) {

Callers 1

FuzzContentStoreFunction · 0.70

Calls 7

InitMethod · 0.95
WithNamespaceFunction · 0.92
NewSnapshotterFunction · 0.92
NewStoreFunction · 0.92
NewDBFunction · 0.92
CloseMethod · 0.65
OpenMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…