MCPcopy
hub / github.com/containerd/containerd / TestGCRemove

Function TestGCRemove

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

Source from the content-addressed store, hash-verified

174}
175
176func TestGCRemove(t *testing.T) {
177 db, err := newDatabase(t)
178 require.NoError(t, err)
179
180 alters := []alterFunc{
181 addImage("ns1", "image1", dgst(1), nil),
182 addImage("ns1", "image2", dgst(2), labelmap(string(labelGCSnapRef)+"overlay", "sn2")),
183 addContainer("ns1", "container1", "overlay", "sn4", nil),
184 addContent("ns1", dgst(1), nil),
185 addContent("ns1", dgst(2), nil),
186 addContent("ns1", dgst(3), nil),
187 addContent("ns2", dgst(1), nil),
188 addContent("ns2", dgst(2), labelmap(string(labelGCRoot), "always")),
189 addIngest("ns1", "ingest-1", "", nil),
190 addIngest("ns2", "ingest-2", "", timeIn(0)),
191 addSnapshot("ns1", "overlay", "sn1", "", nil),
192 addSnapshot("ns1", "overlay", "sn2", "", nil),
193 addSnapshot("ns1", "overlay", "sn3", "", labelmap(string(labelGCRoot), "always")),
194 addSnapshot("ns1", "overlay", "sn4", "", nil),
195 addSnapshot("ns2", "overlay", "sn1", "", nil),
196 addLease("ns1", "l1", labelmap(string(labelGCExpire), time.Now().Add(time.Hour).Format(time.RFC3339))),
197 addLease("ns2", "l2", labelmap(string(labelGCExpire), time.Now().Format(time.RFC3339))),
198 }
199
200 all := []gc.Node{
201 gcnode(ResourceContent, "ns1", dgst(1).String()),
202 gcnode(ResourceContent, "ns1", dgst(2).String()),
203 gcnode(ResourceContent, "ns1", dgst(3).String()),
204 gcnode(ResourceContent, "ns2", dgst(1).String()),
205 gcnode(ResourceContent, "ns2", dgst(2).String()),
206 gcnode(ResourceSnapshot, "ns1", "overlay/sn1"),
207 gcnode(ResourceSnapshot, "ns1", "overlay/sn2"),
208 gcnode(ResourceSnapshot, "ns1", "overlay/sn3"),
209 gcnode(ResourceSnapshot, "ns1", "overlay/sn4"),
210 gcnode(ResourceSnapshot, "ns2", "overlay/sn1"),
211 gcnode(ResourceImage, "ns1", "image1"),
212 gcnode(ResourceImage, "ns1", "image2"),
213 gcnode(ResourceLease, "ns1", "l1"),
214 gcnode(ResourceLease, "ns2", "l2"),
215 gcnode(ResourceIngest, "ns1", "ingest-1"),
216 gcnode(ResourceIngest, "ns2", "ingest-2"),
217 }
218
219 var deleted, remaining []gc.Node
220 for i, n := range all {
221 if i%2 == 0 {
222 deleted = append(deleted, n)
223 } else {
224 remaining = append(remaining, n)
225 }
226 }
227
228 if err := db.Update(func(tx *bolt.Tx) error {
229 v1bkt, err := tx.CreateBucketIfNotExists(bucketKeyVersion)
230 if err != nil {
231 return err
232 }
233 for _, alter := range alters {

Callers

nothing calls this directly

Calls 15

newDatabaseFunction · 0.85
addImageFunction · 0.85
dgstFunction · 0.85
labelmapFunction · 0.85
addContentFunction · 0.85
addIngestFunction · 0.85
timeInFunction · 0.85
addSnapshotFunction · 0.85
addLeaseFunction · 0.85
startGCContextFunction · 0.85
checkNodesFunction · 0.85
FormatMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…