diff options
author | Antonio Navarro Perez <antnavper@gmail.com> | 2016-12-14 10:20:00 +0100 |
---|---|---|
committer | Máximo Cuadros <mcuadros@gmail.com> | 2016-12-14 10:20:00 +0100 |
commit | 500b1e1e183c73e3087710fca2f96acfd2e2d5cb (patch) | |
tree | b2777dedd22f7279f2df7da8eb3b433d560c5701 /plumbing/format/packfile/object_pack_test.go | |
parent | 40875ee0df345468f36cb00d54820d622b37cbc5 (diff) | |
download | go-git-500b1e1e183c73e3087710fca2f96acfd2e2d5cb.tar.gz |
format/packfile: implement delta encoding (#172)
* format/packfile: implement delta encoding
- Added all the logic to the encoder to be able to encode ref-delta and offset-delta objects
- Created plumbing.ObjectToPack to handle deltas and standard objects when we are writting them into a packfile
- Added specific encoder delta tests, one standard object and one delta, and one standard object and two deltas
* Requested changes.
* Requested changes
Diffstat (limited to 'plumbing/format/packfile/object_pack_test.go')
-rw-r--r-- | plumbing/format/packfile/object_pack_test.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plumbing/format/packfile/object_pack_test.go b/plumbing/format/packfile/object_pack_test.go new file mode 100644 index 0000000..ddc7ab5 --- /dev/null +++ b/plumbing/format/packfile/object_pack_test.go @@ -0,0 +1,40 @@ +package packfile + +import ( + "io" + + "gopkg.in/src-d/go-git.v4/plumbing" + + . "gopkg.in/check.v1" +) + +type ObjectToPackSuite struct{} + +var _ = Suite(&ObjectToPackSuite{}) + +func (s *ObjectToPackSuite) TestObjectToPack(c *C) { + obj := &dummyObject{} + otp := newObjectToPack(obj) + c.Assert(obj, Equals, otp.Object) + c.Assert(obj, Equals, otp.Original) + c.Assert(otp.Base, IsNil) + c.Assert(otp.IsDelta(), Equals, false) + + original := &dummyObject{} + delta := &dummyObject{} + deltaToPack := newDeltaObjectToPack(otp, original, delta) + c.Assert(obj, Equals, deltaToPack.Object) + c.Assert(original, Equals, deltaToPack.Original) + c.Assert(otp, Equals, deltaToPack.Base) + c.Assert(deltaToPack.IsDelta(), Equals, true) +} + +type dummyObject struct{} + +func (*dummyObject) Hash() plumbing.Hash { return plumbing.ZeroHash } +func (*dummyObject) Type() plumbing.ObjectType { return plumbing.InvalidObject } +func (*dummyObject) SetType(plumbing.ObjectType) {} +func (*dummyObject) Size() int64 { return 0 } +func (*dummyObject) SetSize(s int64) {} +func (*dummyObject) Reader() (io.ReadCloser, error) { return nil, nil } +func (*dummyObject) Writer() (io.WriteCloser, error) { return nil, nil } |