summaryrefslogtreecommitdiff
path: root/test/ken
diff options
context:
space:
mode:
authorKen Thompson <ken@golang.org>2009-01-26 11:34:38 -0800
committerKen Thompson <ken@golang.org>2009-01-26 11:34:38 -0800
commit081cbe92037e34574d75be5fddb30660805c67c6 (patch)
treeb667525fba0724c356a69c8e1ab8970d58a9a941 /test/ken
parentcd3ba275859fa694dc3a759136efaf3ecb731a05 (diff)
downloadgolang-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.go56
-rw-r--r--test/ken/range.go8
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]);
}