]> Cypherpunks repositories - gostls13.git/commitdiff
simultaneous assignment test
authorKen Thompson <ken@golang.org>
Thu, 26 Jun 2008 23:21:51 +0000 (16:21 -0700)
committerKen Thompson <ken@golang.org>
Thu, 26 Jun 2008 23:21:51 +0000 (16:21 -0700)
SVN=124994

test/simasign.go [new file with mode: 0644]

diff --git a/test/simasign.go b/test/simasign.go
new file mode 100644 (file)
index 0000000..aeb988d
--- /dev/null
@@ -0,0 +1,68 @@
+// $G $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
+
+var    a,b,c,d,e,f,g,h,i int;
+
+func
+printit()
+{
+       print a,b,c,d,e,f,g,h,i,"\n";
+}
+
+func
+testit() bool
+{
+       if a+b+c+d+e+f+g+h+i != 45 {
+               print "sum does not add to 45\n";
+               printit();
+               panic;
+       }
+       return  a == 1 &&
+               b == 2 &&
+               c == 3 &&
+               d == 4 &&
+               e == 5 &&
+               f == 6 &&
+               g == 7 &&
+               h == 8 &&
+               i == 9;
+}
+
+func main()
+{
+       a = 1;
+       b = 2;
+       c = 3;
+       d = 4;
+       e = 5;
+       f = 6;
+       g = 7;
+       h = 8;
+       i = 9;
+
+       if !testit() { panic "init val\n"; }
+
+       for z:=0; z<100; z++ {
+               a,b,c,d, e,f,g,h,i = b,c,d,a, i,e,f,g,h;
+
+               if testit() {
+                       if z == 19 {
+                               break;
+                       }
+                       print "on ", z, "th iteration\n";
+                       printit();
+                       panic;
+               }
+       }
+
+       if !testit() {
+               print "final val\n";
+               printit();
+               panic;
+       }
+}