aboutsummaryrefslogtreecommitdiffstats
path: root/examples/fs_implementation
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2016-12-12 15:50:03 +0100
committerGitHub <noreply@github.com>2016-12-12 15:50:03 +0100
commit3967812bd0de40330dfbb9e1a7d14d4073cc1b10 (patch)
treedbd5df2a66bdd50df40fd773e1d1ec284483ecfe /examples/fs_implementation
parent6f701ecc18909959364b708b8efddd03cf4e809c (diff)
downloadgo-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.go118
-rw-r--r--examples/fs_implementation/main_test.go197
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)
- }
- }
-}
-*/