blob: b6fe4e4330bac9aaefb5da4399f9df95dbc9ec08 [file] [log] [blame]
Rob Pikeab34d152008-06-06 14:27:34 -07001// $G $D/$F.go && $L $F.$A && ./$A.out
2
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.
6
7package main
8
9func assertequal(is, shouldbe int, msg string) {
10 if is != shouldbe {
Rob Pikebc2f5f12008-08-11 22:07:49 -070011 print("assertion fail" + msg + "\n");
12 panic(1);
Rob Pikeab34d152008-06-06 14:27:34 -070013 }
14}
15
16func main() {
17 i5 := 5;
18 i7 := 7;
19
20 var count int;
21
22 count = 0;
23 if true {
Russ Cox1a319892009-09-14 21:03:53 -070024 count = count + 1;
Rob Pikeab34d152008-06-06 14:27:34 -070025 }
26 assertequal(count, 1, "if true");
27
28 count = 0;
29 if false {
Russ Cox1a319892009-09-14 21:03:53 -070030 count = count + 1;
Rob Pikeab34d152008-06-06 14:27:34 -070031 }
32 assertequal(count, 0, "if false");
33
34 count = 0;
35 if one := 1; true {
Russ Cox1a319892009-09-14 21:03:53 -070036 count = count + one;
Rob Pikeab34d152008-06-06 14:27:34 -070037 }
38 assertequal(count, 1, "if true one");
39
40 count = 0;
41 if one := 1; false {
Russ Cox1a319892009-09-14 21:03:53 -070042 _ = one;
43 count = count + 1;
Rob Pikeab34d152008-06-06 14:27:34 -070044 }
45 assertequal(count, 0, "if false one");
46
47 count = 0;
48 if {
Russ Cox1a319892009-09-14 21:03:53 -070049 count = count + 1;
Rob Pikeab34d152008-06-06 14:27:34 -070050 }
51 assertequal(count, 1, "if empty");
52
53 count = 0;
54 if one := 1; {
Russ Cox1a319892009-09-14 21:03:53 -070055 count = count + one;
Rob Pikeab34d152008-06-06 14:27:34 -070056 }
57 assertequal(count, 1, "if empty one");
58
59 count = 0;
60 if i5 < i7 {
Russ Cox1a319892009-09-14 21:03:53 -070061 count = count + 1;
Rob Pikeab34d152008-06-06 14:27:34 -070062 }
63 assertequal(count, 1, "if cond");
64
65 count = 0;
66 if true {
Russ Cox1a319892009-09-14 21:03:53 -070067 count = count + 1;
Rob Pikeab34d152008-06-06 14:27:34 -070068 } else
69 count = count - 1;
70 assertequal(count, 1, "if else true");
71
72 count = 0;
73 if false {
Russ Cox1a319892009-09-14 21:03:53 -070074 count = count + 1;
Rob Pikeab34d152008-06-06 14:27:34 -070075 } else
76 count = count - 1;
77 assertequal(count, -1, "if else false");
78
79 count = 0;
80 if t:=1; false {
81 count = count + 1;
Russ Cox1a319892009-09-14 21:03:53 -070082 t := 7;
83 _ = t;
Rob Pikeab34d152008-06-06 14:27:34 -070084 } else
85 count = count - t;
86 assertequal(count, -1, "if else false var");
87
88 count = 0;
89 t := 1;
90 if false {
91 count = count + 1;
Russ Cox1a319892009-09-14 21:03:53 -070092 t := 7;
93 _ = t;
Rob Pikeab34d152008-06-06 14:27:34 -070094 } else
95 count = count - t;
96 assertequal(count, -1, "if else false var outside");
97}