MCPcopy
hub / github.com/containerd/containerd / TestGCRefs

Function TestGCRefs

core/metadata/gc_test.go:269–500  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

267}
268
269func TestGCRefs(t *testing.T) {
270 db, err := newDatabase(t)
271 require.NoError(t, err)
272
273 alters := []alterFunc{
274 addContent("ns1", dgst(1), nil),
275 addContent("ns1", dgst(2), nil),
276 addContent("ns1", dgst(3), nil),
277 addContent("ns1", dgst(4), labelmap(string(labelGCContentRef), dgst(1).String())),
278 addContent("ns1", dgst(5), labelmap(
279 string(labelGCContentRef)+".anything-1", dgst(2).String(),
280 string(labelGCContentRef)+".anything-2", dgst(3).String())),
281 addContent("ns1", dgst(6), labelmap(string(labelGCContentRef)+"bad", dgst(1).String())),
282 addContent("ns1", dgst(7), labelmap(
283 string(labelGCContentRef)+"/anything-1", dgst(2).String(),
284 string(labelGCContentRef)+"/anything-2", dgst(3).String(),
285 string(labelGCContainerBackRef), "container3")),
286 addContent("ns2", dgst(1), nil),
287 addContent("ns2", dgst(2), nil),
288 addContainer("ns1", "container1", "overlay", "sn4", nil),
289 addContainer("ns1", "container2", "overlay", "sn5", labelmap(string(labelGCSnapRef)+"overlay", "sn6")),
290 addContainer("ns1", "container3", "overlay", "sn7", labelmap(
291 string(labelGCSnapRef)+"overlay/anything-1", "sn8",
292 string(labelGCSnapRef)+"overlay/anything-2", "sn9",
293 string(labelGCContentRef), dgst(7).String())),
294 addContainer("ns1", "container4", "", "", labelmap(
295 string(labelGCContentRef)+".0", dgst(8).String(),
296 string(labelGCContentRef)+".1", dgst(9).String())),
297 addImage("ns1", "image1", dgst(3), nil),
298 addImage("ns1", "image2", dgst(4), labelmap(
299 string(labelGCImageRef)+".anything", "image1",
300 string(labelGCContentRef)+".anotherimage", dgst(5).String())),
301 addIngest("ns1", "ingest-1", "", nil),
302 addIngest("ns2", "ingest-2", dgst(8), nil),
303 addSnapshot("ns1", "overlay", "sn1", "", nil),
304 addSnapshot("ns1", "overlay", "sn2", "sn1", nil),
305 addSnapshot("ns1", "overlay", "sn3", "sn2", nil),
306 addSnapshot("ns1", "overlay", "sn4", "", labelmap(
307 string(labelGCSnapRef)+"btrfs", "sn1",
308 string(labelGCSnapRef)+"overlay", "sn1")),
309 addSnapshot("ns1", "overlay", "sn5", "", labelmap(
310 string(labelGCSnapRef)+"overlay/anything-1", "sn1",
311 string(labelGCSnapRef)+"overlay/anything-2", "sn2")),
312 addSnapshot("ns1", "btrfs", "sn1", "", nil),
313 addSnapshot("ns2", "overlay", "sn1", "", nil),
314 addSnapshot("ns2", "overlay", "sn2", "sn1", nil),
315 addSnapshot("ns2", "overlay", "sn3", "", labelmap(
316 string(labelGCContentRef), dgst(1).String(),
317 string(labelGCContentRef)+".keep-me", dgst(6).String())),
318
319 // Test flat references don't follow label references
320 addContent("ns3", dgst(1), nil),
321 addContent("ns3", dgst(2), labelmap(string(labelGCContentRef)+".0", dgst(1).String())),
322
323 // Back references
324 addContent("ns1", dgst(10), labelmap(
325 string(labelGCContainerBackRef), "container1",
326 string(labelGCContentBackRef), dgst(5).String(),

Callers

nothing calls this directly

Calls 15

newDatabaseFunction · 0.85
addContentFunction · 0.85
dgstFunction · 0.85
labelmapFunction · 0.85
addImageFunction · 0.85
addIngestFunction · 0.85
addSnapshotFunction · 0.85
startGCContextFunction · 0.85
checkNodeCFunction · 0.85
FormatMethod · 0.80
scanRootsMethod · 0.80
referencesMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…