aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format/packfile/packfile_test.go
diff options
context:
space:
mode:
authorMiguel Molina <miguel@erizocosmi.co>2018-07-27 15:07:25 +0200
committerMiguel Molina <miguel@erizocosmi.co>2018-07-27 15:07:25 +0200
commitccd0fa0bc17f0680038529b00f5c5a44f8e77b41 (patch)
treecfdc44429694b5f727404a0e60dd75f552621524 /plumbing/format/packfile/packfile_test.go
parentffdfb7dbabb78090b27ca29b762b803969c89fd7 (diff)
downloadgo-git-ccd0fa0bc17f0680038529b00f5c5a44f8e77b41.tar.gz
plumbing: packfile, lazy object reads with DiskObjects
Signed-off-by: Miguel Molina <miguel@erizocosmi.co>
Diffstat (limited to 'plumbing/format/packfile/packfile_test.go')
-rw-r--r--plumbing/format/packfile/packfile_test.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/plumbing/format/packfile/packfile_test.go b/plumbing/format/packfile/packfile_test.go
index 10e4080..0d7a806 100644
--- a/plumbing/format/packfile/packfile_test.go
+++ b/plumbing/format/packfile/packfile_test.go
@@ -1,14 +1,18 @@
package packfile
import (
+ "bytes"
"io"
"math"
+ "io/ioutil"
+
. "gopkg.in/check.v1"
"gopkg.in/src-d/go-billy.v4/osfs"
fixtures "gopkg.in/src-d/go-git-fixtures.v3"
"gopkg.in/src-d/go-git.v4/plumbing"
"gopkg.in/src-d/go-git.v4/plumbing/format/idxfile"
+ "gopkg.in/src-d/go-git.v4/storage/memory"
)
type PackfileSuite struct {
@@ -104,6 +108,48 @@ var expectedEntries = map[plumbing.Hash]int64{
plumbing.NewHash("fb72698cab7617ac416264415f13224dfd7a165e"): 84671,
}
+func (s *PackfileSuite) TestContent(c *C) {
+ storer := memory.NewObjectStorage()
+ decoder, err := NewDecoder(NewScanner(s.f.Packfile()), storer)
+ c.Assert(err, IsNil)
+
+ _, err = decoder.Decode()
+ c.Assert(err, IsNil)
+
+ iter, err := s.p.GetAll()
+ c.Assert(err, IsNil)
+
+ for {
+ o, err := iter.Next()
+ if err == io.EOF {
+ break
+ }
+ c.Assert(err, IsNil)
+
+ o2, err := storer.EncodedObject(plumbing.AnyObject, o.Hash())
+ c.Assert(err, IsNil)
+
+ c.Assert(o.Type(), Equals, o2.Type())
+ c.Assert(o.Size(), Equals, o2.Size())
+
+ r, err := o.Reader()
+ c.Assert(err, IsNil)
+
+ c1, err := ioutil.ReadAll(r)
+ c.Assert(err, IsNil)
+ c.Assert(r.Close(), IsNil)
+
+ r, err = o2.Reader()
+ c.Assert(err, IsNil)
+
+ c2, err := ioutil.ReadAll(r)
+ c.Assert(err, IsNil)
+ c.Assert(r.Close(), IsNil)
+
+ c.Assert(bytes.Compare(c1, c2), Equals, 0)
+ }
+}
+
func (s *PackfileSuite) SetUpTest(c *C) {
s.f = fixtures.Basic().One()