URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [go/] [ast/] [print_test.go] - Rev 747
Compare with Previous | Blame | View Log
// 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 astimport ("bytes""strings""testing")var tests = []struct {x interface{} // x is printed as ss 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[string]int{"a": 1},`0 map[string]int (len = 1) {1 . "a": 12 }`},// pointers{new(int), "0 *0"},// slices{[]int{1, 2, 3},`0 []int (len = 3) {1 . 0: 12 . 1: 23 . 2: 34 }`},// structs{struct{ X, Y int }{42, 991},`0 struct { X int; Y int } {1 . X: 422 . Y: 9913 }`},}// 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 := 0for _, line := range lines {line = strings.TrimSpace(line)if line != "" {lines[i] = linei++}}return strings.Join(lines[0:i], "\n")}func TestPrint(t *testing.T) {var buf bytes.Bufferfor _, 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)}}}
