xref: /openbsd/regress/bin/ksh/brkcont.t (revision cecf84d4)
1name: break-1
2description:
3	See if break breaks out of loops
4stdin:
5	for i in a b c; do echo $i; break; echo bad-$i; done
6	echo end-1
7	for i in a b c; do echo $i; break 1; echo bad-$i; done
8	echo end-2
9	for i in a b c; do
10	    for j in x y z; do
11		echo $i:$j
12		break
13		echo bad-$i
14	    done
15	    echo end-$i
16	done
17	echo end-3
18expected-stdout:
19	a
20	end-1
21	a
22	end-2
23	a:x
24	end-a
25	b:x
26	end-b
27	c:x
28	end-c
29	end-3
30---
31
32name: break-2
33description:
34	See if break breaks out of nested loops
35stdin:
36	for i in a b c; do
37	    for j in x y z; do
38		echo $i:$j
39		break 2
40		echo bad-$i
41	    done
42	    echo end-$i
43	done
44	echo end
45expected-stdout:
46	a:x
47	end
48---
49
50
51name: break-3
52description:
53	What if break used outside of any loops
54	(ksh88,ksh93 don't print error messages here)
55stdin:
56	break
57expected-stderr-pattern:
58	/.*break.*/
59---
60
61
62name: break-4
63description:
64	What if break N used when only N-1 loops
65	(ksh88,ksh93 don't print error messages here)
66stdin:
67	for i in a b c; do echo $i; break 2; echo bad-$i; done
68	echo end
69expected-stdout:
70	a
71	end
72expected-stderr-pattern:
73	/.*break.*/
74---
75
76
77name: break-5
78description:
79	Error if break argument isn't a number
80stdin:
81	for i in a b c; do echo $i; break abc; echo more-$i; done
82	echo end
83expected-stdout:
84	a
85expected-exit: e != 0
86expected-stderr-pattern:
87	/.*break.*/
88---
89
90
91name: continue-1
92description:
93	See if continue continues loops
94stdin:
95	for i in a b c; do echo $i; continue; echo bad-$i ; done
96	echo end-1
97	for i in a b c; do echo $i; continue 1; echo bad-$i; done
98	echo end-2
99	for i in a b c; do
100	    for j in x y z; do
101		echo $i:$j
102		continue
103		echo bad-$i-$j
104	    done
105	    echo end-$i
106	done
107	echo end-3
108expected-stdout:
109	a
110	b
111	c
112	end-1
113	a
114	b
115	c
116	end-2
117	a:x
118	a:y
119	a:z
120	end-a
121	b:x
122	b:y
123	b:z
124	end-b
125	c:x
126	c:y
127	c:z
128	end-c
129	end-3
130---
131
132
133name: continue-2
134description:
135	See if continue breaks out of nested loops
136stdin:
137	for i in a b c; do
138	    for j in x y z; do
139		echo $i:$j
140		continue 2
141		echo bad-$i-$j
142	    done
143	    echo end-$i
144	done
145	echo end
146expected-stdout:
147	a:x
148	b:x
149	c:x
150	end
151---
152
153
154name: continue-3
155description:
156	What if continue used outside of any loops
157	(ksh88,ksh93 don't print error messages here)
158stdin:
159	continue
160expected-stderr-pattern:
161	/.*continue.*/
162---
163
164
165name: continue-4
166description:
167	What if continue N used when only N-1 loops
168	(ksh88,ksh93 don't print error messages here)
169stdin:
170	for i in a b c; do echo $i; continue 2; echo bad-$i; done
171	echo end
172expected-stdout:
173	a
174	b
175	c
176	end
177expected-stderr-pattern:
178	/.*continue.*/
179---
180
181
182name: continue-5
183description:
184	Error if continue argument isn't a number
185stdin:
186	for i in a b c; do echo $i; continue abc; echo more-$i; done
187	echo end
188expected-stdout:
189	a
190expected-exit: e != 0
191expected-stderr-pattern:
192	/.*continue.*/
193---
194
195
196