(c *C, deleteTime time.Time)
| 20 | var _ = Suite(&PruneSuite{}) |
| 21 | |
| 22 | func (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 | |
| 69 | func (s *PruneSuite) TestPrune(c *C) { |
| 70 | s.testPrune(c, time.Time{}) |
no test coverage detected