MCPcopy
hub / github.com/go-git/go-git / testPrune

Method testPrune

prune_test.go:22–67  ·  view source on GitHub ↗
(c *C, deleteTime time.Time)

Source from the content-addressed store, hash-verified

20var _ = Suite(&PruneSuite{})
21
22func (s *PruneSuite) testPrune(c *C, deleteTime time.Time) {
23 srcFs := fixtures.ByTag("unpacked").One().DotGit()
24 var sto storage.Storer
25 var err error
26 sto = filesystem.NewStorage(srcFs, cache.NewObjectLRUDefault())
27
28 los := sto.(storer.LooseObjectStorer)
29 c.Assert(los, NotNil)
30
31 count := 0
32 err = los.ForEachObjectHash(func(_ plumbing.Hash) error {
33 count++
34 return nil
35 })
36 c.Assert(err, IsNil)
37
38 r, err := Open(sto, srcFs)
39 c.Assert(err, IsNil)
40 c.Assert(r, NotNil)
41
42 // Remove a branch so we can prune some objects.
43 err = sto.RemoveReference(plumbing.ReferenceName("refs/heads/v4"))
44 c.Assert(err, IsNil)
45 err = sto.RemoveReference(plumbing.ReferenceName("refs/remotes/origin/v4"))
46 c.Assert(err, IsNil)
47
48 err = r.Prune(PruneOptions{
49 OnlyObjectsOlderThan: deleteTime,
50 Handler: r.DeleteObject,
51 })
52 c.Assert(err, IsNil)
53
54 newCount := 0
55 err = los.ForEachObjectHash(func(_ plumbing.Hash) error {
56 newCount++
57 return nil
58 })
59 c.Assert(err, IsNil)
60
61 if deleteTime.IsZero() {
62 c.Assert(newCount < count, Equals, true)
63 } else {
64 // Assume a delete time older than any of the objects was passed in.
65 c.Assert(newCount, Equals, count)
66 }
67}
68
69func (s *PruneSuite) TestPrune(c *C) {
70 s.testPrune(c, time.Time{})

Callers 2

TestPruneMethod · 0.95
TestPruneWithNoDeleteMethod · 0.95

Calls 8

NewStorageFunction · 0.92
NewObjectLRUDefaultFunction · 0.92
ReferenceNameTypeAlias · 0.92
OpenFunction · 0.85
PruneMethod · 0.80
ForEachObjectHashMethod · 0.65
RemoveReferenceMethod · 0.65
IsZeroMethod · 0.65

Tested by

no test coverage detected