mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	* Changes to make vendored packages accept new home. * Fix go2idl to import vendored packages.
		
			
				
	
	
		
			98 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // 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)
 | |
| 		}
 | |
| 	}
 | |
| }
 |