diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2017-11-20 11:15:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-20 11:15:55 +0100 |
commit | 6abcb9798743579819719eb7328f2a7bdc8a882e (patch) | |
tree | 70a914279cb14dd610c2082109d03a89c203215c /plumbing/format/packfile/decoder_test.go | |
parent | dcec8517e203aa22f28b72e3015a4b3406d7cc62 (diff) | |
parent | 07adc3a19b288c539903dc126d20998e17137508 (diff) | |
download | go-git-6abcb9798743579819719eb7328f2a7bdc8a882e.tar.gz |
Merge pull request #646 from mcuadros/decode-object-at-fix
format: packfile fix DecodeObjectAt when Decoder has type
Diffstat (limited to 'plumbing/format/packfile/decoder_test.go')
-rw-r--r-- | plumbing/format/packfile/decoder_test.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/plumbing/format/packfile/decoder_test.go b/plumbing/format/packfile/decoder_test.go index ecf7c81..5d1530c 100644 --- a/plumbing/format/packfile/decoder_test.go +++ b/plumbing/format/packfile/decoder_test.go @@ -293,7 +293,7 @@ func (s *ReaderSuite) TestDecodeCRCs(c *C) { c.Assert(int(sum), Equals, 78022211966) } -func (s *ReaderSuite) TestReadObjectAt(c *C) { +func (s *ReaderSuite) TestDecodeObjectAt(c *C) { f := fixtures.Basic().One() scanner := packfile.NewScanner(f.Packfile()) d, err := packfile.NewDecoder(scanner, nil) @@ -311,6 +311,25 @@ func (s *ReaderSuite) TestReadObjectAt(c *C) { c.Assert(obj.Hash().String(), Equals, "6ecf0ef2c2dffb796033e5a02219af86ec6584e5") } +func (s *ReaderSuite) TestDecodeObjectAtForType(c *C) { + f := fixtures.Basic().One() + scanner := packfile.NewScanner(f.Packfile()) + d, err := packfile.NewDecoderForType(scanner, nil, plumbing.TreeObject) + c.Assert(err, IsNil) + + // when the packfile is ref-delta based, the offsets are required + if f.Is("ref-delta") { + d.SetIndex(getIndexFromIdxFile(f.Idx())) + } + + // the objects at reference 186, is a delta, so should be recall, + // without being read before. + obj, err := d.DecodeObjectAt(186) + c.Assert(err, IsNil) + c.Assert(obj.Type(), Equals, plumbing.CommitObject) + c.Assert(obj.Hash().String(), Equals, "6ecf0ef2c2dffb796033e5a02219af86ec6584e5") +} + func (s *ReaderSuite) TestIndex(c *C) { f := fixtures.Basic().One() scanner := packfile.NewScanner(f.Packfile()) |