1 // $G $F.go && $L $F.$A && ./$A.out
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.
9 func assert(cond bool, msg string) {
11 print("assertion fail: ", msg, "\n");
22 case i5 < 5: assert(false, "<");
23 case i5 == 5: assert(true, "!");
24 case i5 > 5: assert(false, ">");
28 case i5 < 5: assert(false, "<");
29 case i5 == 5: assert(true, "!");
30 case i5 > 5: assert(false, ">");
34 case i5 < x: assert(false, "<");
35 case i5 == x: assert(true, "!");
36 case i5 > x: assert(false, ">");
40 case i5 < x: assert(false, "<");
41 case i5 == x: assert(true, "!");
42 case i5 > x: assert(false, ">");
46 case 0: assert(false, "0");
47 case 1: assert(false, "1");
48 case 2: assert(false, "2");
49 case 3: assert(false, "3");
50 case 4: assert(false, "4");
51 case 5: assert(true, "5");
52 case 6: assert(false, "6");
53 case 7: assert(false, "7");
54 case 8: assert(false, "8");
55 case 9: assert(false, "9");
56 default: assert(false, "default");
60 case 0,1,2,3,4: assert(false, "4");
61 case 5: assert(true, "5");
62 case 6,7,8,9: assert(false, "9");
63 default: assert(false, "default");
71 case 4: assert(false, "4");
72 case 5: assert(true, "5");
77 default: assert(i5 == 5, "good");
81 case 0: dummy := 0; _ = dummy; fallthrough;
82 case 1: dummy := 0; _ = dummy; fallthrough;
83 case 2: dummy := 0; _ = dummy; fallthrough;
84 case 3: dummy := 0; _ = dummy; fallthrough;
85 case 4: dummy := 0; _ = dummy; assert(false, "4");
86 case 5: dummy := 0; _ = dummy; fallthrough;
87 case 6: dummy := 0; _ = dummy; fallthrough;
88 case 7: dummy := 0; _ = dummy; fallthrough;
89 case 8: dummy := 0; _ = dummy; fallthrough;
90 case 9: dummy := 0; _ = dummy; fallthrough;
91 default: dummy := 0; _ = dummy; assert(i5 == 5, "good");
96 case 0: dummy := 0; _ = dummy; fallthrough; // tests scoping of cases
97 case 1: dummy := 0; _ = dummy; fallthrough;
98 case 2: dummy := 0; _ = dummy; fallthrough;
99 case 3: dummy := 0; _ = dummy; fallthrough;
100 case 4: dummy := 0; _ = dummy; assert(false, "4");
101 case 5: dummy := 0; _ = dummy; fallthrough;
102 case 6: dummy := 0; _ = dummy; fallthrough;
103 case 7: dummy := 0; _ = dummy; fallthrough;
104 case 8: dummy := 0; _ = dummy; fallthrough;
105 case 9: dummy := 0; _ = dummy; fallthrough;
106 default: dummy := 0; _ = dummy; fired = !fired; assert(i5 == 5, "good");
108 assert(fired, "fired");
112 case 0: count = count + 1; fallthrough;
113 case 1: count = count + 1; fallthrough;
114 case 2: count = count + 1; fallthrough;
115 case 3: count = count + 1; fallthrough;
116 case 4: count = count + 1; assert(false, "4");
117 case 5: count = count + 1; fallthrough;
118 case 6: count = count + 1; fallthrough;
119 case 7: count = count + 1; fallthrough;
120 case 8: count = count + 1; fallthrough;
121 case 9: count = count + 1; fallthrough;
122 default: assert(i5 == count, "good");
124 assert(fired, "fired");
127 case "wowie": assert(false, "wowie");
128 case "hello": assert(true, "hello");
129 case "jumpn": assert(false, "jumpn");
130 default: assert(false, "default");
134 switch i := i5 + 2; i {
135 case i7: fired = true;
136 default: assert(false, "fail");
138 assert(fired, "var");