From f09fb50cb092c241df4c0bd25c6755e6132e473e Mon Sep 17 00:00:00 2001 From: Máximo Cuadros Date: Fri, 9 Sep 2016 16:50:35 +0200 Subject: storage: filessytem read multiple packfiles support and index decoding --- fixtures/fixtures.go | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'fixtures/fixtures.go') diff --git a/fixtures/fixtures.go b/fixtures/fixtures.go index 2065038..7b72650 100644 --- a/fixtures/fixtures.go +++ b/fixtures/fixtures.go @@ -6,8 +6,11 @@ import ( "os" "path/filepath" + "github.com/alcortesm/tgz" + check "gopkg.in/check.v1" "gopkg.in/src-d/go-git.v4/core" + "gopkg.in/src-d/go-git.v4/utils/fs" ) var RootFolder = "" @@ -15,15 +18,20 @@ var RootFolder = "" const DataFolder = "data" var fixtures = []*Fixture{{ - Tags: []string{"ofs-delta"}, + Tags: []string{"ofs-delta", ".git"}, URL: "https://github.com/git-fixtures/basic", Head: core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5"), PackfileHash: core.NewHash("a3fed42da1e8189a077c0e6846c040dcf73fc9dd"), + DotGitHash: core.NewHash("0a00a25543e6d732dbf4e8e9fec55c8e65fc4e8d"), }, { Tags: []string{"ref-delta"}, URL: "https://github.com/git-fixtures/basic", Head: core.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5"), PackfileHash: core.NewHash("c544593473465e6315ad4182d04d366c4592b829"), +}, { + Tags: []string{".git", "unpacked", "multi-packfile"}, + URL: "https://github.com/src-d/go-git.git", + DotGitHash: core.NewHash("174be6bd4292c18160542ae6dc6704b877b8a01a"), }, { URL: "https://github.com/spinnaker/spinnaker", Head: core.NewHash("06ce06d0fc49646c4de733c45b7788aabad98a6f"), @@ -49,11 +57,25 @@ func ByURL(url string) Fixtures { return r } +func ByTag(tag string) Fixtures { + r := make(Fixtures, 0) + for _, f := range fixtures { + for _, t := range f.Tags { + if t == tag { + r = append(r, f) + } + } + } + + return r +} + type Fixture struct { URL string Tags []string Head core.Hash PackfileHash core.Hash + DotGitHash core.Hash } func (f *Fixture) Packfile() io.ReadSeeker { @@ -76,6 +98,15 @@ func (f *Fixture) Idx() io.ReadSeeker { return file } +func (f *Fixture) DotGit() fs.Filesystem { + fn := filepath.Join(RootFolder, DataFolder, fmt.Sprintf("git-%s.tgz", f.DotGitHash)) + path, err := tgz.Extract(fn) + if err != nil { + panic(err) + } + return fs.NewOS(path) +} + type Fixtures []*Fixture func (g Fixtures) Test(c *check.C, test func(*Fixture)) { -- cgit