mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-04 23:17:50 +00:00
Vendor in go1.5.1 dependency
* Changes to make vendored packages accept new home. * Fix go2idl to import vendored packages.
This commit is contained in:
97
third_party/golang/go/ast/print_test.go
vendored
Normal file
97
third_party/golang/go/ast/print_test.go
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
// Copyright 2011 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package ast
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var tests = []struct {
|
||||
x interface{} // x is printed as s
|
||||
s string
|
||||
}{
|
||||
// basic types
|
||||
{nil, "0 nil"},
|
||||
{true, "0 true"},
|
||||
{42, "0 42"},
|
||||
{3.14, "0 3.14"},
|
||||
{1 + 2.718i, "0 (1+2.718i)"},
|
||||
{"foobar", "0 \"foobar\""},
|
||||
|
||||
// maps
|
||||
{map[Expr]string{}, `0 map[ast.Expr]string (len = 0) {}`},
|
||||
{map[string]int{"a": 1},
|
||||
`0 map[string]int (len = 1) {
|
||||
1 . "a": 1
|
||||
2 }`},
|
||||
|
||||
// pointers
|
||||
{new(int), "0 *0"},
|
||||
|
||||
// arrays
|
||||
{[0]int{}, `0 [0]int {}`},
|
||||
{[3]int{1, 2, 3},
|
||||
`0 [3]int {
|
||||
1 . 0: 1
|
||||
2 . 1: 2
|
||||
3 . 2: 3
|
||||
4 }`},
|
||||
{[...]int{42},
|
||||
`0 [1]int {
|
||||
1 . 0: 42
|
||||
2 }`},
|
||||
|
||||
// slices
|
||||
{[]int{}, `0 []int (len = 0) {}`},
|
||||
{[]int{1, 2, 3},
|
||||
`0 []int (len = 3) {
|
||||
1 . 0: 1
|
||||
2 . 1: 2
|
||||
3 . 2: 3
|
||||
4 }`},
|
||||
|
||||
// structs
|
||||
{struct{}{}, `0 struct {} {}`},
|
||||
{struct{ x int }{007}, `0 struct { x int } {}`},
|
||||
{struct{ X, y int }{42, 991},
|
||||
`0 struct { X int; y int } {
|
||||
1 . X: 42
|
||||
2 }`},
|
||||
{struct{ X, Y int }{42, 991},
|
||||
`0 struct { X int; Y int } {
|
||||
1 . X: 42
|
||||
2 . Y: 991
|
||||
3 }`},
|
||||
}
|
||||
|
||||
// Split s into lines, trim whitespace from all lines, and return
|
||||
// the concatenated non-empty lines.
|
||||
func trim(s string) string {
|
||||
lines := strings.Split(s, "\n")
|
||||
i := 0
|
||||
for _, line := range lines {
|
||||
line = strings.TrimSpace(line)
|
||||
if line != "" {
|
||||
lines[i] = line
|
||||
i++
|
||||
}
|
||||
}
|
||||
return strings.Join(lines[0:i], "\n")
|
||||
}
|
||||
|
||||
func TestPrint(t *testing.T) {
|
||||
var buf bytes.Buffer
|
||||
for _, test := range tests {
|
||||
buf.Reset()
|
||||
if err := Fprint(&buf, nil, test.x, nil); err != nil {
|
||||
t.Errorf("Fprint failed: %s", err)
|
||||
}
|
||||
if s, ts := trim(buf.String()), trim(test.s); s != ts {
|
||||
t.Errorf("got:\n%s\nexpected:\n%s\n", s, ts)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user