Source file
test/initialize.go
Documentation: test
1
2
3
4
5
6
7
8
9 package main
10
11 import "fmt"
12 import "reflect"
13
14 type S struct {
15 A, B, C, X, Y, Z int
16 }
17
18 type T struct {
19 S
20 }
21
22 var a1 = S { 0, 0, 0, 1, 2, 3 }
23 var b1 = S { X: 1, Z: 3, Y: 2 }
24
25 var a2 = S { 0, 0, 0, 0, 0, 0, }
26 var b2 = S { }
27
28 var a3 = T { S { 1, 2, 3, 0, 0, 0, } }
29 var b3 = T { S: S{ A: 1, B: 2, C: 3 } }
30
31 var a4 = &[16]byte { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, }
32 var b4 = &[16]byte { 4: 1, 1, 1, 1, 12: 1, 1, }
33
34 var a5 = &[16]byte { 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, }
35 var b5 = &[16]byte { 1, 4: 1, 1, 1, 1, 12: 1, 1, }
36
37 var a6 = &[16]byte { 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, }
38 var b6 = &[...]byte { 1, 4: 1, 1, 1, 1, 12: 1, 1, 0, 0,}
39
40 type Same struct {
41 a, b interface{}
42 }
43
44 var same = []Same {
45 Same{ a1, b1 },
46 Same{ a2, b2 },
47 Same{ a3, b3 },
48 Same{ a4, b4 },
49 Same{ a5, b5 },
50 Same{ a6, b6 },
51 }
52
53 func main() {
54 ok := true
55 for _, s := range same {
56 if !reflect.DeepEqual(s.a, s.b) {
57 ok = false
58 fmt.Printf("not same: %v and %v\n", s.a, s.b)
59 }
60 }
61 if !ok {
62 fmt.Println("BUG: test/initialize")
63 }
64 }
65
View as plain text