mirror of
https://github.com/eiblog/eiblog.git
synced 2026-03-01 00:34:58 +08:00
update vendor
This commit is contained in:
173
vendor/github.com/qiniu/x/cmdline.v7/cmdline_test.go
generated
vendored
Normal file
173
vendor/github.com/qiniu/x/cmdline.v7/cmdline_test.go
generated
vendored
Normal file
@@ -0,0 +1,173 @@
|
||||
package cmdline
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
func equalErr(err error, errExp interface{}) bool {
|
||||
|
||||
if err == nil || errExp == nil {
|
||||
return err == nil && errExp == nil
|
||||
}
|
||||
return err.Error() == errExp.(string)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
func TestComment(t *testing.T) {
|
||||
|
||||
execSub := false
|
||||
ctx := Parser{
|
||||
ExecSub: func(code string) (string, error) {
|
||||
execSub = true
|
||||
return "[" + code + "]", nil
|
||||
},
|
||||
Escape: func(c byte) string {
|
||||
return string(c)
|
||||
},
|
||||
}
|
||||
|
||||
cmd, codeNext, err := ctx.ParseCode("#abc `calc $(a)+$(b)`")
|
||||
if err != EOF || codeNext != "" {
|
||||
t.Fatal("ParseCode: eof is expected")
|
||||
}
|
||||
if execSub {
|
||||
t.Fatal("don't execSub")
|
||||
}
|
||||
if len(cmd) != 0 {
|
||||
t.Fatal("len(cmd) != 0")
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
type caseParse struct {
|
||||
code string
|
||||
cmd []string
|
||||
codeNext string
|
||||
err interface{}
|
||||
}
|
||||
|
||||
func TestParse(t *testing.T) {
|
||||
|
||||
cases := []caseParse{
|
||||
{
|
||||
code: ";b",
|
||||
cmd: []string{"b"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: ";b;abc",
|
||||
cmd: []string{"b"},
|
||||
codeNext: "abc",
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
code: "a`b`\\c",
|
||||
cmd: []string{"a[b]c"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "a`b`c 'c\\n`123`' \"c\\n\"",
|
||||
cmd: []string{"a[b]c", "c\\n`123`", "cn"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "auth qboxtest 'mac AccessKey SecretKey'",
|
||||
cmd: []string{"auth", "qboxtest", "mac AccessKey SecretKey"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "post http://rs.qiniu.com/delete/`base64 Bucket:Key`",
|
||||
cmd: []string{"post", "http://rs.qiniu.com/delete/[base64 Bucket:Key]"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "post http://rs.qiniu.com/delete `base64 Bucket:Key`",
|
||||
cmd: []string{"post", "http://rs.qiniu.com/delete", "[base64 Bucket:Key]"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "post http://rs.qiniu.com/delete/|base64 Bucket:Key|",
|
||||
cmd: []string{"post", "http://rs.qiniu.com/delete/[base64 Bucket:Key]"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: `json '[
|
||||
{"code": 200}, {"code": 612}
|
||||
]'`,
|
||||
cmd: []string{"json", `[
|
||||
{"code": 200}, {"code": 612}
|
||||
]`},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "auth qboxtest ```\nmac AccessKey SecretKey```",
|
||||
cmd: []string{"auth", "qboxtest", "mac AccessKey SecretKey"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "auth qboxtest ===\nmac AccessKey SecretKey```",
|
||||
cmd: []string{"auth", "qboxtest"},
|
||||
codeNext: "mac AccessKey SecretKey```",
|
||||
err: "incomplete string, expect ===",
|
||||
},
|
||||
{
|
||||
code: "auth qboxtest ===\rmac AccessKey SecretKey===",
|
||||
cmd: []string{"auth", "qboxtest", "mac AccessKey SecretKey"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "auth qboxtest ===\n\rmac AccessKey SecretKey===",
|
||||
cmd: []string{"auth", "qboxtest", "\rmac AccessKey SecretKey"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "auth qboxtest ===\r\n\nmac AccessKey SecretKey===",
|
||||
cmd: []string{"auth", "qboxtest", "\nmac AccessKey SecretKey"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
{
|
||||
code: "auth qboxtest ===mac AccessKey SecretKey===",
|
||||
cmd: []string{"auth", "qboxtest", "mac AccessKey SecretKey"},
|
||||
codeNext: "",
|
||||
err: "end of file",
|
||||
},
|
||||
}
|
||||
|
||||
ctx := Parser{
|
||||
ExecSub: func(code string) (string, error) {
|
||||
return "[" + code + "]", nil
|
||||
},
|
||||
Escape: func(c byte) string {
|
||||
return string(c)
|
||||
},
|
||||
}
|
||||
for _, c := range cases {
|
||||
cmd, codeNext, err := ctx.ParseCode(c.code)
|
||||
if !equalErr(err, c.err) {
|
||||
t.Fatal("Parse failed:", c, err)
|
||||
}
|
||||
if !reflect.DeepEqual(cmd, c.cmd) || codeNext != c.codeNext {
|
||||
t.Fatal("Parse failed:", c, cmd, codeNext)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user