diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2016-12-12 15:50:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-12 15:50:03 +0100 |
commit | 3967812bd0de40330dfbb9e1a7d14d4073cc1b10 (patch) | |
tree | dbd5df2a66bdd50df40fd773e1d1ec284483ecfe /examples/fs_implementation | |
parent | 6f701ecc18909959364b708b8efddd03cf4e809c (diff) | |
download | go-git-3967812bd0de40330dfbb9e1a7d14d4073cc1b10.tar.gz |
examples: review, testing and documentation (#176)
* examples reviews, testing and documentation
* including the execution on travis, and fix readme
* fix example link
* including the execution on travis
Diffstat (limited to 'examples/fs_implementation')
-rw-r--r-- | examples/fs_implementation/main.go | 118 | ||||
-rw-r--r-- | examples/fs_implementation/main_test.go | 197 |
2 files changed, 0 insertions, 315 deletions
diff --git a/examples/fs_implementation/main.go b/examples/fs_implementation/main.go deleted file mode 100644 index e5d2851..0000000 --- a/examples/fs_implementation/main.go +++ /dev/null @@ -1,118 +0,0 @@ -package main - -import "fmt" - -func main() { - fmt.Println("example to be fixed") -} - -/* -import ( - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - - "gopkg.in/src-d/go-git.v4" - "gopkg.in/src-d/go-git.v4/storage/filesystem" - "gopkg.in/src-d/go-git.v4/utils/fs" -) - -func main() { - if len(os.Args) != 2 { - usage() - os.Exit(1) - } - - fs := NewCustomFS(os.Args[1]) - - s, err := filesystem.NewStorage(fs, ".git") - if err != nil { - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - - repo, err := git.NewRepository(s) - if err != nil { - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - - iter, err := repo.Commits() - if err != nil { - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - defer iter.Close() - - for { - commit, err := iter.Next() - if err != nil { - if err == io.EOF { - break - } - - fmt.Fprint(os.Stderr, err) - os.Exit(1) - } - - fmt.Println(commit) - } -} - -func usage() { - fmt.Fprintf(os.Stderr, "%s <path to .git dir>", os.Args[0]) -} - -// A simple proxy filesystem example: It mimics local filesystems, using -// 'base' as its root and a funny path separator ("--"). -// -// Example: when constructed with 'newFS("tmp")', a path like 'foo--bar' -// will represent the local path "/tmp/foo/bar". -type CustomFS struct { - base string -} - -const separator = "--" - -func NewCustomFS(path string) *CustomFS { - return &CustomFS{ - base: path, - } -} - -func (fs *CustomFS) Stat(path string) (info os.FileInfo, err error) { - f, err := os.Open(fs.ToReal(path)) - if err != nil { - return nil, err - } - - defer func() { - errClose := f.Close() - if err == nil { - err = errClose - } - }() - - return f.Stat() -} - -func (fs *CustomFS) ToReal(path string) string { - parts := strings.Split(path, separator) - return filepath.Join(fs.base, filepath.Join(parts...)) -} - -func (fs *CustomFS) Open(path string) (fs.ReadSeekCloser, error) { - return os.Open(fs.ToReal(path)) -} - -func (fs *CustomFS) ReadDir(path string) ([]os.FileInfo, error) { - return ioutil.ReadDir(fs.ToReal(path)) -} - -func (fs *CustomFS) Join(elem ...string) string { - return strings.Join(elem, separator) -} -*/ diff --git a/examples/fs_implementation/main_test.go b/examples/fs_implementation/main_test.go deleted file mode 100644 index 7a7607a..0000000 --- a/examples/fs_implementation/main_test.go +++ /dev/null @@ -1,197 +0,0 @@ -package main - -/* -import ( - "io/ioutil" - "os" - "path/filepath" - "reflect" - "regexp" - "testing" - - "github.com/alcortesm/tgz" -) - -func TestMain(m *testing.M) { - setUp() - rval := m.Run() - tearDown() - os.Exit(rval) -} - -func setUp() { - var err error - repo, err = tgz.Extract("../../storage/filesystem/internal/dotgit/fixtures/spinnaker-gc.tgz") - if err != nil { - panic(err) - } -} - -var repo string - -func tearDown() { - err := os.RemoveAll(repo) - if err != nil { - panic(err) - } -} - -func TestJoin(t *testing.T) { - fs := NewCustomFS("") - for i, test := range [...]struct { - input []string - expected string - }{ - { - input: []string{}, - expected: "", - }, { - input: []string{"a"}, - expected: "a", - }, { - input: []string{"a", "b"}, - expected: "a--b", - }, { - input: []string{"a", "b", "c"}, - expected: "a--b--c", - }, - } { - obtained := fs.Join(test.input...) - if obtained != test.expected { - t.Fatalf("test %d:\n\tinput = %v\n\tobtained = %v\n\texpected = %v\n", - i, test.input, obtained, test.expected) - } - } -} - -func TestStat(t *testing.T) { - fs := NewCustomFS(filepath.Join(repo, ".git/")) - for i, path := range [...]string{ - "index", - "info--refs", - "objects--pack--pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", - } { - real, err := os.Open(fs.ToReal(path)) - if err != nil { - t.Fatalf("test %d: openning real: %s", err) - } - - expected, err := real.Stat() - if err != nil { - t.Fatalf("test %d: stat on real: %s", err) - } - - obtained, err := fs.Stat(path) - if err != nil { - t.Fatalf("test %d: fs.Stat unexpected error: %s", i, err) - } - - if !reflect.DeepEqual(obtained, expected) { - t.Fatalf("test %d:\n\tinput = %s\n\tobtained = %v\n\texpected = %v\n", - i, path, obtained, expected) - } - - err = real.Close() - if err != nil { - t.Fatalf("test %d: closing real: %s", i, err) - } - } -} - -func TestStatErrors(t *testing.T) { - fs := NewCustomFS(filepath.Join(repo, ".git/")) - for i, test := range [...]struct { - input string - errRegExp string - }{ - { - input: "bla", - errRegExp: ".*bla: no such file or directory", - }, { - input: "bla--foo", - errRegExp: ".*bla/foo: no such file or directory", - }, - } { - expected := regexp.MustCompile(test.errRegExp) - - _, err := fs.Stat(test.input) - if err == nil { - t.Fatalf("test %d: no error returned", i) - } - if !expected.MatchString(err.Error()) { - t.Fatalf("test %d: error missmatch\n\tobtained = %q\n\texpected regexp = %q\n", - i, err.Error(), test.errRegExp) - } - } -} - -func TestOpen(t *testing.T) { - fs := NewCustomFS(filepath.Join(repo, ".git/")) - for i, path := range [...]string{ - "index", - "info--refs", - "objects--pack--pack-584416f86235cac0d54bfabbdc399fb2b09a5269.pack", - } { - real, err := os.Open(fs.ToReal(path)) - if err != nil { - t.Fatalf("test %d: openning real: %s", err) - } - - realData, err := ioutil.ReadAll(real) - if err != nil { - t.Fatal("test %d: ioutil.ReadAll on real: %s", err) - } - - err = real.Close() - if err != nil { - t.Fatal("test %d: closing real: %s", err) - } - - obtained, err := fs.Open(path) - if err != nil { - t.Fatalf("test %d: fs.Open unexpected error: %s", i, err) - } - - obtainedData, err := ioutil.ReadAll(obtained) - if err != nil { - t.Fatal("test %d: ioutil.ReadAll on obtained: %s", err) - } - - err = obtained.Close() - if err != nil { - t.Fatal("test %d: closing obtained: %s", err) - } - - if !reflect.DeepEqual(obtainedData, realData) { - t.Fatalf("test %d:\n\tinput = %s\n\tobtained = %v\n\texpected = %v\n", - i, path, obtainedData, realData) - } - } -} - -func TestReadDir(t *testing.T) { - fs := NewCustomFS(filepath.Join(repo, ".git/")) - for i, path := range [...]string{ - "info", - ".", - "", - "objects", - "objects--pack", - } { - expected, err := ioutil.ReadDir(fs.ToReal(path)) - if err != nil { - t.Fatalf("test %d: real ReadDir: %s", err) - } - - obtained, err := fs.ReadDir(path) - if err != nil { - t.Fatalf("test %d: fs.ReadDir unexpected error: %s", i, err) - } - - if !reflect.DeepEqual(obtained, expected) { - t.Fatalf("test %d:\n\tinput = %s\n\tobtained = %v\n\texpected = %v\n", - i, path, obtained, expected) - } - } -} -*/ |