@@ -3,7 +3,6 @@ package object
33import (
44 "path"
55
6- "golang.org/x/exp/mmap"
76 . "gopkg.in/check.v1"
87 "gopkg.in/src-d/go-git-fixtures.v3"
98 "gopkg.in/src-d/go-git.v4/plumbing"
@@ -19,6 +18,14 @@ type CommitNodeSuite struct {
1918
2019var _ = Suite (& CommitNodeSuite {})
2120
21+ func unpackRepositry (f * fixtures.Fixture ) * filesystem.Storage {
22+ storer := filesystem .NewStorage (f .DotGit (), cache .NewObjectLRUDefault ())
23+ p := f .Packfile ()
24+ defer p .Close ()
25+ packfile .UpdateObjectStorage (storer , p )
26+ return storer
27+ }
28+
2229func testWalker (c * C , nodeIndex CommitNodeIndex ) {
2330 head , err := nodeIndex .Get (plumbing .NewHash ("b9d69064b190e7aedccf84731ca1d917871f8a1c" ))
2431 c .Assert (err , IsNil )
@@ -75,24 +82,31 @@ func testParents(c *C, nodeIndex CommitNodeIndex) {
7582 }
7683}
7784
85+ func testCommitAndTree (c * C , nodeIndex CommitNodeIndex ) {
86+ merge3node , err := nodeIndex .Get (plumbing .NewHash ("6f6c5d2be7852c782be1dd13e36496dd7ad39560" ))
87+ c .Assert (err , IsNil )
88+ merge3commit , err := merge3node .Commit ()
89+ c .Assert (err , IsNil )
90+ c .Assert (merge3node .ID ().String (), Equals , merge3commit .ID ().String ())
91+ tree , err := merge3node .Tree ()
92+ c .Assert (err , IsNil )
93+ c .Assert (tree .ID ().String (), Equals , merge3commit .TreeHash .String ())
94+ }
95+
7896func (s * CommitNodeSuite ) TestObjectGraph (c * C ) {
7997 f := fixtures .ByTag ("commit-graph" ).One ()
80- storer := filesystem .NewStorage (f .DotGit (), cache .NewObjectLRUDefault ())
81- p := f .Packfile ()
82- defer p .Close ()
83- err := packfile .UpdateObjectStorage (storer , p )
84- c .Assert (err , IsNil )
98+ storer := unpackRepositry (f )
8599
86100 nodeIndex := NewObjectCommitNodeIndex (storer )
87101 testWalker (c , nodeIndex )
88102 testParents (c , nodeIndex )
103+ testCommitAndTree (c , nodeIndex )
89104}
90105
91106func (s * CommitNodeSuite ) TestCommitGraph (c * C ) {
92107 f := fixtures .ByTag ("commit-graph" ).One ()
93- dotgit := f .DotGit ()
94- storer := filesystem .NewStorage (dotgit , cache .NewObjectLRUDefault ())
95- reader , err := mmap .Open (path .Join (dotgit .Root (), "objects" , "info" , "commit-graph" ))
108+ storer := unpackRepositry (f )
109+ reader , err := storer .Filesystem ().Open (path .Join ("objects" , "info" , "commit-graph" ))
96110 c .Assert (err , IsNil )
97111 defer reader .Close ()
98112 index , err := commitgraph .OpenFileIndex (reader )
@@ -101,20 +115,15 @@ func (s *CommitNodeSuite) TestCommitGraph(c *C) {
101115 nodeIndex := NewGraphCommitNodeIndex (index , storer )
102116 testWalker (c , nodeIndex )
103117 testParents (c , nodeIndex )
118+ testCommitAndTree (c , nodeIndex )
104119}
105120
106121func (s * CommitNodeSuite ) TestMixedGraph (c * C ) {
107- // Unpack the original repository with pack file
108122 f := fixtures .ByTag ("commit-graph" ).One ()
109- dotgit := f .DotGit ()
110- storer := filesystem .NewStorage (dotgit , cache .NewObjectLRUDefault ())
111- p := f .Packfile ()
112- defer p .Close ()
113- err := packfile .UpdateObjectStorage (storer , p )
114- c .Assert (err , IsNil )
123+ storer := unpackRepositry (f )
115124
116125 // Take the commit-graph file and copy it to memory index without the last commit
117- reader , err := mmap . Open (path .Join (dotgit . Root (), "objects" , "info" , "commit-graph" ))
126+ reader , err := storer . Filesystem (). Open (path .Join ("objects" , "info" , "commit-graph" ))
118127 c .Assert (err , IsNil )
119128 defer reader .Close ()
120129 fileIndex , err := commitgraph .OpenFileIndex (reader )
@@ -131,4 +140,5 @@ func (s *CommitNodeSuite) TestMixedGraph(c *C) {
131140 nodeIndex := NewGraphCommitNodeIndex (memoryIndex , storer )
132141 testWalker (c , nodeIndex )
133142 testParents (c , nodeIndex )
143+ testCommitAndTree (c , nodeIndex )
134144}
0 commit comments