aboutsummaryrefslogtreecommitdiffstats
path: root/fixtures
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2017-01-30 23:33:50 +0100
committerMáximo Cuadros <mcuadros@gmail.com>2017-01-30 23:42:11 +0100
commit30ebf1bd9bb44f540d31633a12689c7d8b6a0167 (patch)
treede0ea9c6d290bc4e43326c0935a83d104a1b8df2 /fixtures
parent80179adaab815eaf75099a5ff31e48c6bd07d1dc (diff)
downloadgo-git-30ebf1bd9bb44f540d31633a12689c7d8b6a0167.tar.gz
new git fixture path
Diffstat (limited to 'fixtures')
-rw-r--r--fixtures/fixtures.go312
1 files changed, 0 insertions, 312 deletions
diff --git a/fixtures/fixtures.go b/fixtures/fixtures.go
deleted file mode 100644
index d467caf..0000000
--- a/fixtures/fixtures.go
+++ /dev/null
@@ -1,312 +0,0 @@
-package fixtures
-
-import (
- "errors"
- "fmt"
- "go/build"
- "io/ioutil"
- "os"
- "path/filepath"
-
- "gopkg.in/src-d/go-git.v4/plumbing"
-
- "github.com/alcortesm/tgz"
- "gopkg.in/check.v1"
- "srcd.works/go-billy.v1"
- "srcd.works/go-billy.v1/osfs"
-)
-
-var RootFolder = ""
-
-const DataFolder = "data"
-
-var folders = make(map[string]bool, 0)
-
-var fixtures = Fixtures{{
- Tags: []string{"packfile", "ofs-delta", ".git", "root-reference"},
- URL: "https://github.com/git-fixtures/root-references.git",
- Head: plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5"),
- PackfileHash: plumbing.NewHash("135fe3d1ad828afe68706f1d481aedbcfa7a86d2"),
- DotGitHash: plumbing.NewHash("78c5fb882e76286d8201016cffee63ea7060a0c2"),
- ObjectsCount: 68,
-}, {
- Tags: []string{"packfile", "ofs-delta", ".git"},
- URL: "https://github.com/git-fixtures/basic.git",
- Head: plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5"),
- PackfileHash: plumbing.NewHash("a3fed42da1e8189a077c0e6846c040dcf73fc9dd"),
- DotGitHash: plumbing.NewHash("7a725350b88b05ca03541b59dd0649fda7f521f2"),
- ObjectsCount: 31,
-}, {
- Tags: []string{"packfile", "ref-delta", ".git"},
- URL: "https://github.com/git-fixtures/basic.git",
- Head: plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5"),
- PackfileHash: plumbing.NewHash("c544593473465e6315ad4182d04d366c4592b829"),
- DotGitHash: plumbing.NewHash("7cbde0ca02f13aedd5ec8b358ca17b1c0bf5ee64"),
- ObjectsCount: 31,
-}, {
- Tags: []string{"packfile", "ofs-delta", ".git", "single-branch"},
- URL: "https://github.com/git-fixtures/basic.git",
- Head: plumbing.NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5"),
- PackfileHash: plumbing.NewHash("61f0ee9c75af1f9678e6f76ff39fbe372b6f1c45"),
- DotGitHash: plumbing.NewHash("21504f6d2cc2ef0c9d6ebb8802c7b49abae40c1a"),
- ObjectsCount: 28,
-}, {
- Tags: []string{".git", "merge-conflict"},
- URL: "https://github.com/git-fixtures/basic.git",
- DotGitHash: plumbing.NewHash("4870d54b5b04e43da8cf99ceec179d9675494af8"),
-}, {
- Tags: []string{".git", "resolve-undo"},
- URL: "https://github.com/git-fixtures/basic.git",
- DotGitHash: plumbing.NewHash("df6781fd40b8f4911d70ce71f8387b991615cd6d"),
-}, {
- Tags: []string{".git", "intent-to-add"},
- URL: "https://github.com/git-fixtures/basic.git",
- DotGitHash: plumbing.NewHash("4e7600af05c3356e8b142263e127b76f010facfc"),
-}, {
- Tags: []string{".git", "index-v4"},
- URL: "https://github.com/git-fixtures/basic.git",
- DotGitHash: plumbing.NewHash("935e5ac17c41c309c356639816ea0694a568c484"),
-}, {
- Tags: []string{"worktree"},
- URL: "https://github.com/git-fixtures/basic.git",
- WorktreeHash: plumbing.NewHash("e4413db6700d0e72e7680b17c3d5ebbc2d1861bc"),
-}, {
- Tags: []string{"packfile", ".git", "unpacked", "multi-packfile"},
- URL: "https://github.com/src-d/go-git.git",
- Head: plumbing.NewHash("e8788ad9165781196e917292d6055cba1d78664e"),
- PackfileHash: plumbing.NewHash("3559b3b47e695b33b0913237a4df3357e739831c"),
- DotGitHash: plumbing.NewHash("174be6bd4292c18160542ae6dc6704b877b8a01a"),
- ObjectsCount: 2133,
-}, {
- Tags: []string{"packfile", ".git", "tags"},
- URL: "https://github.com/git-fixtures/tags.git",
- Head: plumbing.NewHash("f7b877701fbf855b44c0a9e86f3fdce2c298b07f"),
- DotGitHash: plumbing.NewHash("c0c7c57ab1753ddbd26cc45322299ddd12842794"),
- PackfileHash: plumbing.NewHash("b68617dd8637fe6409d9842825a843a1d9a6e484"),
- ObjectsCount: 7,
-}, {
- Tags: []string{"packfile"},
- URL: "https://github.com/spinnaker/spinnaker.git",
- Head: plumbing.NewHash("06ce06d0fc49646c4de733c45b7788aabad98a6f"),
- PackfileHash: plumbing.NewHash("f2e0a8889a746f7600e07d2246a2e29a72f696be"),
-}, {
- Tags: []string{"packfile"},
- URL: "https://github.com/jamesob/desk.git",
- Head: plumbing.NewHash("d2313db6e7ca7bac79b819d767b2a1449abb0a5d"),
- PackfileHash: plumbing.NewHash("4ec6344877f494690fc800aceaf2ca0e86786acb"),
-}, {
- Tags: []string{"packfile", "empty-folder"},
- URL: "https://github.com/cpcs499/Final_Pres_P.git",
- Head: plumbing.NewHash("70bade703ce556c2c7391a8065c45c943e8b6bc3"),
- PackfileHash: plumbing.NewHash("29f304662fd64f102d94722cf5bd8802d9a9472c"),
- DotGitHash: plumbing.NewHash("e1580a78f7d36791249df76df8a2a2613d629902"),
-}, {
- Tags: []string{"packfile", "diff-tree"},
- URL: "https://github.com/github/gem-builder.git",
- PackfileHash: plumbing.NewHash("1ea0b3971fd64fdcdf3282bfb58e8cf10095e4e6"),
-}, {
- Tags: []string{"packfile", "diff-tree"},
- URL: "https://github.com/githubtraining/example-branches.git",
- PackfileHash: plumbing.NewHash("bb8ee94710d3fa39379a630f76812c187217b312"),
-}, {
- Tags: []string{"packfile", "diff-tree"},
- URL: "https://github.com/rumpkernel/rumprun-xen.git",
- PackfileHash: plumbing.NewHash("7861f2632868833a35fe5e4ab94f99638ec5129b"),
-}, {
- Tags: []string{"packfile", "diff-tree"},
- URL: "https://github.com/mcuadros/skeetr.git",
- PackfileHash: plumbing.NewHash("36ef7a2296bfd526020340d27c5e1faa805d8d38"),
-}, {
- Tags: []string{"packfile", "diff-tree"},
- URL: "https://github.com/dezfowler/LiteMock.git",
- PackfileHash: plumbing.NewHash("0d9b6cfc261785837939aaede5986d7a7c212518"),
-}, {
- Tags: []string{"packfile", "diff-tree"},
- URL: "https://github.com/tyba/storable.git",
- PackfileHash: plumbing.NewHash("0d3d824fb5c930e7e7e1f0f399f2976847d31fd3"),
-}, {
- Tags: []string{"packfile", "diff-tree"},
- URL: "https://github.com/toqueteos/ts3.git",
- PackfileHash: plumbing.NewHash("21b33a26eb7ffbd35261149fe5d886b9debab7cb"),
-}, {
- Tags: []string{"empty", ".git"},
- URL: "https://github.com/git-fixtures/empty.git",
- DotGitHash: plumbing.NewHash("bf3fedcc8e20fd0dec9172987ceea0038d17b516"),
- ObjectsCount: 0,
-}}
-
-func All() Fixtures {
- return fixtures
-}
-
-func Basic() Fixtures {
- return ByURL("https://github.com/git-fixtures/basic.git").
- Exclude("single-branch")
-}
-
-func ByURL(url string) Fixtures {
- return fixtures.ByURL(url)
-}
-
-func ByTag(tag string) Fixtures {
- return fixtures.ByTag(tag)
-}
-
-type Fixture struct {
- URL string
- Tags []string
- Head plumbing.Hash
- PackfileHash plumbing.Hash
- DotGitHash plumbing.Hash
- WorktreeHash plumbing.Hash
- ObjectsCount int32
-}
-
-func (f *Fixture) Is(tag string) bool {
- for _, t := range f.Tags {
- if t == tag {
- return true
- }
- }
-
- return false
-}
-
-func (f *Fixture) Packfile() *os.File {
- fn := filepath.Join(RootFolder, DataFolder, fmt.Sprintf("pack-%s.pack", f.PackfileHash))
- file, err := os.Open(fn)
- if err != nil {
- panic(err)
- }
-
- return file
-}
-
-func (f *Fixture) Idx() *os.File {
- fn := filepath.Join(RootFolder, DataFolder, fmt.Sprintf("pack-%s.idx", f.PackfileHash))
- file, err := os.Open(fn)
- if err != nil {
- panic(err)
- }
-
- return file
-}
-
-// DotGit creates a new temporary directory and unpacks the repository .git
-// directory into it. Multiple calls to DotGit returns different directories.
-func (f *Fixture) DotGit() billy.Filesystem {
- fn := filepath.Join(RootFolder, DataFolder, fmt.Sprintf("git-%s.tgz", f.DotGitHash))
- path, err := tgz.Extract(fn)
- if err != nil {
- panic(err)
- }
-
- folders[path] = true
- return osfs.New(path)
-}
-
-func (f *Fixture) Worktree() billy.Filesystem {
- fn := filepath.Join(RootFolder, DataFolder, fmt.Sprintf("git-%s.tgz", f.DotGitHash))
- git, err := tgz.Extract(fn)
- if err != nil {
- panic(err)
- }
-
- worktree, err := ioutil.TempDir("", "worktree")
- if err != nil {
- panic(err)
- }
-
- if err := os.Rename(git, filepath.Join(worktree, ".git")); err != nil {
- panic(err)
- }
-
- return osfs.New(worktree)
-}
-
-type Fixtures []*Fixture
-
-func (g Fixtures) Test(c *check.C, test func(*Fixture)) {
- for _, f := range g {
- c.Logf("executing test at %s %s", f.URL, f.Tags)
- test(f)
- }
-}
-
-func (g Fixtures) One() *Fixture {
- return g[0]
-}
-
-func (g Fixtures) ByTag(tag string) Fixtures {
- r := make(Fixtures, 0)
- for _, f := range g {
- if f.Is(tag) {
- r = append(r, f)
- }
- }
-
- return r
-}
-func (g Fixtures) ByURL(url string) Fixtures {
- r := make(Fixtures, 0)
- for _, f := range g {
- if f.URL == url {
- r = append(r, f)
- }
- }
-
- return r
-}
-
-func (g Fixtures) Exclude(tag string) Fixtures {
- r := make(Fixtures, 0)
- for _, f := range g {
- if !f.Is(tag) {
- r = append(r, f)
- }
- }
-
- return r
-}
-
-// Init sets the correct path to access the fixtures files
-func Init() error {
- srcs := build.Default.SrcDirs()
-
- for _, src := range srcs {
- rf := filepath.Join(
- src, "gopkg.in/src-d/go-git.v4", "fixtures",
- )
-
- if _, err := os.Stat(rf); err == nil {
- RootFolder = rf
- return nil
- }
- }
-
- return errors.New("fixtures folder not found")
-}
-
-// Clean cleans all the temporal files created
-func Clean() error {
- for f := range folders {
- err := os.RemoveAll(f)
- if err != nil {
- return err
- }
-
- delete(folders, f)
- }
-
- return nil
-}
-
-type Suite struct{}
-
-func (s *Suite) SetUpSuite(c *check.C) {
- c.Assert(Init(), check.IsNil)
-}
-
-func (s *Suite) TearDownSuite(c *check.C) {
- c.Assert(Clean(), check.IsNil)
-}