summaryrefslogtreecommitdiff
path: root/test/if.go
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2008-06-06 13:28:03 -0700
committerRob Pike <r@golang.org>2008-06-06 13:28:03 -0700
commita680dbdfffda9c49d77447312e6dd000db3592bb (patch)
tree9fc78195cd6f45b370bba69597b64afd6e0f7bb3 /test/if.go
parent8b253a1f55765e07b98d1f32e3f6d704fd69f956 (diff)
downloadgo-a680dbdfffda9c49d77447312e6dd000db3592bb.tar.gz
lots of new tests
SVN=121464
Diffstat (limited to 'test/if.go')
-rw-r--r--test/if.go94
1 files changed, 94 insertions, 0 deletions
diff --git a/test/if.go b/test/if.go
new file mode 100644
index 000000000..2018f7018
--- /dev/null
+++ b/test/if.go
@@ -0,0 +1,94 @@
+// $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
+
+func assertequal(is, shouldbe int, msg string) {
+ if is != shouldbe {
+ print "assertion fail", msg, "\n";
+ panic 1;
+ }
+}
+
+func main() {
+ i5 := 5;
+ i7 := 7;
+
+ var count int;
+
+ count = 0;
+ if true {
+ count = count + 1;
+ }
+ assertequal(count, 1, "if true");
+
+ count = 0;
+ if false {
+ count = count + 1;
+ }
+ assertequal(count, 0, "if false");
+
+ count = 0;
+ if one := 1; true {
+ count = count + one;
+ }
+ assertequal(count, 1, "if true one");
+
+ count = 0;
+ if one := 1; false {
+ count = count + 1;
+ }
+ assertequal(count, 0, "if false one");
+
+ count = 0;
+ if {
+ count = count + 1;
+ }
+ assertequal(count, 1, "if empty");
+
+ count = 0;
+ if one := 1; {
+ count = count + one;
+ }
+ assertequal(count, 1, "if empty one");
+
+ count = 0;
+ if i5 < i7 {
+ count = count + 1;
+ }
+ assertequal(count, 1, "if cond");
+
+ count = 0;
+ if true {
+ count = count + 1;
+ } else
+ count = count - 1;
+ assertequal(count, 1, "if else true");
+
+ count = 0;
+ if false {
+ count = count + 1;
+ } else
+ count = count - 1;
+ assertequal(count, -1, "if else false");
+
+ count = 0;
+ if t:=1; false {
+ count = count + 1;
+ t := 7;
+ } else
+ count = count - t;
+ assertequal(count, -1, "if else false var");
+
+ count = 0;
+ t := 1;
+ if false {
+ count = count + 1;
+ t := 7;
+ } else
+ count = count - t;
+ assertequal(count, -1, "if else false var outside");
+}