]> Cypherpunks repositories - gostls13.git/commitdiff
add a test for %+v in nested structures.
authorRob Pike <r@golang.org>
Wed, 18 Nov 2009 06:14:34 +0000 (22:14 -0800)
committerRob Pike <r@golang.org>
Wed, 18 Nov 2009 06:14:34 +0000 (22:14 -0800)
threw in an embedded one for good measure.

R=rsc
CC=golang-dev
https://golang.org/cl/157058

src/pkg/fmt/fmt_test.go

index f2c4b194297a54fb2fe691773fa851e719e4df80..5d9b3abe50fcb8be4490d489069a281431b7cec1 100644 (file)
@@ -40,6 +40,20 @@ type A struct {
        x       []int;
 }
 
+type I int
+
+func (i I) String() string     { return Sprintf("<%d>", i) }
+
+type B struct {
+       i       I;
+       j       int;
+}
+
+type C struct {
+       i       int;
+       B;
+}
+
 var b byte
 
 var fmttests = []fmtTest{
@@ -184,6 +198,10 @@ var fmttests = []fmtTest{
        fmtTest{"%v", A{1, 2, "a", []int{1, 2}}, `{1 2 a [1 2]}`},
        fmtTest{"%+v", A{1, 2, "a", []int{1, 2}}, `{i:1 j:2 s:a x:[1 2]}`},
 
+       // +v on structs with Stringable items
+       fmtTest{"%+v", B{1, 2}, `{i:<1> j:2}`},
+       fmtTest{"%+v", C{1, B{2, 3}}, `{i:1 B:{i:<2> j:3}}`},
+
        // go syntax
        fmtTest{"%#v", A{1, 2, "a", []int{1, 2}}, `fmt_test.A{i:1, j:0x2, s:"a", x:[]int{1, 2}}`},
        fmtTest{"%#v", &b, "(*uint8)(PTR)"},