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

Method deltaOverDeltaTest

plumbing/format/packfile/encoder_test.go:153–194  ·  view source on GitHub ↗
(c *C)

Source from the content-addressed store, hash-verified

151}
152
153func (s *EncoderSuite) deltaOverDeltaTest(c *C) {
154 srcObject := newObject(plumbing.BlobObject, []byte("0"))
155 targetObject := newObject(plumbing.BlobObject, []byte("01"))
156 otherTargetObject := newObject(plumbing.BlobObject, []byte("011111"))
157
158 deltaObject, err := GetDelta(srcObject, targetObject)
159 c.Assert(err, IsNil)
160 c.Assert(deltaObject.Hash(), Not(Equals), plumbing.ZeroHash)
161
162 otherDeltaObject, err := GetDelta(targetObject, otherTargetObject)
163 c.Assert(err, IsNil)
164 c.Assert(otherDeltaObject.Hash(), Not(Equals), plumbing.ZeroHash)
165
166 srcToPack := newObjectToPack(srcObject)
167 targetToPack := newObjectToPack(targetObject)
168 encHash, err := s.enc.encode([]*ObjectToPack{
169 targetToPack,
170 srcToPack,
171 newDeltaObjectToPack(srcToPack, targetObject, deltaObject),
172 newDeltaObjectToPack(targetToPack, otherTargetObject, otherDeltaObject),
173 })
174 c.Assert(err, IsNil)
175
176 p, cleanup := packfileFromReader(c, s.buf)
177 defer cleanup()
178 decHash, err := p.ID()
179 c.Assert(err, IsNil)
180
181 c.Assert(encHash, Equals, decHash)
182
183 decSrc, err := p.Get(srcObject.Hash())
184 c.Assert(err, IsNil)
185 objectsEqual(c, decSrc, srcObject)
186
187 decTarget, err := p.Get(targetObject.Hash())
188 c.Assert(err, IsNil)
189 objectsEqual(c, decTarget, targetObject)
190
191 decOtherTarget, err := p.Get(otherTargetObject.Hash())
192 c.Assert(err, IsNil)
193 objectsEqual(c, decOtherTarget, otherTargetObject)
194}
195
196func (s *EncoderSuite) deltaOverDeltaCyclicTest(c *C) {
197 o1 := newObject(plumbing.BlobObject, []byte("0"))

Calls 10

GetDeltaFunction · 0.85
newObjectToPackFunction · 0.85
newDeltaObjectToPackFunction · 0.85
packfileFromReaderFunction · 0.85
objectsEqualFunction · 0.85
newObjectFunction · 0.70
HashMethod · 0.65
IDMethod · 0.65
GetMethod · 0.65
encodeMethod · 0.45

Tested by

no test coverage detected