Merge from mainline (167278:168000).
[official-gcc/graphite-test-results.git] / gcc / testsuite / go.test / test / ken / range.go
blob9535fd497d6d5408151bdc84b89e317d490cbb51
1 // $G $D/$F.go && $L $F.$A && ./$A.out
3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
7 package main
9 const size = 16
11 var a [size]byte
12 var p []byte
13 var m map[int]byte
15 func f(k int) byte {
16 return byte(k * 10007 % size)
19 func init() {
20 p = make([]byte, size)
21 m = make(map[int]byte)
22 for k := 0; k < size; k++ {
23 v := f(k)
24 a[k] = v
25 p[k] = v
26 m[k] = v
30 func main() {
31 var i int
34 * key only
36 i = 0
37 for k := range a {
38 v := a[k]
39 if v != f(k) {
40 println("key array range", k, v, a[k])
41 panic("fail")
43 i++
45 if i != size {
46 println("key array size", i)
47 panic("fail")
50 i = 0
51 for k := range p {
52 v := p[k]
53 if v != f(k) {
54 println("key pointer range", k, v, p[k])
55 panic("fail")
57 i++
59 if i != size {
60 println("key pointer size", i)
61 panic("fail")
64 i = 0
65 for k := range m {
66 v := m[k]
67 if v != f(k) {
68 println("key map range", k, v, m[k])
69 panic("fail")
71 i++
73 if i != size {
74 println("key map size", i)
75 panic("fail")
79 * key,value
81 i = 0
82 for k, v := range a {
83 if v != f(k) {
84 println("key:value array range", k, v, a[k])
85 panic("fail")
87 i++
89 if i != size {
90 println("key:value array size", i)
91 panic("fail")
94 i = 0
95 for k, v := range p {
96 if v != f(k) {
97 println("key:value pointer range", k, v, p[k])
98 panic("fail")
102 if i != size {
103 println("key:value pointer size", i)
104 panic("fail")
107 i = 0
108 for k, v := range m {
109 if v != f(k) {
110 println("key:value map range", k, v, m[k])
111 panic("fail")
115 if i != size {
116 println("key:value map size", i)
117 panic("fail")