diff options
author | Ken Thompson <ken@golang.org> | 2009-01-26 11:34:38 -0800 |
---|---|---|
committer | Ken Thompson <ken@golang.org> | 2009-01-26 11:34:38 -0800 |
commit | 081cbe92037e34574d75be5fddb30660805c67c6 (patch) | |
tree | b667525fba0724c356a69c8e1ab8970d58a9a941 /test/ken | |
parent | cd3ba275859fa694dc3a759136efaf3ecb731a05 (diff) | |
download | golang-081cbe92037e34574d75be5fddb30660805c67c6.tar.gz |
removed a:b in range syntax
added another channel test
R=r
OCL=23488
CL=23488
Diffstat (limited to 'test/ken')
-rw-r--r-- | test/ken/chan1.go | 56 | ||||
-rw-r--r-- | test/ken/range.go | 8 |
2 files changed, 60 insertions, 4 deletions
diff --git a/test/ken/chan1.go b/test/ken/chan1.go new file mode 100644 index 000000000..c6d7825b7 --- /dev/null +++ b/test/ken/chan1.go @@ -0,0 +1,56 @@ +// $G $D/$F.go && $L $F.$A && ./$A.out + +// Copyright 2009 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 main + +const N = 1000; // sent messages +const M = 10; // receiving goroutines +const W = 2; // channel buffering +var h [N]int; // marking of send/recv + +func +r(c chan int, m int) +{ + for { + select { + case r := <- c: + if h[r] != 1 { + panicln("r", + "m=", m, + "r=", r, + "h=", h[r] + ); + } + h[r] = 2; + } + } +} + +func +s(c chan int) +{ + for n:=0; n<N; n++ { + r := n; + if h[r] != 0 { + panicln("s"); + } + h[r] = 1; + c <- r; + } +} + +func +main() +{ + c := make(chan int, W); + for m:=0; m<M; m++ { + go r(c, m); + sys.Gosched(); + } + sys.Gosched(); + sys.Gosched(); + s(c); +} diff --git a/test/ken/range.go b/test/ken/range.go index 2417580dd..55e168920 100644 --- a/test/ken/range.go +++ b/test/ken/range.go @@ -76,10 +76,10 @@ main() } /* - * key:value + * key,value */ i = 0; - for k:v := range a { + for k,v := range a { if v != f(k) { panicln("key:value array range", k, v, a[k]); } @@ -90,7 +90,7 @@ main() } i = 0; - for k:v := range p { + for k,v := range p { if v != f(k) { panicln("key:value pointer range", k, v, p[k]); } @@ -101,7 +101,7 @@ main() } i = 0; - for k:v := range m { + for k,v := range m { if v != f(k) { panicln("key:value map range", k, v, m[k]); } |