Fix the dependency issue (#231)
This commit is contained in:
4
vendor/github.com/kr/pretty/.gitignore
generated
vendored
4
vendor/github.com/kr/pretty/.gitignore
generated
vendored
@@ -1,4 +0,0 @@
|
||||
[568].out
|
||||
_go*
|
||||
_test*
|
||||
_obj
|
||||
9
vendor/github.com/kr/pretty/Readme
generated
vendored
9
vendor/github.com/kr/pretty/Readme
generated
vendored
@@ -1,9 +0,0 @@
|
||||
package pretty
|
||||
|
||||
import "github.com/kr/pretty"
|
||||
|
||||
Package pretty provides pretty-printing for Go values.
|
||||
|
||||
Documentation
|
||||
|
||||
http://godoc.org/github.com/kr/pretty
|
||||
213
vendor/github.com/kr/pretty/diff_test.go
generated
vendored
213
vendor/github.com/kr/pretty/diff_test.go
generated
vendored
@@ -1,213 +0,0 @@
|
||||
package pretty
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"log"
|
||||
"reflect"
|
||||
"testing"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var (
|
||||
_ Logfer = (*testing.T)(nil)
|
||||
_ Logfer = (*testing.B)(nil)
|
||||
_ Printfer = (*log.Logger)(nil)
|
||||
)
|
||||
|
||||
type difftest struct {
|
||||
a interface{}
|
||||
b interface{}
|
||||
exp []string
|
||||
}
|
||||
|
||||
type S struct {
|
||||
A int
|
||||
S *S
|
||||
I interface{}
|
||||
C []int
|
||||
}
|
||||
|
||||
type (
|
||||
N struct{ N int }
|
||||
E interface{}
|
||||
)
|
||||
|
||||
var (
|
||||
c0 = make(chan int)
|
||||
c1 = make(chan int)
|
||||
f0 = func() {}
|
||||
f1 = func() {}
|
||||
i0 = 0
|
||||
i1 = 1
|
||||
)
|
||||
|
||||
var diffs = []difftest{
|
||||
{a: nil, b: nil},
|
||||
{a: S{A: 1}, b: S{A: 1}},
|
||||
|
||||
{0, "", []string{`int != string`}},
|
||||
{0, 1, []string{`0 != 1`}},
|
||||
{S{}, new(S), []string{`pretty.S != *pretty.S`}},
|
||||
{"a", "b", []string{`"a" != "b"`}},
|
||||
{S{}, S{A: 1}, []string{`A: 0 != 1`}},
|
||||
{new(S), &S{A: 1}, []string{`A: 0 != 1`}},
|
||||
{S{S: new(S)}, S{S: &S{A: 1}}, []string{`S.A: 0 != 1`}},
|
||||
{S{}, S{I: 0}, []string{`I: nil != int(0)`}},
|
||||
{S{I: 1}, S{I: "x"}, []string{`I: int != string`}},
|
||||
{S{}, S{C: []int{1}}, []string{`C: []int[0] != []int[1]`}},
|
||||
{S{C: []int{}}, S{C: []int{1}}, []string{`C: []int[0] != []int[1]`}},
|
||||
{S{C: []int{1, 2, 3}}, S{C: []int{1, 2, 4}}, []string{`C[2]: 3 != 4`}},
|
||||
{S{}, S{A: 1, S: new(S)}, []string{`A: 0 != 1`, `S: nil != &pretty.S{}`}},
|
||||
|
||||
// unexported fields of every reflect.Kind (both equal and unequal)
|
||||
{struct{ x bool }{false}, struct{ x bool }{false}, nil},
|
||||
{struct{ x bool }{false}, struct{ x bool }{true}, []string{`x: false != true`}},
|
||||
{struct{ x int }{0}, struct{ x int }{0}, nil},
|
||||
{struct{ x int }{0}, struct{ x int }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x int8 }{0}, struct{ x int8 }{0}, nil},
|
||||
{struct{ x int8 }{0}, struct{ x int8 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x int16 }{0}, struct{ x int16 }{0}, nil},
|
||||
{struct{ x int16 }{0}, struct{ x int16 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x int32 }{0}, struct{ x int32 }{0}, nil},
|
||||
{struct{ x int32 }{0}, struct{ x int32 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x int64 }{0}, struct{ x int64 }{0}, nil},
|
||||
{struct{ x int64 }{0}, struct{ x int64 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x uint }{0}, struct{ x uint }{0}, nil},
|
||||
{struct{ x uint }{0}, struct{ x uint }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x uint8 }{0}, struct{ x uint8 }{0}, nil},
|
||||
{struct{ x uint8 }{0}, struct{ x uint8 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x uint16 }{0}, struct{ x uint16 }{0}, nil},
|
||||
{struct{ x uint16 }{0}, struct{ x uint16 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x uint32 }{0}, struct{ x uint32 }{0}, nil},
|
||||
{struct{ x uint32 }{0}, struct{ x uint32 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x uint64 }{0}, struct{ x uint64 }{0}, nil},
|
||||
{struct{ x uint64 }{0}, struct{ x uint64 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x uintptr }{0}, struct{ x uintptr }{0}, nil},
|
||||
{struct{ x uintptr }{0}, struct{ x uintptr }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x float32 }{0}, struct{ x float32 }{0}, nil},
|
||||
{struct{ x float32 }{0}, struct{ x float32 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x float64 }{0}, struct{ x float64 }{0}, nil},
|
||||
{struct{ x float64 }{0}, struct{ x float64 }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x complex64 }{0}, struct{ x complex64 }{0}, nil},
|
||||
{struct{ x complex64 }{0}, struct{ x complex64 }{1}, []string{`x: (0+0i) != (1+0i)`}},
|
||||
{struct{ x complex128 }{0}, struct{ x complex128 }{0}, nil},
|
||||
{struct{ x complex128 }{0}, struct{ x complex128 }{1}, []string{`x: (0+0i) != (1+0i)`}},
|
||||
{struct{ x [1]int }{[1]int{0}}, struct{ x [1]int }{[1]int{0}}, nil},
|
||||
{struct{ x [1]int }{[1]int{0}}, struct{ x [1]int }{[1]int{1}}, []string{`x[0]: 0 != 1`}},
|
||||
{struct{ x chan int }{c0}, struct{ x chan int }{c0}, nil},
|
||||
{struct{ x chan int }{c0}, struct{ x chan int }{c1}, []string{fmt.Sprintf("x: %p != %p", c0, c1)}},
|
||||
{struct{ x func() }{f0}, struct{ x func() }{f0}, nil},
|
||||
{struct{ x func() }{f0}, struct{ x func() }{f1}, []string{fmt.Sprintf("x: %p != %p", f0, f1)}},
|
||||
{struct{ x interface{} }{0}, struct{ x interface{} }{0}, nil},
|
||||
{struct{ x interface{} }{0}, struct{ x interface{} }{1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x interface{} }{0}, struct{ x interface{} }{""}, []string{`x: int != string`}},
|
||||
{struct{ x interface{} }{0}, struct{ x interface{} }{nil}, []string{`x: int(0) != nil`}},
|
||||
{struct{ x interface{} }{nil}, struct{ x interface{} }{0}, []string{`x: nil != int(0)`}},
|
||||
{struct{ x map[int]int }{map[int]int{0: 0}}, struct{ x map[int]int }{map[int]int{0: 0}}, nil},
|
||||
{struct{ x map[int]int }{map[int]int{0: 0}}, struct{ x map[int]int }{map[int]int{0: 1}}, []string{`x[0]: 0 != 1`}},
|
||||
{struct{ x *int }{new(int)}, struct{ x *int }{new(int)}, nil},
|
||||
{struct{ x *int }{&i0}, struct{ x *int }{&i1}, []string{`x: 0 != 1`}},
|
||||
{struct{ x *int }{nil}, struct{ x *int }{&i0}, []string{`x: nil != &int(0)`}},
|
||||
{struct{ x *int }{&i0}, struct{ x *int }{nil}, []string{`x: &int(0) != nil`}},
|
||||
{struct{ x []int }{[]int{0}}, struct{ x []int }{[]int{0}}, nil},
|
||||
{struct{ x []int }{[]int{0}}, struct{ x []int }{[]int{1}}, []string{`x[0]: 0 != 1`}},
|
||||
{struct{ x string }{"a"}, struct{ x string }{"a"}, nil},
|
||||
{struct{ x string }{"a"}, struct{ x string }{"b"}, []string{`x: "a" != "b"`}},
|
||||
{struct{ x N }{N{0}}, struct{ x N }{N{0}}, nil},
|
||||
{struct{ x N }{N{0}}, struct{ x N }{N{1}}, []string{`x.N: 0 != 1`}},
|
||||
{
|
||||
struct{ x unsafe.Pointer }{unsafe.Pointer(uintptr(0))},
|
||||
struct{ x unsafe.Pointer }{unsafe.Pointer(uintptr(0))},
|
||||
nil,
|
||||
},
|
||||
{
|
||||
struct{ x unsafe.Pointer }{unsafe.Pointer(uintptr(0))},
|
||||
struct{ x unsafe.Pointer }{unsafe.Pointer(uintptr(1))},
|
||||
[]string{`x: 0x0 != 0x1`},
|
||||
},
|
||||
}
|
||||
|
||||
func TestDiff(t *testing.T) {
|
||||
for _, tt := range diffs {
|
||||
got := Diff(tt.a, tt.b)
|
||||
eq := len(got) == len(tt.exp)
|
||||
if eq {
|
||||
for i := range got {
|
||||
eq = eq && got[i] == tt.exp[i]
|
||||
}
|
||||
}
|
||||
if !eq {
|
||||
t.Errorf("diffing % #v", tt.a)
|
||||
t.Errorf("with % #v", tt.b)
|
||||
diffdiff(t, got, tt.exp)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestKeyEqual(t *testing.T) {
|
||||
var emptyInterfaceZero interface{} = 0
|
||||
|
||||
cases := []interface{}{
|
||||
new(bool),
|
||||
new(int),
|
||||
new(int8),
|
||||
new(int16),
|
||||
new(int32),
|
||||
new(int64),
|
||||
new(uint),
|
||||
new(uint8),
|
||||
new(uint16),
|
||||
new(uint32),
|
||||
new(uint64),
|
||||
new(uintptr),
|
||||
new(float32),
|
||||
new(float64),
|
||||
new(complex64),
|
||||
new(complex128),
|
||||
new([1]int),
|
||||
new(chan int),
|
||||
new(unsafe.Pointer),
|
||||
new(interface{}),
|
||||
&emptyInterfaceZero,
|
||||
new(*int),
|
||||
new(string),
|
||||
new(struct{ int }),
|
||||
}
|
||||
|
||||
for _, test := range cases {
|
||||
rv := reflect.ValueOf(test).Elem()
|
||||
if !keyEqual(rv, rv) {
|
||||
t.Errorf("keyEqual(%s, %s) = false want true", rv.Type(), rv.Type())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestFdiff(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
Fdiff(&buf, 0, 1)
|
||||
want := "0 != 1\n"
|
||||
if got := buf.String(); got != want {
|
||||
t.Errorf("Fdiff(0, 1) = %q want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func diffdiff(t *testing.T, got, exp []string) {
|
||||
minus(t, "unexpected:", got, exp)
|
||||
minus(t, "missing:", exp, got)
|
||||
}
|
||||
|
||||
func minus(t *testing.T, s string, a, b []string) {
|
||||
var i, j int
|
||||
for i = 0; i < len(a); i++ {
|
||||
for j = 0; j < len(b); j++ {
|
||||
if a[i] == b[j] {
|
||||
break
|
||||
}
|
||||
}
|
||||
if j == len(b) {
|
||||
t.Error(s, a[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
20
vendor/github.com/kr/pretty/example_test.go
generated
vendored
20
vendor/github.com/kr/pretty/example_test.go
generated
vendored
@@ -1,20 +0,0 @@
|
||||
package pretty_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/kr/pretty"
|
||||
)
|
||||
|
||||
func Example() {
|
||||
type myType struct {
|
||||
a, b int
|
||||
}
|
||||
var x = []myType{{1, 2}, {3, 4}, {5, 6}}
|
||||
fmt.Printf("%# v", pretty.Formatter(x))
|
||||
// output:
|
||||
// []pretty_test.myType{
|
||||
// {a:1, b:2},
|
||||
// {a:3, b:4},
|
||||
// {a:5, b:6},
|
||||
// }
|
||||
}
|
||||
288
vendor/github.com/kr/pretty/formatter_test.go
generated
vendored
288
vendor/github.com/kr/pretty/formatter_test.go
generated
vendored
@@ -1,288 +0,0 @@
|
||||
package pretty
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"strings"
|
||||
"testing"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
type test struct {
|
||||
v interface{}
|
||||
s string
|
||||
}
|
||||
|
||||
type passtest struct {
|
||||
v interface{}
|
||||
f, s string
|
||||
}
|
||||
|
||||
type LongStructTypeName struct {
|
||||
longFieldName interface{}
|
||||
otherLongFieldName interface{}
|
||||
}
|
||||
|
||||
type SA struct {
|
||||
t *T
|
||||
v T
|
||||
}
|
||||
|
||||
type T struct {
|
||||
x, y int
|
||||
}
|
||||
|
||||
type F int
|
||||
|
||||
func (f F) Format(s fmt.State, c rune) {
|
||||
fmt.Fprintf(s, "F(%d)", int(f))
|
||||
}
|
||||
|
||||
type Stringer struct { i int }
|
||||
|
||||
func (s *Stringer) String() string { return "foo" }
|
||||
|
||||
var long = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
|
||||
var passthrough = []passtest{
|
||||
{1, "%d", "1"},
|
||||
{"a", "%s", "a"},
|
||||
{&Stringer{}, "%s", "foo"},
|
||||
}
|
||||
|
||||
func TestPassthrough(t *testing.T) {
|
||||
for _, tt := range passthrough {
|
||||
s := fmt.Sprintf(tt.f, Formatter(tt.v))
|
||||
if tt.s != s {
|
||||
t.Errorf("expected %q", tt.s)
|
||||
t.Errorf("got %q", s)
|
||||
t.Errorf("expraw\n%s", tt.s)
|
||||
t.Errorf("gotraw\n%s", s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var gosyntax = []test{
|
||||
{nil, `nil`},
|
||||
{"", `""`},
|
||||
{"a", `"a"`},
|
||||
{1, "int(1)"},
|
||||
{1.0, "float64(1)"},
|
||||
{[]int(nil), "[]int(nil)"},
|
||||
{[0]int{}, "[0]int{}"},
|
||||
{complex(1, 0), "(1+0i)"},
|
||||
//{make(chan int), "(chan int)(0x1234)"},
|
||||
{unsafe.Pointer(uintptr(unsafe.Pointer(&long))), fmt.Sprintf("unsafe.Pointer(0x%02x)", uintptr(unsafe.Pointer(&long)))},
|
||||
{func(int) {}, "func(int) {...}"},
|
||||
{map[int]int{1: 1}, "map[int]int{1:1}"},
|
||||
{int32(1), "int32(1)"},
|
||||
{io.EOF, `&errors.errorString{s:"EOF"}`},
|
||||
{[]string{"a"}, `[]string{"a"}`},
|
||||
{
|
||||
[]string{long},
|
||||
`[]string{"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"}`,
|
||||
},
|
||||
{F(5), "pretty.F(5)"},
|
||||
{
|
||||
SA{&T{1, 2}, T{3, 4}},
|
||||
`pretty.SA{
|
||||
t: &pretty.T{x:1, y:2},
|
||||
v: pretty.T{x:3, y:4},
|
||||
}`,
|
||||
},
|
||||
{
|
||||
map[int][]byte{1: {}},
|
||||
`map[int][]uint8{
|
||||
1: {},
|
||||
}`,
|
||||
},
|
||||
{
|
||||
map[int]T{1: {}},
|
||||
`map[int]pretty.T{
|
||||
1: {},
|
||||
}`,
|
||||
},
|
||||
{
|
||||
long,
|
||||
`"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"`,
|
||||
},
|
||||
{
|
||||
LongStructTypeName{
|
||||
longFieldName: LongStructTypeName{},
|
||||
otherLongFieldName: long,
|
||||
},
|
||||
`pretty.LongStructTypeName{
|
||||
longFieldName: pretty.LongStructTypeName{},
|
||||
otherLongFieldName: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
|
||||
}`,
|
||||
},
|
||||
{
|
||||
&LongStructTypeName{
|
||||
longFieldName: &LongStructTypeName{},
|
||||
otherLongFieldName: (*LongStructTypeName)(nil),
|
||||
},
|
||||
`&pretty.LongStructTypeName{
|
||||
longFieldName: &pretty.LongStructTypeName{},
|
||||
otherLongFieldName: (*pretty.LongStructTypeName)(nil),
|
||||
}`,
|
||||
},
|
||||
{
|
||||
[]LongStructTypeName{
|
||||
{nil, nil},
|
||||
{3, 3},
|
||||
{long, nil},
|
||||
},
|
||||
`[]pretty.LongStructTypeName{
|
||||
{},
|
||||
{
|
||||
longFieldName: int(3),
|
||||
otherLongFieldName: int(3),
|
||||
},
|
||||
{
|
||||
longFieldName: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
|
||||
otherLongFieldName: nil,
|
||||
},
|
||||
}`,
|
||||
},
|
||||
{
|
||||
[]interface{}{
|
||||
LongStructTypeName{nil, nil},
|
||||
[]byte{1, 2, 3},
|
||||
T{3, 4},
|
||||
LongStructTypeName{long, nil},
|
||||
},
|
||||
`[]interface {}{
|
||||
pretty.LongStructTypeName{},
|
||||
[]uint8{0x1, 0x2, 0x3},
|
||||
pretty.T{x:3, y:4},
|
||||
pretty.LongStructTypeName{
|
||||
longFieldName: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
|
||||
otherLongFieldName: nil,
|
||||
},
|
||||
}`,
|
||||
},
|
||||
}
|
||||
|
||||
func TestGoSyntax(t *testing.T) {
|
||||
for _, tt := range gosyntax {
|
||||
s := fmt.Sprintf("%# v", Formatter(tt.v))
|
||||
if tt.s != s {
|
||||
t.Errorf("expected %q", tt.s)
|
||||
t.Errorf("got %q", s)
|
||||
t.Errorf("expraw\n%s", tt.s)
|
||||
t.Errorf("gotraw\n%s", s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type I struct {
|
||||
i int
|
||||
R interface{}
|
||||
}
|
||||
|
||||
func (i *I) I() *I { return i.R.(*I) }
|
||||
|
||||
func TestCycle(t *testing.T) {
|
||||
type A struct{ *A }
|
||||
v := &A{}
|
||||
v.A = v
|
||||
|
||||
// panics from stack overflow without cycle detection
|
||||
t.Logf("Example cycle:\n%# v", Formatter(v))
|
||||
|
||||
p := &A{}
|
||||
s := fmt.Sprintf("%# v", Formatter([]*A{p, p}))
|
||||
if strings.Contains(s, "CYCLIC") {
|
||||
t.Errorf("Repeated address detected as cyclic reference:\n%s", s)
|
||||
}
|
||||
|
||||
type R struct {
|
||||
i int
|
||||
*R
|
||||
}
|
||||
r := &R{
|
||||
i: 1,
|
||||
R: &R{
|
||||
i: 2,
|
||||
R: &R{
|
||||
i: 3,
|
||||
},
|
||||
},
|
||||
}
|
||||
r.R.R.R = r
|
||||
t.Logf("Example longer cycle:\n%# v", Formatter(r))
|
||||
|
||||
r = &R{
|
||||
i: 1,
|
||||
R: &R{
|
||||
i: 2,
|
||||
R: &R{
|
||||
i: 3,
|
||||
R: &R{
|
||||
i: 4,
|
||||
R: &R{
|
||||
i: 5,
|
||||
R: &R{
|
||||
i: 6,
|
||||
R: &R{
|
||||
i: 7,
|
||||
R: &R{
|
||||
i: 8,
|
||||
R: &R{
|
||||
i: 9,
|
||||
R: &R{
|
||||
i: 10,
|
||||
R: &R{
|
||||
i: 11,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
// here be pirates
|
||||
r.R.R.R.R.R.R.R.R.R.R.R = r
|
||||
t.Logf("Example very long cycle:\n%# v", Formatter(r))
|
||||
|
||||
i := &I{
|
||||
i: 1,
|
||||
R: &I{
|
||||
i: 2,
|
||||
R: &I{
|
||||
i: 3,
|
||||
R: &I{
|
||||
i: 4,
|
||||
R: &I{
|
||||
i: 5,
|
||||
R: &I{
|
||||
i: 6,
|
||||
R: &I{
|
||||
i: 7,
|
||||
R: &I{
|
||||
i: 8,
|
||||
R: &I{
|
||||
i: 9,
|
||||
R: &I{
|
||||
i: 10,
|
||||
R: &I{
|
||||
i: 11,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
iv := i.I().I().I().I().I().I().I().I().I().I()
|
||||
*iv = *i
|
||||
t.Logf("Example long interface cycle:\n%# v", Formatter(i))
|
||||
}
|
||||
Reference in New Issue
Block a user