mirror of
https://github.com/minio/mc.git
synced 2025-11-13 12:22:45 +03:00
Changes to test framework, remove references to 'Cmd'wq
This commit is contained in:
@@ -27,7 +27,7 @@ import (
|
|||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestCatCmd(c *C) {
|
func (s *TestSuite) TestCat(c *C) {
|
||||||
/// filesystem
|
/// filesystem
|
||||||
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
@@ -55,7 +55,7 @@ func (s *CmdTestSuite) TestCatCmd(c *C) {
|
|||||||
c.Assert(catURL(objectPath), Not(IsNil))
|
c.Assert(catURL(objectPath), Not(IsNil))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestCatContext(c *C) {
|
func (s *TestSuite) TestCatContext(c *C) {
|
||||||
err := app.Run([]string{os.Args[0], "cat", server.URL + "/bucket/object1"})
|
err := app.Run([]string{os.Args[0], "cat", server.URL + "/bucket/object1"})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(console.IsExited, Equals, false)
|
c.Assert(console.IsExited, Equals, false)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import (
|
|||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestCommonMethods(c *C) {
|
func (s *TestSuite) TestCommonMethods(c *C) {
|
||||||
/// filesystem
|
/// filesystem
|
||||||
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import (
|
|||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestConfigAliasContext(c *C) {
|
func (s *TestSuite) TestConfigAliasContext(c *C) {
|
||||||
console.IsExited = false
|
console.IsExited = false
|
||||||
|
|
||||||
err := app.Run([]string{os.Args[0], "config", "alias", "add", "test", "htt://test.io"})
|
err := app.Run([]string{os.Args[0], "config", "alias", "add", "test", "htt://test.io"})
|
||||||
@@ -41,7 +41,7 @@ func (s *CmdTestSuite) TestConfigAliasContext(c *C) {
|
|||||||
console.IsExited = false
|
console.IsExited = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestConfigHostContext(c *C) {
|
func (s *TestSuite) TestConfigHostContext(c *C) {
|
||||||
console.IsExited = false
|
console.IsExited = false
|
||||||
|
|
||||||
err := app.Run([]string{os.Args[0], "config", "host", "add", "*test.io", "invalid", "invalid"})
|
err := app.Run([]string{os.Args[0], "config", "host", "add", "*test.io", "invalid", "invalid"})
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import (
|
|||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestCopyURLType(c *C) {
|
func (s *TestSuite) TestCopyURLType(c *C) {
|
||||||
sourceURLs := []string{server.URL + "/bucket/object1"}
|
sourceURLs := []string{server.URL + "/bucket/object1"}
|
||||||
targetURL := server.URL + "/bucket/test"
|
targetURL := server.URL + "/bucket/test"
|
||||||
c.Assert(guessCopyURLType(sourceURLs, targetURL), Equals, copyURLsTypeA)
|
c.Assert(guessCopyURLType(sourceURLs, targetURL), Equals, copyURLsTypeA)
|
||||||
@@ -53,8 +53,7 @@ func (s *CmdTestSuite) TestCopyURLType(c *C) {
|
|||||||
c.Assert(guessCopyURLType(sourceURLs, targetURL), Equals, copyURLsTypeInvalid)
|
c.Assert(guessCopyURLType(sourceURLs, targetURL), Equals, copyURLsTypeInvalid)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO fix both copy and mirror
|
func (s *TestSuite) TestCopyContext(c *C) {
|
||||||
func (s *CmdTestSuite) TestCopyContext(c *C) {
|
|
||||||
err := app.Run([]string{os.Args[0], "cp", server.URL + "/invalid...", server.URL + "/bucket"})
|
err := app.Run([]string{os.Args[0], "cp", server.URL + "/invalid...", server.URL + "/bucket"})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(console.IsError, Equals, true)
|
c.Assert(console.IsError, Equals, true)
|
||||||
@@ -63,7 +62,7 @@ func (s *CmdTestSuite) TestCopyContext(c *C) {
|
|||||||
console.IsError = false
|
console.IsError = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestMirrorContext(c *C) {
|
func (s *TestSuite) TestMirrorContext(c *C) {
|
||||||
err := app.Run([]string{os.Args[0], "mirror", server.URL + "/invalid...", server.URL + "/bucket"})
|
err := app.Run([]string{os.Args[0], "mirror", server.URL + "/invalid...", server.URL + "/bucket"})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(console.IsError, Equals, true)
|
c.Assert(console.IsError, Equals, true)
|
||||||
|
|||||||
@@ -78,15 +78,15 @@ func mainDiff(ctx *cli.Context) {
|
|||||||
secondURL := getAliasURL(secondArg, config.Aliases)
|
secondURL := getAliasURL(secondArg, config.Aliases)
|
||||||
|
|
||||||
newFirstURL := stripRecursiveURL(firstURL)
|
newFirstURL := stripRecursiveURL(firstURL)
|
||||||
for diff := range doDiffCmd(newFirstURL, secondURL, isURLRecursive(firstURL)) {
|
for diff := range doDiff(newFirstURL, secondURL, isURLRecursive(firstURL)) {
|
||||||
fatalIf(diff.Error.Trace(newFirstURL, secondURL), "Failed to diff ‘"+firstURL+"’ and ‘"+secondURL+"’.")
|
fatalIf(diff.Error.Trace(newFirstURL, secondURL), "Failed to diff ‘"+firstURL+"’ and ‘"+secondURL+"’.")
|
||||||
|
|
||||||
Prints("%s\n", diff)
|
Prints("%s\n", diff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// doDiffCmd - Execute the diff command
|
// doDiff - Execute the diff command
|
||||||
func doDiffCmd(firstURL, secondURL string, recursive bool) <-chan DiffMessage {
|
func doDiff(firstURL, secondURL string, recursive bool) <-chan DiffMessage {
|
||||||
ch := make(chan DiffMessage, 10000)
|
ch := make(chan DiffMessage, 10000)
|
||||||
go doDiffInRoutine(firstURL, secondURL, recursive, ch)
|
go doDiffInRoutine(firstURL, secondURL, recursive, ch)
|
||||||
return ch
|
return ch
|
||||||
|
|||||||
10
diff_test.go
10
diff_test.go
@@ -28,7 +28,7 @@ import (
|
|||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestDiffObjects(c *C) {
|
func (s *TestSuite) TestDiffObjects(c *C) {
|
||||||
/// filesystem
|
/// filesystem
|
||||||
root1, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
root1, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
@@ -50,12 +50,12 @@ func (s *CmdTestSuite) TestDiffObjects(c *C) {
|
|||||||
perr = putTarget(objectPath2, int64(dataLen), bytes.NewReader([]byte(data)))
|
perr = putTarget(objectPath2, int64(dataLen), bytes.NewReader([]byte(data)))
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
|
|
||||||
for diff := range doDiffCmd(objectPath1, objectPath2, false) {
|
for diff := range doDiff(objectPath1, objectPath2, false) {
|
||||||
c.Assert(diff.Error, IsNil)
|
c.Assert(diff.Error, IsNil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestDiffDirs(c *C) {
|
func (s *TestSuite) TestDiffDirs(c *C) {
|
||||||
/// filesystem
|
/// filesystem
|
||||||
root1, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
root1, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
@@ -82,12 +82,12 @@ func (s *CmdTestSuite) TestDiffDirs(c *C) {
|
|||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
for diff := range doDiffCmd(root1, root2, false) {
|
for diff := range doDiff(root1, root2, false) {
|
||||||
c.Assert(diff.Error, IsNil)
|
c.Assert(diff.Error, IsNil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestDiffContext(c *C) {
|
func (s *TestSuite) TestDiffContext(c *C) {
|
||||||
err := app.Run([]string{os.Args[0], "diff", server.URL + "/bucket", server.URL + "/bucket"})
|
err := app.Run([]string{os.Args[0], "diff", server.URL + "/bucket", server.URL + "/bucket"})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(console.IsExited, Equals, false)
|
c.Assert(console.IsExited, Equals, false)
|
||||||
|
|||||||
4
error.go
4
error.go
@@ -19,7 +19,6 @@ package main
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/minio/mc/pkg/console"
|
"github.com/minio/mc/pkg/console"
|
||||||
"github.com/minio/minio/pkg/probe"
|
"github.com/minio/minio/pkg/probe"
|
||||||
@@ -58,7 +57,7 @@ func fatalIf(err *probe.Error, msg string) {
|
|||||||
console.Fatalln(probe.NewError(err))
|
console.Fatalln(probe.NewError(err))
|
||||||
}
|
}
|
||||||
console.Println(string(json))
|
console.Println(string(json))
|
||||||
os.Exit(1)
|
console.Fatal("")
|
||||||
}
|
}
|
||||||
if !globalDebugFlag {
|
if !globalDebugFlag {
|
||||||
console.Fatalln(fmt.Sprintf("%s %s", msg, err.ToGoError()))
|
console.Fatalln(fmt.Sprintf("%s %s", msg, err.ToGoError()))
|
||||||
@@ -90,6 +89,7 @@ func errorIf(err *probe.Error, msg string) {
|
|||||||
console.Fatalln(probe.NewError(err))
|
console.Fatalln(probe.NewError(err))
|
||||||
}
|
}
|
||||||
console.Println(string(json))
|
console.Println(string(json))
|
||||||
|
console.Error("")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !globalDebugFlag {
|
if !globalDebugFlag {
|
||||||
|
|||||||
6
ls.go
6
ls.go
@@ -104,13 +104,12 @@ func parseContent(c *client.Content) ContentMessage {
|
|||||||
|
|
||||||
// doList - list all entities inside a folder.
|
// doList - list all entities inside a folder.
|
||||||
func doList(clnt client.Client, recursive, lsPrefixMode bool) *probe.Error {
|
func doList(clnt client.Client, recursive, lsPrefixMode bool) *probe.Error {
|
||||||
var err *probe.Error
|
|
||||||
parentContent, err := clnt.Stat()
|
parentContent, err := clnt.Stat()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err.Trace(clnt.URL().String())
|
return err.Trace(clnt.URL().String())
|
||||||
}
|
}
|
||||||
if parentContent.Type.IsDir() && lsPrefixMode {
|
if parentContent.Type.IsDir() && lsPrefixMode {
|
||||||
console.Println(console.Colorize("Dir", fmt.Sprintf("%s", clnt.URL().String())))
|
console.Println(console.Colorize("Dir", fmt.Sprintf("%s:", clnt.URL().String())))
|
||||||
}
|
}
|
||||||
for contentCh := range clnt.List(recursive) {
|
for contentCh := range clnt.List(recursive) {
|
||||||
if contentCh.Err != nil {
|
if contentCh.Err != nil {
|
||||||
@@ -132,6 +131,9 @@ func doList(clnt client.Client, recursive, lsPrefixMode bool) *probe.Error {
|
|||||||
err = contentCh.Err.Trace()
|
err = contentCh.Err.Trace()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
if parentContent.Type.IsRegular() && lsPrefixMode {
|
||||||
|
console.Println("")
|
||||||
|
}
|
||||||
Prints("%s\n", parseContent(contentCh.Content))
|
Prints("%s\n", parseContent(contentCh.Content))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
21
ls_test.go
21
ls_test.go
@@ -23,12 +23,13 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/minio/mc/pkg/client"
|
||||||
"github.com/minio/mc/pkg/console"
|
"github.com/minio/mc/pkg/console"
|
||||||
"github.com/minio/minio/pkg/probe"
|
"github.com/minio/minio/pkg/probe"
|
||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestLSCmd(c *C) {
|
func (s *TestSuite) TestLS(c *C) {
|
||||||
/// filesystem
|
/// filesystem
|
||||||
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
root, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
@@ -44,10 +45,14 @@ func (s *CmdTestSuite) TestLSCmd(c *C) {
|
|||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
perr = doListCmd(root, false)
|
var clnt client.Client
|
||||||
|
clnt, perr = target2Client(root)
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
|
|
||||||
perr = doListCmd(root, true)
|
perr = doList(clnt, false, false)
|
||||||
|
c.Assert(perr, IsNil)
|
||||||
|
|
||||||
|
perr = doList(clnt, true, false)
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
|
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 10; i++ {
|
||||||
@@ -57,14 +62,18 @@ func (s *CmdTestSuite) TestLSCmd(c *C) {
|
|||||||
perr := putTarget(objectPath, int64(dataLen), bytes.NewReader([]byte(data)))
|
perr := putTarget(objectPath, int64(dataLen), bytes.NewReader([]byte(data)))
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
}
|
}
|
||||||
perr = doListCmd(server.URL+"/bucket", false)
|
|
||||||
|
clnt, perr = target2Client(server.URL + "/bucket")
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
|
|
||||||
perr = doListCmd(server.URL+"/bucket", true)
|
perr = doList(clnt, false, false)
|
||||||
|
c.Assert(perr, IsNil)
|
||||||
|
|
||||||
|
perr = doList(clnt, true, false)
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestLSContext(c *C) {
|
func (s *TestSuite) TestLSContext(c *C) {
|
||||||
err := app.Run([]string{os.Args[0], "ls", server.URL + "/bucket"})
|
err := app.Run([]string{os.Args[0], "ls", server.URL + "/bucket"})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(console.IsError, Equals, false)
|
c.Assert(console.IsError, Equals, false)
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ func mainMakeBucket(ctx *cli.Context) {
|
|||||||
for _, arg := range ctx.Args() {
|
for _, arg := range ctx.Args() {
|
||||||
targetURL := getAliasURL(arg, config.Aliases)
|
targetURL := getAliasURL(arg, config.Aliases)
|
||||||
|
|
||||||
fatalIf(doMakeBucketCmd(targetURL).Trace(targetURL), "Unable to make bucket ‘"+targetURL+"’.")
|
fatalIf(doMakeBucket(targetURL).Trace(targetURL), "Unable to make bucket ‘"+targetURL+"’.")
|
||||||
Prints("%s\n", MakeBucketMessage{
|
Prints("%s\n", MakeBucketMessage{
|
||||||
Status: "success",
|
Status: "success",
|
||||||
Bucket: targetURL,
|
Bucket: targetURL,
|
||||||
@@ -99,8 +99,8 @@ func mainMakeBucket(ctx *cli.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// doMakeBucketCmd -
|
// doMakeBucket -
|
||||||
func doMakeBucketCmd(targetURL string) *probe.Error {
|
func doMakeBucket(targetURL string) *probe.Error {
|
||||||
clnt, err := target2Client(targetURL)
|
clnt, err := target2Client(targetURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err.Trace(targetURL)
|
return err.Trace(targetURL)
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ import (
|
|||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestMbAndAccessCmd(c *C) {
|
func (s *TestSuite) TestMbAndAccess(c *C) {
|
||||||
perr := doMakeBucketCmd(server.URL + "/bucket")
|
perr := doMakeBucket(server.URL + "/bucket")
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
|
|
||||||
perr = doSetAccess(server.URL+"/bucket", "public-read-write")
|
perr = doSetAccess(server.URL+"/bucket", "public-read-write")
|
||||||
@@ -34,7 +34,7 @@ func (s *CmdTestSuite) TestMbAndAccessCmd(c *C) {
|
|||||||
c.Assert(perr, Not(IsNil))
|
c.Assert(perr, Not(IsNil))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestMBContext(c *C) {
|
func (s *TestSuite) TestMBContext(c *C) {
|
||||||
console.IsExited = false
|
console.IsExited = false
|
||||||
|
|
||||||
err := app.Run([]string{os.Args[0], "mb", server.URL + "/bucket"})
|
err := app.Run([]string{os.Args[0], "mb", server.URL + "/bucket"})
|
||||||
@@ -52,7 +52,7 @@ func (s *CmdTestSuite) TestMBContext(c *C) {
|
|||||||
console.IsExited = false
|
console.IsExited = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestAccessContext(c *C) {
|
func (s *TestSuite) TestAccessContext(c *C) {
|
||||||
console.IsExited = false
|
console.IsExited = false
|
||||||
|
|
||||||
err := app.Run([]string{os.Args[0], "access", "set", "private", server.URL + "/bucket"})
|
err := app.Run([]string{os.Args[0], "access", "set", "private", server.URL + "/bucket"})
|
||||||
|
|||||||
@@ -36,20 +36,22 @@ var customConfigDir string
|
|||||||
|
|
||||||
func Test(t *testing.T) { TestingT(t) }
|
func Test(t *testing.T) { TestingT(t) }
|
||||||
|
|
||||||
type CmdTestSuite struct{}
|
type TestSuite struct{}
|
||||||
|
|
||||||
var _ = Suite(&CmdTestSuite{})
|
var _ = Suite(&TestSuite{})
|
||||||
|
|
||||||
var server *httptest.Server
|
var server *httptest.Server
|
||||||
var app *cli.App
|
var app *cli.App
|
||||||
|
|
||||||
func (s *CmdTestSuite) SetUpSuite(c *C) {
|
func (s *TestSuite) SetUpSuite(c *C) {
|
||||||
objectAPI := objectAPIHandler(objectAPIHandler{lock: &sync.Mutex{}, bucket: "bucket", object: make(map[string][]byte)})
|
objectAPI := objectAPIHandler(objectAPIHandler{lock: &sync.Mutex{}, bucket: "bucket", object: make(map[string][]byte)})
|
||||||
server = httptest.NewServer(objectAPI)
|
server = httptest.NewServer(objectAPI)
|
||||||
console.IsTesting = true
|
console.IsTesting = true
|
||||||
|
|
||||||
// do not set it elsewhere, leads to data races since this is a global flag
|
// do not set it elsewhere, leads to data races since this is a global flag
|
||||||
globalQuietFlag = true
|
globalQuietFlag = true // quiet is set to turn of progress bar
|
||||||
|
// do not set it elsewhere, leads to data races since this is a global flag
|
||||||
|
globalJSONFlag = true // json is set to avoid printing colors upon terminals
|
||||||
|
|
||||||
tmpDir, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
tmpDir, err := ioutil.TempDir(os.TempDir(), "cmd-")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
@@ -77,14 +79,14 @@ func (s *CmdTestSuite) SetUpSuite(c *C) {
|
|||||||
app = registerApp()
|
app = registerApp()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TearDownSuite(c *C) {
|
func (s *TestSuite) TearDownSuite(c *C) {
|
||||||
os.RemoveAll(customConfigDir)
|
os.RemoveAll(customConfigDir)
|
||||||
if server != nil {
|
if server != nil {
|
||||||
server.Close()
|
server.Close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestGetNewClient(c *C) {
|
func (s *TestSuite) TestGetNewClient(c *C) {
|
||||||
_, err := getNewClient("http://example.com/bucket1", hostConfig{})
|
_, err := getNewClient("http://example.com/bucket1", hostConfig{})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
_, err = getNewClient("https://example.com/bucket1", hostConfig{})
|
_, err = getNewClient("https://example.com/bucket1", hostConfig{})
|
||||||
@@ -97,7 +99,7 @@ func (s *CmdTestSuite) TestGetNewClient(c *C) {
|
|||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestNewConfigV2(c *C) {
|
func (s *TestSuite) TestNewConfigV2(c *C) {
|
||||||
root, err := ioutil.TempDir(os.TempDir(), "mc-")
|
root, err := ioutil.TempDir(os.TempDir(), "mc-")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
defer os.RemoveAll(root)
|
defer os.RemoveAll(root)
|
||||||
@@ -153,7 +155,7 @@ func (s *CmdTestSuite) TestNewConfigV2(c *C) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestRecursiveURL(c *C) {
|
func (s *TestSuite) TestRecursiveURL(c *C) {
|
||||||
c.Assert(isURLRecursive("url..."), Equals, true)
|
c.Assert(isURLRecursive("url..."), Equals, true)
|
||||||
c.Assert(isURLRecursive("url.."), Equals, false)
|
c.Assert(isURLRecursive("url.."), Equals, false)
|
||||||
c.Assert(stripRecursiveURL("url..."), Equals, "url")
|
c.Assert(stripRecursiveURL("url..."), Equals, "url")
|
||||||
@@ -162,7 +164,7 @@ func (s *CmdTestSuite) TestRecursiveURL(c *C) {
|
|||||||
c.Assert(stripRecursiveURL("...url"), Equals, "...url")
|
c.Assert(stripRecursiveURL("...url"), Equals, "...url")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestHostConfig(c *C) {
|
func (s *TestSuite) TestHostConfig(c *C) {
|
||||||
hostcfg, err := getHostConfig("https://s3.amazonaws.com")
|
hostcfg, err := getHostConfig("https://s3.amazonaws.com")
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(hostcfg.AccessKeyID, Equals, globalAccessKeyID)
|
c.Assert(hostcfg.AccessKeyID, Equals, globalAccessKeyID)
|
||||||
@@ -172,7 +174,7 @@ func (s *CmdTestSuite) TestHostConfig(c *C) {
|
|||||||
c.Assert(err, Not(IsNil))
|
c.Assert(err, Not(IsNil))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestArgs2URL(c *C) {
|
func (s *TestSuite) TestArgs2URL(c *C) {
|
||||||
URLs := []string{"localhost", "s3", "play", "playgo", "play.go", "https://s3-us-west-2.amazonaws.com"}
|
URLs := []string{"localhost", "s3", "play", "playgo", "play.go", "https://s3-us-west-2.amazonaws.com"}
|
||||||
expandedURLs, err := args2URLs(URLs)
|
expandedURLs, err := args2URLs(URLs)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
@@ -184,7 +186,7 @@ func (s *CmdTestSuite) TestArgs2URL(c *C) {
|
|||||||
c.Assert(expandedURLs[5], Equals, "https://s3-us-west-2.amazonaws.com")
|
c.Assert(expandedURLs[5], Equals, "https://s3-us-west-2.amazonaws.com")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestValidPERMS(c *C) {
|
func (s *TestSuite) TestValidPERMS(c *C) {
|
||||||
perms := bucketPerms("private")
|
perms := bucketPerms("private")
|
||||||
c.Assert(perms.isValidBucketPERM(), Equals, true)
|
c.Assert(perms.isValidBucketPERM(), Equals, true)
|
||||||
c.Assert(perms.String(), Equals, "private")
|
c.Assert(perms.String(), Equals, "private")
|
||||||
@@ -199,12 +201,12 @@ func (s *CmdTestSuite) TestValidPERMS(c *C) {
|
|||||||
c.Assert(perms.String(), Equals, "authenticated-read")
|
c.Assert(perms.String(), Equals, "authenticated-read")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestInvalidPERMS(c *C) {
|
func (s *TestSuite) TestInvalidPERMS(c *C) {
|
||||||
perms := bucketPerms("invalid")
|
perms := bucketPerms("invalid")
|
||||||
c.Assert(perms.isValidBucketPERM(), Equals, false)
|
c.Assert(perms.isValidBucketPERM(), Equals, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestGetMcConfigDir(c *C) {
|
func (s *TestSuite) TestGetMcConfigDir(c *C) {
|
||||||
dir, err := getMcConfigDir()
|
dir, err := getMcConfigDir()
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
switch runtime.GOOS {
|
switch runtime.GOOS {
|
||||||
@@ -222,7 +224,7 @@ func (s *CmdTestSuite) TestGetMcConfigDir(c *C) {
|
|||||||
c.Assert(mustGetMcConfigDir(), Equals, dir)
|
c.Assert(mustGetMcConfigDir(), Equals, dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestGetMcConfigPath(c *C) {
|
func (s *TestSuite) TestGetMcConfigPath(c *C) {
|
||||||
dir, err := getMcConfigPath()
|
dir, err := getMcConfigPath()
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
switch runtime.GOOS {
|
switch runtime.GOOS {
|
||||||
@@ -240,7 +242,7 @@ func (s *CmdTestSuite) TestGetMcConfigPath(c *C) {
|
|||||||
c.Assert(mustGetMcConfigPath(), Equals, dir)
|
c.Assert(mustGetMcConfigPath(), Equals, dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestIsvalidAliasName(c *C) {
|
func (s *TestSuite) TestIsvalidAliasName(c *C) {
|
||||||
c.Check(isValidAliasName("helloWorld0"), Equals, true)
|
c.Check(isValidAliasName("helloWorld0"), Equals, true)
|
||||||
c.Check(isValidAliasName("h0SFD2k24Fdsa"), Equals, true)
|
c.Check(isValidAliasName("h0SFD2k24Fdsa"), Equals, true)
|
||||||
c.Check(isValidAliasName("fdslka-4"), Equals, true)
|
c.Check(isValidAliasName("fdslka-4"), Equals, true)
|
||||||
@@ -251,7 +253,7 @@ func (s *CmdTestSuite) TestIsvalidAliasName(c *C) {
|
|||||||
c.Check(isValidAliasName("-fdslka"), Equals, false)
|
c.Check(isValidAliasName("-fdslka"), Equals, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestEmptyExpansions(c *C) {
|
func (s *TestSuite) TestEmptyExpansions(c *C) {
|
||||||
url := getAliasURL("hello", nil)
|
url := getAliasURL("hello", nil)
|
||||||
c.Assert(url, Equals, "hello")
|
c.Assert(url, Equals, "hello")
|
||||||
|
|
||||||
@@ -274,7 +276,7 @@ func (s *CmdTestSuite) TestEmptyExpansions(c *C) {
|
|||||||
c.Assert(url, Equals, "hello")
|
c.Assert(url, Equals, "hello")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestApp(c *C) {
|
func (s *TestSuite) TestApp(c *C) {
|
||||||
err := app.Run([]string{""})
|
err := app.Run([]string{""})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
}
|
}
|
||||||
46
pb.go
46
pb.go
@@ -32,15 +32,15 @@ import (
|
|||||||
"github.com/minio/mc/pkg/console"
|
"github.com/minio/mc/pkg/console"
|
||||||
)
|
)
|
||||||
|
|
||||||
type pbBarCmd int
|
type pbBar int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
pbBarCmdExtend pbBarCmd = iota
|
pbBarExtend pbBar = iota
|
||||||
pbBarCmdProgress
|
pbBarProgress
|
||||||
pbBarCmdFinish
|
pbBarFinish
|
||||||
pbBarCmdPutError
|
pbBarPutError
|
||||||
pbBarCmdGetError
|
pbBarGetError
|
||||||
pbBarCmdSetCaption
|
pbBarSetCaption
|
||||||
)
|
)
|
||||||
|
|
||||||
type proxyReader struct {
|
type proxyReader struct {
|
||||||
@@ -59,12 +59,12 @@ func (r *proxyReader) Close() (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type barMsg struct {
|
type barMsg struct {
|
||||||
Cmd pbBarCmd
|
Op pbBar
|
||||||
Arg interface{}
|
Arg interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
type barSend struct {
|
type barSend struct {
|
||||||
cmdCh chan<- barMsg
|
opCh chan<- barMsg
|
||||||
finishCh <-chan bool
|
finishCh <-chan bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,28 +73,28 @@ func (b *barSend) NewProxyReader(r io.ReadCloser) *proxyReader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b barSend) Extend(total int64) {
|
func (b barSend) Extend(total int64) {
|
||||||
b.cmdCh <- barMsg{Cmd: pbBarCmdExtend, Arg: total}
|
b.opCh <- barMsg{Op: pbBarExtend, Arg: total}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b barSend) Progress(progress int64) {
|
func (b barSend) Progress(progress int64) {
|
||||||
b.cmdCh <- barMsg{Cmd: pbBarCmdProgress, Arg: progress}
|
b.opCh <- barMsg{Op: pbBarProgress, Arg: progress}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b barSend) ErrorPut(size int64) {
|
func (b barSend) ErrorPut(size int64) {
|
||||||
b.cmdCh <- barMsg{Cmd: pbBarCmdPutError, Arg: size}
|
b.opCh <- barMsg{Op: pbBarPutError, Arg: size}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b barSend) ErrorGet(size int64) {
|
func (b barSend) ErrorGet(size int64) {
|
||||||
b.cmdCh <- barMsg{Cmd: pbBarCmdGetError, Arg: size}
|
b.opCh <- barMsg{Op: pbBarGetError, Arg: size}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *barSend) SetCaption(c string) {
|
func (b *barSend) SetCaption(c string) {
|
||||||
b.cmdCh <- barMsg{Cmd: pbBarCmdSetCaption, Arg: c}
|
b.opCh <- barMsg{Op: pbBarSetCaption, Arg: c}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b barSend) Finish() {
|
func (b barSend) Finish() {
|
||||||
defer close(b.cmdCh)
|
defer close(b.opCh)
|
||||||
b.cmdCh <- barMsg{Cmd: pbBarCmdFinish}
|
b.opCh <- barMsg{Op: pbBarFinish}
|
||||||
<-b.finishCh
|
<-b.finishCh
|
||||||
console.Println()
|
console.Println()
|
||||||
}
|
}
|
||||||
@@ -170,12 +170,12 @@ func newCpBar() barSend {
|
|||||||
bar.Format("[=> ]")
|
bar.Format("[=> ]")
|
||||||
}
|
}
|
||||||
for msg := range cmdCh {
|
for msg := range cmdCh {
|
||||||
switch msg.Cmd {
|
switch msg.Op {
|
||||||
case pbBarCmdSetCaption:
|
case pbBarSetCaption:
|
||||||
bar.Prefix(fixateBarCaption(msg.Arg.(string), getFixedWidth(bar.GetWidth(), 18)))
|
bar.Prefix(fixateBarCaption(msg.Arg.(string), getFixedWidth(bar.GetWidth(), 18)))
|
||||||
case pbBarCmdExtend:
|
case pbBarExtend:
|
||||||
atomic.AddInt64(&bar.Total, msg.Arg.(int64))
|
atomic.AddInt64(&bar.Total, msg.Arg.(int64))
|
||||||
case pbBarCmdProgress:
|
case pbBarProgress:
|
||||||
if bar.Total > 0 && !started {
|
if bar.Total > 0 && !started {
|
||||||
started = true
|
started = true
|
||||||
bar.Start()
|
bar.Start()
|
||||||
@@ -184,15 +184,15 @@ func newCpBar() barSend {
|
|||||||
totalBytesRead += msg.Arg.(int64)
|
totalBytesRead += msg.Arg.(int64)
|
||||||
bar.Add64(msg.Arg.(int64))
|
bar.Add64(msg.Arg.(int64))
|
||||||
}
|
}
|
||||||
case pbBarCmdPutError:
|
case pbBarPutError:
|
||||||
if totalBytesRead > msg.Arg.(int64) {
|
if totalBytesRead > msg.Arg.(int64) {
|
||||||
bar.Set64(totalBytesRead - msg.Arg.(int64))
|
bar.Set64(totalBytesRead - msg.Arg.(int64))
|
||||||
}
|
}
|
||||||
case pbBarCmdGetError:
|
case pbBarGetError:
|
||||||
if msg.Arg.(int64) > 0 {
|
if msg.Arg.(int64) > 0 {
|
||||||
bar.Add64(msg.Arg.(int64))
|
bar.Add64(msg.Arg.(int64))
|
||||||
}
|
}
|
||||||
case pbBarCmdFinish:
|
case pbBarFinish:
|
||||||
if started {
|
if started {
|
||||||
bar.Finish()
|
bar.Finish()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,14 +24,14 @@ import (
|
|||||||
. "gopkg.in/check.v1"
|
. "gopkg.in/check.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestValidSessionID(c *C) {
|
func (s *TestSuite) TestValidSessionID(c *C) {
|
||||||
validSid := regexp.MustCompile("^[a-zA-Z]+$")
|
validSid := regexp.MustCompile("^[a-zA-Z]+$")
|
||||||
sid := newSID(8)
|
sid := newSID(8)
|
||||||
c.Assert(len(sid), Equals, 8)
|
c.Assert(len(sid), Equals, 8)
|
||||||
c.Assert(validSid.MatchString(sid), Equals, true)
|
c.Assert(validSid.MatchString(sid), Equals, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestSession(c *C) {
|
func (s *TestSuite) TestSession(c *C) {
|
||||||
perr := createSessionDir()
|
perr := createSessionDir()
|
||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
c.Assert(isSessionDirExists(), Equals, true)
|
c.Assert(isSessionDirExists(), Equals, true)
|
||||||
@@ -54,7 +54,7 @@ func (s *CmdTestSuite) TestSession(c *C) {
|
|||||||
c.Assert(perr, IsNil)
|
c.Assert(perr, IsNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *CmdTestSuite) TestSessionContext(c *C) {
|
func (s *TestSuite) TestSessionContext(c *C) {
|
||||||
err := app.Run([]string{os.Args[0], "session", "list"})
|
err := app.Run([]string{os.Args[0], "session", "list"})
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(console.IsExited, Equals, false)
|
c.Assert(console.IsExited, Equals, false)
|
||||||
|
|||||||
Reference in New Issue
Block a user