View Javadoc
1   package io.jawk.gawk;
2   
3   /*-
4    * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
5    * Jawk
6    * ჻჻჻჻჻჻
7    * Copyright (C) 2006 - 2026 MetricsHub
8    * ჻჻჻჻჻჻
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   *
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Lesser Public License for more details.
18   *
19   * You should have received a copy of the GNU General Lesser Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
23   */
24  
25  import java.io.IOException;
26  import java.nio.charset.StandardCharsets;
27  import java.nio.file.Files;
28  import java.nio.file.Path;
29  import java.util.ArrayList;
30  import java.util.List;
31  import io.jawk.AwkTestSupport;
32  import org.junit.Test;
33  
34  /**
35   * Extension-oriented gawk compatibility cases mirrored from the vendored
36   * extension-style GNU Awk test groups.
37   * Upstream source: {@code git://git.savannah.gnu.org/gawk.git}
38   */
39  public class GawkExtensionIT extends AbstractGawkSuite {
40  
41  	@Test
42  	public void test_aadelete1() throws Exception {
43  		AwkTestSupport
44  				.cliTest("GAWK aadelete1")
45  				.argument("-f", gawkFile("aadelete1.awk"))
46  				.expectLines(gawkPath("aadelete1.ok"))
47  				.expectExit(0)
48  				.runAndAssert();
49  	}
50  
51  	@Test
52  	public void test_aadelete2() throws Exception {
53  		assertGawkRuntimeFailure("aadelete2");
54  	}
55  
56  	@Test
57  	public void test_aarray1() throws Exception {
58  		AwkTestSupport
59  				.cliTest("GAWK aarray1")
60  				.argument("-f", gawkFile("aarray1.awk"))
61  				.expectLines(gawkPath("aarray1.ok"))
62  				.expectExit(0)
63  				.runAndAssert();
64  	}
65  
66  	@Test
67  	public void test_aasort() throws Exception {
68  		AwkTestSupport
69  				.cliTest("GAWK aasort")
70  				.argument("-f", gawkFile("aasort.awk"))
71  				.expectLines(gawkPath("aasort.ok"))
72  				.expectExit(0)
73  				.runAndAssert();
74  	}
75  
76  	@Test
77  	public void test_aasorti() throws Exception {
78  		AwkTestSupport
79  				.cliTest("GAWK aasorti")
80  				.argument("-f", gawkFile("aasorti.awk"))
81  				.expectLines(gawkPath("aasorti.ok"))
82  				.expectExit(0)
83  				.runAndAssert();
84  	}
85  
86  	@Test
87  	public void test_arraysort() throws Exception {
88  		AwkTestSupport
89  				.cliTest("GAWK arraysort")
90  				.argument("-f", gawkFile("arraysort.awk"))
91  				.expectLines(gawkPath("arraysort.ok"))
92  				.expectExit(0)
93  				.runAndAssert();
94  	}
95  
96  	@Test
97  	public void test_arraysort2() throws Exception {
98  		AwkTestSupport
99  				.cliTest("GAWK arraysort2")
100 				.argument("-f", gawkFile("arraysort2.awk"))
101 				.expectLines(gawkPath("arraysort2.ok"))
102 				.expectExit(0)
103 				.runAndAssert();
104 	}
105 
106 	@Test
107 	public void test_arraytype() throws Exception {
108 		AwkTestSupport
109 				.cliTest("GAWK arraytype")
110 				.argument("-f", gawkFile("arraytype.awk"))
111 				.expectLines(gawkPath("arraytype.ok"))
112 				.expectExit(0)
113 				.runAndAssert();
114 	}
115 
116 	@Test
117 	public void test_asortbool() throws Exception {
118 		AwkTestSupport
119 				.cliTest("GAWK asortbool")
120 				.argument("-f", gawkFile("asortbool.awk"))
121 				.expectLines(gawkPath("asortbool.ok"))
122 				.expectExit(0)
123 				.runAndAssert();
124 	}
125 
126 	@Test
127 	public void test_backw() throws Exception {
128 		AwkTestSupport
129 				.cliTest("GAWK backw")
130 				.argument("-f", gawkFile("backw.awk"))
131 				.stdin(gawkText("backw.in"))
132 				.expectLines(gawkPath("backw.ok"))
133 				.expectExit(0)
134 				.runAndAssert();
135 	}
136 
137 	@Test
138 	public void test_asortsymtab() throws Exception {
139 		AwkTestSupport
140 				.cliTest("GAWK asortsymtab")
141 				.argument("-f", gawkFile("asortsymtab.awk"))
142 				.expectLines(gawkPath("asortsymtab.ok"))
143 				.expectExit(0)
144 				.runAndAssert();
145 	}
146 
147 	@Test
148 	public void test_clos1way() throws Exception {
149 		AwkTestSupport
150 				.cliTest("GAWK clos1way")
151 				.argument("-f", gawkFile("clos1way.awk"))
152 				.expectLines(gawkPath("clos1way.ok"))
153 				.expectExit(0)
154 				.runAndAssert();
155 	}
156 
157 	@Test
158 	public void test_clos1way2() throws Exception {
159 		skip(NON_ZERO_TRANSCRIPT_REASON);
160 	}
161 
162 	@Test
163 	public void test_clos1way3() throws Exception {
164 		skip(NON_ZERO_TRANSCRIPT_REASON);
165 	}
166 
167 	@Test
168 	public void test_clos1way4() throws Exception {
169 		skip(NON_ZERO_TRANSCRIPT_REASON);
170 	}
171 
172 	@Test
173 	public void test_clos1way5() throws Exception {
174 		skip(NON_ZERO_TRANSCRIPT_REASON);
175 	}
176 
177 	@Test
178 	public void test_clos1way6() throws Exception {
179 		AwkTestSupport
180 				.cliTest("GAWK clos1way6")
181 				.argument("-f", gawkFile("clos1way6.awk"))
182 				.expectLines(gawkPath("clos1way6.ok"))
183 				.expectExit(0)
184 				.runAndAssert();
185 	}
186 
187 	@Test
188 	public void test_commas() throws Exception {
189 		AwkTestSupport
190 				.cliTest("GAWK commas")
191 				.argument("--locale", "en-US")
192 				.argument("-f", gawkFile("commas.awk"))
193 				.expectLines(gawkPath("commas.ok"))
194 				.expectExit(0)
195 				.runAndAssert();
196 	}
197 
198 	@Test
199 	public void test_crlf() throws Exception {
200 		AwkTestSupport
201 				.cliTest("GAWK crlf")
202 				.argument("-f", gawkFile("crlf.awk"))
203 				.expectLines(gawkPath("crlf.ok"))
204 				.expectExit(0)
205 				.runAndAssert();
206 	}
207 
208 	@Test
209 	public void test_delsub() throws Exception {
210 		AwkTestSupport
211 				.cliTest("GAWK delsub")
212 				.argument("-f", gawkFile("delsub.awk"))
213 				.expectLines(gawkPath("delsub.ok"))
214 				.expectExit(0)
215 				.runAndAssert();
216 	}
217 
218 	@Test
219 	public void test_dfacheck1() throws Exception {
220 		AwkTestSupport
221 				.cliTest("GAWK dfacheck1")
222 				.argument("-f", gawkFile("dfacheck1.awk"))
223 				.stdin(gawkText("dfacheck1.in"))
224 				.expectLines(gawkPath("dfacheck1.ok"))
225 				.expectExit(0)
226 				.runAndAssert();
227 	}
228 
229 	@Test
230 	public void test_elemnew1() throws Exception {
231 		AwkTestSupport
232 				.cliTest("GAWK elemnew1")
233 				.argument("-f", gawkFile("elemnew1.awk"))
234 				.expectLines(gawkPath("elemnew1.ok"))
235 				.expectExit(0)
236 				.runAndAssert();
237 	}
238 
239 	@Test
240 	public void test_elemnew2() throws Exception {
241 		AwkTestSupport
242 				.cliTest("GAWK elemnew2")
243 				.argument("-f", gawkFile("elemnew2.awk"))
244 				.expectLines(gawkPath("elemnew2.ok"))
245 				.expectExit(0)
246 				.runAndAssert();
247 	}
248 
249 	@Test
250 	public void test_elemnew3() throws Exception {
251 		AwkTestSupport
252 				.cliTest("GAWK elemnew3")
253 				.argument("-f", gawkFile("elemnew3.awk"))
254 				.expectLines(gawkPath("elemnew3.ok"))
255 				.expectExit(0)
256 				.runAndAssert();
257 	}
258 
259 	@Test
260 	public void test_exit() throws Exception {
261 		skip(
262 				"Shell-script target generated by Maketests; the in-process Jawk harness does not execute external shell scripts.");
263 	}
264 
265 	@Test
266 	public void test_fieldwdth() throws Exception {
267 		AwkTestSupport
268 				.cliTest("GAWK fieldwdth")
269 				.argument("-f", gawkFile("fieldwdth.awk"))
270 				.stdin(gawkText("fieldwdth.in"))
271 				.expectLines(gawkPath("fieldwdth.ok"))
272 				.expectExit(0)
273 				.runAndAssert();
274 	}
275 
276 	@Test
277 	public void test_fpat1() throws Exception {
278 		AwkTestSupport
279 				.cliTest("GAWK fpat1")
280 				.argument("-f", gawkFile("fpat1.awk"))
281 				.stdin(gawkText("fpat1.in"))
282 				.expectLines(gawkPath("fpat1.ok"))
283 				.expectExit(0)
284 				.runAndAssert();
285 	}
286 
287 	@Test
288 	public void test_fpat2() throws Exception {
289 		AwkTestSupport
290 				.cliTest("GAWK fpat2")
291 				.argument("-f", gawkFile("fpat2.awk"))
292 				.expectLines(gawkPath("fpat2.ok"))
293 				.expectExit(0)
294 				.runAndAssert();
295 	}
296 
297 	@Test
298 	public void test_fpat3() throws Exception {
299 		AwkTestSupport
300 				.cliTest("GAWK fpat3")
301 				.argument("-f", gawkFile("fpat3.awk"))
302 				.stdin(gawkText("fpat3.in"))
303 				.expectLines(gawkPath("fpat3.ok"))
304 				.expectExit(0)
305 				.runAndAssert();
306 	}
307 
308 	@Test
309 	public void test_fpat4() throws Exception {
310 		AwkTestSupport
311 				.cliTest("GAWK fpat4")
312 				.argument("-f", gawkFile("fpat4.awk"))
313 				.expectLines(gawkPath("fpat4.ok"))
314 				.expectExit(0)
315 				.runAndAssert();
316 	}
317 
318 	@Test
319 	public void test_fpat5() throws Exception {
320 		AwkTestSupport
321 				.cliTest("GAWK fpat5")
322 				.argument("-f", gawkFile("fpat5.awk"))
323 				.stdin(gawkText("fpat5.in"))
324 				.expectLines(gawkPath("fpat5.ok"))
325 				.expectExit(0)
326 				.runAndAssert();
327 	}
328 
329 	@Test
330 	public void test_fpat6() throws Exception {
331 		AwkTestSupport
332 				.cliTest("GAWK fpat6")
333 				.argument("-f", gawkFile("fpat6.awk"))
334 				.stdin(gawkText("fpat6.in"))
335 				.expectLines(gawkPath("fpat6.ok"))
336 				.expectExit(0)
337 				.runAndAssert();
338 	}
339 
340 	@Test
341 	public void test_fpat7() throws Exception {
342 		AwkTestSupport
343 				.cliTest("GAWK fpat7")
344 				.argument("-f", gawkFile("fpat7.awk"))
345 				.stdin(gawkText("fpat7.in"))
346 				.expectLines(gawkPath("fpat7.ok"))
347 				.expectExit(0)
348 				.runAndAssert();
349 	}
350 
351 	@Test
352 	public void test_fpat8() throws Exception {
353 		AwkTestSupport
354 				.cliTest("GAWK fpat8")
355 				.argument("-f", gawkFile("fpat8.awk"))
356 				.stdin(gawkText("fpat8.in"))
357 				.expectLines(gawkPath("fpat8.ok"))
358 				.expectExit(0)
359 				.runAndAssert();
360 	}
361 
362 	@Test
363 	public void test_fpat9() throws Exception {
364 		AwkTestSupport
365 				.cliTest("GAWK fpat9")
366 				.argument("-f", gawkFile("fpat9.awk"))
367 				.stdin(gawkText("fpat9.in"))
368 				.expectLines(gawkPath("fpat9.ok"))
369 				.expectExit(0)
370 				.runAndAssert();
371 	}
372 
373 	@Test
374 	public void test_fpatnull() throws Exception {
375 		AwkTestSupport
376 				.cliTest("GAWK fpatnull")
377 				.argument("-f", gawkFile("fpatnull.awk"))
378 				.stdin(gawkText("fpatnull.in"))
379 				.expectLines(gawkPath("fpatnull.ok"))
380 				.expectExit(0)
381 				.runAndAssert();
382 	}
383 
384 	@Test
385 	public void test_fsfwfs() throws Exception {
386 		AwkTestSupport
387 				.cliTest("GAWK fsfwfs")
388 				.argument("-f", gawkFile("fsfwfs.awk"))
389 				.stdin(gawkText("fsfwfs.in"))
390 				.expectLines(gawkPath("fsfwfs.ok"))
391 				.expectExit(0)
392 				.runAndAssert();
393 	}
394 
395 	@Test
396 	public void test_functab1() throws Exception {
397 		skip(NON_ZERO_TRANSCRIPT_REASON);
398 	}
399 
400 	@Test
401 	public void test_functab2() throws Exception {
402 		skip(NON_ZERO_TRANSCRIPT_REASON);
403 	}
404 
405 	@Test
406 	public void test_functab3() throws Exception {
407 		AwkTestSupport
408 				.cliTest("GAWK functab3")
409 				.argument("-f", gawkFile("functab3.awk"))
410 				.expectLines(gawkPath("functab3.ok"))
411 				.expectExit(0)
412 				.runAndAssert();
413 	}
414 
415 	@Test
416 	public void test_functab6() throws Exception {
417 		skip(NON_ZERO_TRANSCRIPT_REASON);
418 	}
419 
420 	@Test
421 	public void test_funlen() throws Exception {
422 		AwkTestSupport
423 				.cliTest("GAWK funlen")
424 				.argument("-f", gawkFile("funlen.awk"))
425 				.stdin(gawkText("funlen.in"))
426 				.expectLines(gawkPath("funlen.ok"))
427 				.expectExit(0)
428 				.runAndAssert();
429 	}
430 
431 	@Test
432 	public void test_fwtest() throws Exception {
433 		AwkTestSupport
434 				.cliTest("GAWK fwtest")
435 				.argument("-f", gawkFile("fwtest.awk"))
436 				.stdin(gawkText("fwtest.in"))
437 				.expectLines(gawkPath("fwtest.ok"))
438 				.expectExit(0)
439 				.runAndAssert();
440 	}
441 
442 	@Test
443 	public void test_fwtest2() throws Exception {
444 		AwkTestSupport
445 				.cliTest("GAWK fwtest2")
446 				.argument("-f", gawkFile("fwtest2.awk"))
447 				.stdin(gawkText("fwtest2.in"))
448 				.expectLines(gawkPath("fwtest2.ok"))
449 				.expectExit(0)
450 				.runAndAssert();
451 	}
452 
453 	@Test
454 	public void test_fwtest3() throws Exception {
455 		AwkTestSupport
456 				.cliTest("GAWK fwtest3")
457 				.argument("-f", gawkFile("fwtest3.awk"))
458 				.stdin(gawkText("fwtest3.in"))
459 				.expectLines(gawkPath("fwtest3.ok"))
460 				.expectExit(0)
461 				.runAndAssert();
462 	}
463 
464 	@Test
465 	public void test_fwtest4() throws Exception {
466 		AwkTestSupport
467 				.cliTest("GAWK fwtest4")
468 				.argument("-f", gawkFile("fwtest4.awk"))
469 				.stdin(gawkText("fwtest4.in"))
470 				.expectLines(gawkPath("fwtest4.ok"))
471 				.expectExit(0)
472 				.runAndAssert();
473 	}
474 
475 	@Test
476 	public void test_fwtest5() throws Exception {
477 		AwkTestSupport
478 				.cliTest("GAWK fwtest5")
479 				.argument("-f", gawkFile("fwtest5.awk"))
480 				.stdin(gawkText("fwtest5.in"))
481 				.expectLines(gawkPath("fwtest5.ok"))
482 				.expectExit(0)
483 				.runAndAssert();
484 	}
485 
486 	@Test
487 	public void test_fwtest6() throws Exception {
488 		skip(NON_ZERO_TRANSCRIPT_REASON);
489 	}
490 
491 	@Test
492 	public void test_fwtest7() throws Exception {
493 		AwkTestSupport
494 				.cliTest("GAWK fwtest7")
495 				.argument("-f", gawkFile("fwtest7.awk"))
496 				.stdin(gawkText("fwtest7.in"))
497 				.expectLines(gawkPath("fwtest7.ok"))
498 				.expectExit(0)
499 				.runAndAssert();
500 	}
501 
502 	@Test
503 	public void test_fwtest8() throws Exception {
504 		skip(NON_ZERO_TRANSCRIPT_REASON);
505 	}
506 
507 	@Test
508 	public void test_gensub() throws Exception {
509 		AwkTestSupport
510 				.cliTest("GAWK gensub")
511 				.argument("-f", gawkFile("gensub.awk"))
512 				.stdin(gawkText("gensub.in"))
513 				.expectLines(gawkPath("gensub.ok"))
514 				.expectExit(0)
515 				.runAndAssert();
516 	}
517 
518 	@Test
519 	public void test_gensub2() throws Exception {
520 		AwkTestSupport
521 				.cliTest("GAWK gensub2")
522 				.redirectErrorStream()
523 				.argument("-f", gawkFile("gensub2.awk"))
524 				.expectLines(gawkPath("gensub2.ok"))
525 				.expectExit(0)
526 				.runAndAssert();
527 	}
528 
529 	@Test
530 	public void test_gensub3() throws Exception {
531 		AwkTestSupport
532 				.cliTest("GAWK gensub3")
533 				.argument("-f", gawkFile("gensub3.awk"))
534 				.stdin(gawkText("gensub3.in"))
535 				.expectLines(gawkPath("gensub3.ok"))
536 				.expectExit(0)
537 				.runAndAssert();
538 	}
539 
540 	@Test
541 	public void test_gensub4() throws Exception {
542 		AwkTestSupport
543 				.cliTest("GAWK gensub4")
544 				.argument("-f", gawkFile("gensub4.awk"))
545 				.expectLines(gawkPath("gensub4.ok"))
546 				.expectExit(0)
547 				.runAndAssert();
548 	}
549 
550 	@Test
551 	public void test_getlndir() throws Exception {
552 		AwkTestSupport
553 				.cliTest("GAWK getlndir")
554 				.argument("-f", gawkFile("getlndir.awk"))
555 				.expectLines(gawkPath("getlndir.ok"))
556 				.expectExit(0)
557 				.runAndAssert();
558 	}
559 
560 	@Test
561 	public void test_gnuops2() throws Exception {
562 		AwkTestSupport
563 				.cliTest("GAWK gnuops2")
564 				.argument("-f", gawkFile("gnuops2.awk"))
565 				.expectLines(gawkPath("gnuops2.ok"))
566 				.expectExit(0)
567 				.runAndAssert();
568 	}
569 
570 	@Test
571 	public void test_gnuops3() throws Exception {
572 		AwkTestSupport
573 				.cliTest("GAWK gnuops3")
574 				.argument("-f", gawkFile("gnuops3.awk"))
575 				.expectLines(gawkPath("gnuops3.ok"))
576 				.expectExit(0)
577 				.runAndAssert();
578 	}
579 
580 	@Test
581 	public void test_gnureops() throws Exception {
582 		AwkTestSupport
583 				.cliTest("GAWK gnureops")
584 				.argument("-f", gawkFile("gnureops.awk"))
585 				.expectLines(gawkPath("gnureops.ok"))
586 				.expectExit(0)
587 				.runAndAssert();
588 	}
589 
590 	@Test
591 	public void test_gsubind() throws Exception {
592 		skip(NON_ZERO_TRANSCRIPT_REASON);
593 	}
594 
595 	@Test
596 	public void test_icasefs() throws Exception {
597 		AwkTestSupport
598 				.cliTest("GAWK icasefs")
599 				.argument("-f", gawkFile("icasefs.awk"))
600 				.expectLines(gawkPath("icasefs.ok"))
601 				.expectExit(0)
602 				.runAndAssert();
603 	}
604 
605 	@Test
606 	public void test_icasers() throws Exception {
607 		AwkTestSupport
608 				.cliTest("GAWK icasers")
609 				.argument("-f", gawkFile("icasers.awk"))
610 				.stdin(gawkText("icasers.in"))
611 				.expectLines(gawkPath("icasers.ok"))
612 				.expectExit(0)
613 				.runAndAssert();
614 	}
615 
616 	@Test
617 	public void test_id() throws Exception {
618 		AwkTestSupport
619 				.cliTest("GAWK id")
620 				.argument("-f", gawkFile("id.awk"))
621 				.expectLines(gawkPath("id.ok"))
622 				.expectExit(0)
623 				.runAndAssert();
624 	}
625 
626 	@Test
627 	public void test_igncdym() throws Exception {
628 		AwkTestSupport
629 				.cliTest("GAWK igncdym")
630 				.argument("-f", gawkFile("igncdym.awk"))
631 				.stdin(gawkText("igncdym.in"))
632 				.expectLines(gawkPath("igncdym.ok"))
633 				.expectExit(0)
634 				.runAndAssert();
635 	}
636 
637 	@Test
638 	public void test_igncfs() throws Exception {
639 		AwkTestSupport
640 				.cliTest("GAWK igncfs")
641 				.argument("-f", gawkFile("igncfs.awk"))
642 				.stdin(gawkText("igncfs.in"))
643 				.expectLines(gawkPath("igncfs.ok"))
644 				.expectExit(0)
645 				.runAndAssert();
646 	}
647 
648 	@Test
649 	public void test_ignrcas2() throws Exception {
650 		AwkTestSupport
651 				.cliTest("GAWK ignrcas2")
652 				.argument("--locale", "en-US")
653 				.argument("-f", gawkFile("ignrcas2.awk"))
654 				.expectLines(gawkPath("ignrcas2.ok"))
655 				.expectExit(0)
656 				.runAndAssert();
657 	}
658 
659 	@Test
660 	public void test_ignrcas4() throws Exception {
661 		AwkTestSupport
662 				.cliTest("GAWK ignrcas4")
663 				.argument("-f", gawkFile("ignrcas4.awk"))
664 				.expectLines(gawkPath("ignrcas4.ok"))
665 				.expectExit(0)
666 				.runAndAssert();
667 	}
668 
669 	@Test
670 	public void test_ignrcase() throws Exception {
671 		AwkTestSupport
672 				.cliTest("GAWK ignrcase")
673 				.argument("-f", gawkFile("ignrcase.awk"))
674 				.stdin(gawkText("ignrcase.in"))
675 				.expectLines(gawkPath("ignrcase.ok"))
676 				.expectExit(0)
677 				.runAndAssert();
678 	}
679 
680 	@Test
681 	public void test_include() throws Exception {
682 		AwkTestSupport
683 				.cliTest("GAWK include")
684 				.argument("-f", gawkFile("include.awk"))
685 				.expectLines(gawkPath("include.ok"))
686 				.expectExit(0)
687 				.runAndAssert();
688 	}
689 
690 	@Test
691 	public void test_indirectbuiltin() throws Exception {
692 		AwkTestSupport
693 				.cliTest("GAWK indirectbuiltin")
694 				.argument("-f", gawkFile("indirectbuiltin.awk"))
695 				.expectLines(gawkPath("indirectbuiltin.ok"))
696 				.expectExit(0)
697 				.runAndAssert();
698 	}
699 
700 	@Test
701 	public void test_indirectcall() throws Exception {
702 		AwkTestSupport
703 				.cliTest("GAWK indirectcall")
704 				.argument("-f", gawkFile("indirectcall.awk"))
705 				.stdin(gawkText("indirectcall.in"))
706 				.expectLines(gawkPath("indirectcall.ok"))
707 				.expectExit(0)
708 				.runAndAssert();
709 	}
710 
711 	@Test
712 	public void test_indirectcall2() throws Exception {
713 		AwkTestSupport
714 				.cliTest("GAWK indirectcall2")
715 				.argument("-f", gawkFile("indirectcall2.awk"))
716 				.expectLines(gawkPath("indirectcall2.ok"))
717 				.expectExit(0)
718 				.runAndAssert();
719 	}
720 
721 	@Test
722 	public void test_indirectcall3() throws Exception {
723 		AwkTestSupport
724 				.cliTest("GAWK indirectcall3")
725 				.argument("-f", gawkFile("indirectcall3.awk"))
726 				.expectLines(gawkPath("indirectcall3.ok"))
727 				.expectExit(0)
728 				.runAndAssert();
729 	}
730 
731 	@Test
732 	public void test_isarrayunset() throws Exception {
733 		AwkTestSupport
734 				.cliTest("GAWK isarrayunset")
735 				.argument("-f", gawkFile("isarrayunset.awk"))
736 				.expectLines(gawkPath("isarrayunset.ok"))
737 				.expectExit(0)
738 				.runAndAssert();
739 	}
740 
741 	@Test
742 	public void test_lint() throws Exception {
743 		AwkTestSupport
744 				.cliTest("GAWK lint")
745 				.argument("-f", gawkFile("lint.awk"))
746 				.expectLines(gawkPath("lint.ok"))
747 				.expectExit(0)
748 				.runAndAssert();
749 	}
750 
751 	@Test
752 	public void test_lintset() throws Exception {
753 		AwkTestSupport
754 				.cliTest("GAWK lintset")
755 				.argument("-f", gawkFile("lintset.awk"))
756 				.expectLines(gawkPath("lintset.ok"))
757 				.expectExit(0)
758 				.runAndAssert();
759 	}
760 
761 	@Test
762 	public void test_match1() throws Exception {
763 		AwkTestSupport
764 				.cliTest("GAWK match1")
765 				.argument("-f", gawkFile("match1.awk"))
766 				.expectLines(gawkPath("match1.ok"))
767 				.expectExit(0)
768 				.runAndAssert();
769 	}
770 
771 	@Test
772 	public void test_match2() throws Exception {
773 		skip(NON_ZERO_TRANSCRIPT_REASON);
774 	}
775 
776 	@Test
777 	public void test_match3() throws Exception {
778 		AwkTestSupport
779 				.cliTest("GAWK match3")
780 				.argument("-f", gawkFile("match3.awk"))
781 				.stdin(gawkText("match3.in"))
782 				.expectLines(gawkPath("match3.ok"))
783 				.expectExit(0)
784 				.runAndAssert();
785 	}
786 
787 	@Test
788 	public void test_mbstr1() throws Exception {
789 		AwkTestSupport
790 				.cliTest("GAWK mbstr1")
791 				.argument("--locale", "en-US")
792 				.argument("-f", gawkFile("mbstr1.awk"))
793 				.expectLines(gawkPath("mbstr1.ok"))
794 				.expectExit(0)
795 				.runAndAssert();
796 	}
797 
798 	@Test
799 	public void test_mbstr2() throws Exception {
800 		skip(NON_UTF8_STDIN_REASON);
801 	}
802 
803 	@Test
804 	public void test_mdim1() throws Exception {
805 		skip(NON_ZERO_TRANSCRIPT_REASON);
806 	}
807 
808 	@Test
809 	public void test_mdim2() throws Exception {
810 		AwkTestSupport
811 				.cliTest("GAWK mdim2")
812 				.argument("-f", gawkFile("mdim2.awk"))
813 				.expectLines(gawkPath("mdim2.ok"))
814 				.expectExit(0)
815 				.runAndAssert();
816 	}
817 
818 	@Test
819 	public void test_mdim3() throws Exception {
820 		AwkTestSupport
821 				.cliTest("GAWK mdim3")
822 				.argument("-f", gawkFile("mdim3.awk"))
823 				.expectLines(gawkPath("mdim3.ok"))
824 				.expectExit(0)
825 				.runAndAssert();
826 	}
827 
828 	@Test
829 	public void test_mdim4() throws Exception {
830 		AwkTestSupport
831 				.cliTest("GAWK mdim4")
832 				.argument("-f", gawkFile("mdim4.awk"))
833 				.stdin(gawkText("mdim4.in"))
834 				.expectLines(gawkPath("mdim4.ok"))
835 				.expectExit(0)
836 				.runAndAssert();
837 	}
838 
839 	@Test
840 	public void test_mdim5() throws Exception {
841 		AwkTestSupport
842 				.cliTest("GAWK mdim5")
843 				.argument("-f", gawkFile("mdim5.awk"))
844 				.expectLines(gawkPath("mdim5.ok"))
845 				.expectExit(0)
846 				.runAndAssert();
847 	}
848 
849 	@Test
850 	public void test_mdim6() throws Exception {
851 		assertGawkRuntimeFailure("mdim6");
852 	}
853 
854 	@Test
855 	public void test_mdim7() throws Exception {
856 		AwkTestSupport
857 				.cliTest("GAWK mdim7")
858 				.argument("-f", gawkFile("mdim7.awk"))
859 				.expectLines(gawkPath("mdim7.ok"))
860 				.expectExit(0)
861 				.runAndAssert();
862 	}
863 
864 	@Test
865 	public void test_mdim8() throws Exception {
866 		AwkTestSupport
867 				.cliTest("GAWK mdim8")
868 				.argument("-f", gawkFile("mdim8.awk"))
869 				.stdin(gawkText("mdim8.in"))
870 				.expectLines(gawkPath("mdim8.ok"))
871 				.expectExit(0)
872 				.runAndAssert();
873 	}
874 
875 	@Test
876 	public void test_mktime() throws Exception {
877 		AwkTestSupport
878 				.cliTest("GAWK mktime")
879 				.argument("-f", gawkFile("mktime.awk"))
880 				.stdin(gawkText("mktime.in"))
881 				.expectLines(gawkPath("mktime.ok"))
882 				.expectExit(0)
883 				.runAndAssert();
884 	}
885 
886 	@Test
887 	public void test_modifiers() throws Exception {
888 		skip(
889 				"Shell-script target generated by Maketests; the in-process Jawk harness does not execute external shell scripts.");
890 	}
891 
892 	@Test
893 	public void test_nastyparm() throws Exception {
894 		skip(NON_ZERO_TRANSCRIPT_REASON);
895 	}
896 
897 	@Test
898 	public void test_next() throws Exception {
899 		skip(
900 				"Shell-script target generated by Maketests; the in-process Jawk harness does not execute external shell scripts.");
901 	}
902 
903 	@Test
904 	public void test_nondec() throws Exception {
905 		AwkTestSupport
906 				.cliTest("GAWK nondec")
907 				.argument("-f", gawkFile("nondec.awk"))
908 				.expectLines(gawkPath("nondec.ok"))
909 				.expectExit(0)
910 				.runAndAssert();
911 	}
912 
913 	@Test
914 	public void test_nonfatal2() throws Exception {
915 		AwkTestSupport
916 				.cliTest("GAWK nonfatal2")
917 				.argument("-f", gawkFile("nonfatal2.awk"))
918 				.expectLines(gawkPath("nonfatal2.ok"))
919 				.expectExit(0)
920 				.runAndAssert();
921 	}
922 
923 	@Test
924 	public void test_nonfatal3() throws Exception {
925 		AwkTestSupport
926 				.cliTest("GAWK nonfatal3")
927 				.argument("-f", gawkFile("nonfatal3.awk"))
928 				.expectLines(gawkPath("nonfatal3.ok"))
929 				.expectExit(0)
930 				.runAndAssert();
931 	}
932 
933 	@Test
934 	public void test_nsbad() throws Exception {
935 		skip(NON_ZERO_TRANSCRIPT_REASON);
936 	}
937 
938 	@Test
939 	public void test_nsbad2() throws Exception {
940 		skip(NON_ZERO_TRANSCRIPT_REASON);
941 	}
942 
943 	@Test
944 	public void test_nsbad3() throws Exception {
945 		skip(NON_ZERO_TRANSCRIPT_REASON);
946 	}
947 
948 	@Test
949 	public void test_nsforloop() throws Exception {
950 		AwkTestSupport
951 				.cliTest("GAWK nsforloop")
952 				.argument("-f", gawkFile("nsforloop.awk"))
953 				.expectLines(gawkPath("nsforloop.ok"))
954 				.expectExit(0)
955 				.runAndAssert();
956 	}
957 
958 	@Test
959 	public void test_nsfuncrecurse() throws Exception {
960 		AwkTestSupport
961 				.cliTest("GAWK nsfuncrecurse")
962 				.argument("-f", gawkFile("nsfuncrecurse.awk"))
963 				.expectLines(gawkPath("nsfuncrecurse.ok"))
964 				.expectExit(0)
965 				.runAndAssert();
966 	}
967 
968 	@Test
969 	public void test_nsindirect1() throws Exception {
970 		AwkTestSupport
971 				.cliTest("GAWK nsindirect1")
972 				.argument("-f", gawkFile("nsindirect1.awk"))
973 				.expectLines(gawkPath("nsindirect1.ok"))
974 				.expectExit(0)
975 				.runAndAssert();
976 	}
977 
978 	@Test
979 	public void test_nsindirect2() throws Exception {
980 		AwkTestSupport
981 				.cliTest("GAWK nsindirect2")
982 				.argument("-f", gawkFile("nsindirect2.awk"))
983 				.expectLines(gawkPath("nsindirect2.ok"))
984 				.expectExit(0)
985 				.runAndAssert();
986 	}
987 
988 	@Test
989 	public void test_octdec() throws Exception {
990 		AwkTestSupport
991 				.cliTest("GAWK octdec")
992 				.argument("-f", gawkFile("octdec.awk"))
993 				.expectLines(gawkPath("octdec.ok"))
994 				.expectExit(0)
995 				.runAndAssert();
996 	}
997 
998 	@Test
999 	public void test_patsplit() throws Exception {
1000 		AwkTestSupport
1001 				.cliTest("GAWK patsplit")
1002 				.argument("-f", gawkFile("patsplit.awk"))
1003 				.expectLines(gawkPath("patsplit.ok"))
1004 				.expectExit(0)
1005 				.runAndAssert();
1006 	}
1007 
1008 	@Test
1009 	public void test_posix() throws Exception {
1010 		AwkTestSupport
1011 				.cliTest("GAWK posix")
1012 				.argument("-f", gawkFile("posix.awk"))
1013 				.stdin(gawkText("posix.in"))
1014 				.expectLines(gawkPath("posix.ok"))
1015 				.expectExit(0)
1016 				.runAndAssert();
1017 	}
1018 
1019 	@Test
1020 	public void test_printfbad1() throws Exception {
1021 		skip(NON_ZERO_TRANSCRIPT_REASON);
1022 	}
1023 
1024 	@Test
1025 	public void test_printfbad3() throws Exception {
1026 		AwkTestSupport
1027 				.cliTest("GAWK printfbad3")
1028 				.argument("-f", gawkFile("printfbad3.awk"))
1029 				.expectLines(gawkPath("printfbad3.ok"))
1030 				.expectExit(0)
1031 				.runAndAssert();
1032 	}
1033 
1034 	@Test
1035 	public void test_printfbad4() throws Exception {
1036 		skip(NON_ZERO_TRANSCRIPT_REASON);
1037 	}
1038 
1039 	@Test
1040 	public void test_printhuge() throws Exception {
1041 		skip(NON_UTF8_EXPECTED_REASON);
1042 	}
1043 
1044 	@Test
1045 	public void test_procinfs() throws Exception {
1046 		AwkTestSupport
1047 				.cliTest("GAWK procinfs")
1048 				.argument("-f", gawkFile("procinfs.awk"))
1049 				.expectLines(gawkPath("procinfs.ok"))
1050 				.expectExit(0)
1051 				.runAndAssert();
1052 	}
1053 
1054 	@Test
1055 	public void test_regexsub() throws Exception {
1056 		AwkTestSupport
1057 				.cliTest("GAWK regexsub")
1058 				.argument("-f", gawkFile("regexsub.awk"))
1059 				.expectLines(gawkPath("regexsub.ok"))
1060 				.expectExit(0)
1061 				.runAndAssert();
1062 	}
1063 
1064 	@Test
1065 	public void test_regnul1() throws Exception {
1066 		AwkTestSupport
1067 				.cliTest("GAWK regnul1")
1068 				.argument("-f", gawkFile("regnul1.awk"))
1069 				.expectLines(gawkPath("regnul1.ok"))
1070 				.expectExit(0)
1071 				.runAndAssert();
1072 	}
1073 
1074 	@Test
1075 	public void test_regnul2() throws Exception {
1076 		AwkTestSupport
1077 				.cliTest("GAWK regnul2")
1078 				.argument("-f", gawkFile("regnul2.awk"))
1079 				.expectLines(gawkPath("regnul2.ok"))
1080 				.expectExit(0)
1081 				.runAndAssert();
1082 	}
1083 
1084 	@Test
1085 	public void test_regx8bit() throws Exception {
1086 		skip(NON_UTF8_EXPECTED_REASON);
1087 	}
1088 
1089 	@Test
1090 	public void test_rsgetline() throws Exception {
1091 		AwkTestSupport
1092 				.cliTest("GAWK rsgetline")
1093 				.argument("-f", gawkFile("rsgetline.awk"))
1094 				.stdin(gawkText("rsgetline.in"))
1095 				.expectLines(gawkPath("rsgetline.ok"))
1096 				.expectExit(0)
1097 				.runAndAssert();
1098 	}
1099 
1100 	@Test
1101 	public void test_rsstart1() throws Exception {
1102 		AwkTestSupport
1103 				.cliTest("GAWK rsstart1")
1104 				.argument("-f", gawkFile("rsstart1.awk"))
1105 				.stdin(gawkText("rsstart1.in"))
1106 				.expectLines(gawkPath("rsstart1.ok"))
1107 				.expectExit(0)
1108 				.runAndAssert();
1109 	}
1110 
1111 	@Test
1112 	public void test_rsstart2() throws Exception {
1113 		AwkTestSupport
1114 				.cliTest("GAWK rsstart2")
1115 				.argument("-f", gawkFile("rsstart2.awk"))
1116 				.stdin(gawkText("rsstart2.in"))
1117 				.expectLines(gawkPath("rsstart2.ok"))
1118 				.expectExit(0)
1119 				.runAndAssert();
1120 	}
1121 
1122 	@Test
1123 	public void test_rstest6() throws Exception {
1124 		AwkTestSupport
1125 				.cliTest("GAWK rstest6")
1126 				.argument("-f", gawkFile("rstest6.awk"))
1127 				.stdin(gawkText("rstest6.in"))
1128 				.expectLines(gawkPath("rstest6.ok"))
1129 				.expectExit(0)
1130 				.runAndAssert();
1131 	}
1132 
1133 	@Test
1134 	public void test_shadowbuiltin() throws Exception {
1135 		AwkTestSupport
1136 				.cliTest("GAWK shadowbuiltin")
1137 				.argument("-f", gawkFile("shadowbuiltin.awk"))
1138 				.expectLines(gawkPath("shadowbuiltin.ok"))
1139 				.expectExit(0)
1140 				.runAndAssert();
1141 	}
1142 
1143 	@Test
1144 	public void test_sortfor() throws Exception {
1145 		AwkTestSupport
1146 				.cliTest("GAWK sortfor")
1147 				.argument("-f", gawkFile("sortfor.awk"))
1148 				.stdin(gawkText("sortfor.in"))
1149 				.expectLines(gawkPath("sortfor.ok"))
1150 				.expectExit(0)
1151 				.runAndAssert();
1152 	}
1153 
1154 	@Test
1155 	public void test_sortfor2() throws Exception {
1156 		AwkTestSupport
1157 				.cliTest("GAWK sortfor2")
1158 				.argument("-f", gawkFile("sortfor2.awk"))
1159 				.stdin(gawkText("sortfor2.in"))
1160 				.expectLines(gawkPath("sortfor2.ok"))
1161 				.expectExit(0)
1162 				.runAndAssert();
1163 	}
1164 
1165 	@Test
1166 	public void test_sortu() throws Exception {
1167 		AwkTestSupport
1168 				.cliTest("GAWK sortu")
1169 				.argument("-f", gawkFile("sortu.awk"))
1170 				.expectLines(gawkPath("sortu.ok"))
1171 				.expectExit(0)
1172 				.runAndAssert();
1173 	}
1174 
1175 	@Test
1176 	public void test_split_after_fpat() throws Exception {
1177 		AwkTestSupport
1178 				.cliTest("GAWK split_after_fpat")
1179 				.argument("-f", gawkFile("split_after_fpat.awk"))
1180 				.stdin(gawkText("split_after_fpat.in"))
1181 				.expectLines(gawkPath("split_after_fpat.ok"))
1182 				.expectExit(0)
1183 				.runAndAssert();
1184 	}
1185 
1186 	@Test
1187 	public void test_splitarg4() throws Exception {
1188 		AwkTestSupport
1189 				.cliTest("GAWK splitarg4")
1190 				.argument("-f", gawkFile("splitarg4.awk"))
1191 				.stdin(gawkText("splitarg4.in"))
1192 				.expectLines(gawkPath("splitarg4.ok"))
1193 				.expectExit(0)
1194 				.runAndAssert();
1195 	}
1196 
1197 	@Test
1198 	public void test_strftfld() throws Exception {
1199 		AwkTestSupport
1200 				.cliTest("GAWK strftfld")
1201 				.argument("-f", gawkFile("strftfld.awk"))
1202 				.stdin(gawkText("strftfld.in"))
1203 				.expectLines(gawkPath("strftfld.ok"))
1204 				.expectExit(0)
1205 				.runAndAssert();
1206 	}
1207 
1208 	@Test
1209 	public void test_strtonum() throws Exception {
1210 		AwkTestSupport
1211 				.cliTest("GAWK strtonum")
1212 				.argument("-f", gawkFile("strtonum.awk"))
1213 				.expectLines(gawkPath("strtonum.ok"))
1214 				.expectExit(0)
1215 				.runAndAssert();
1216 	}
1217 
1218 	@Test
1219 	public void test_strtonum1() throws Exception {
1220 		AwkTestSupport
1221 				.cliTest("GAWK strtonum1")
1222 				.argument("-f", gawkFile("strtonum1.awk"))
1223 				.expectLines(gawkPath("strtonum1.ok"))
1224 				.expectExit(0)
1225 				.runAndAssert();
1226 	}
1227 
1228 	@Test
1229 	public void test_stupid1() throws Exception {
1230 		AwkTestSupport
1231 				.cliTest("GAWK stupid1")
1232 				.argument("-f", gawkFile("stupid1.awk"))
1233 				.expectLines(gawkPath("stupid1.ok"))
1234 				.expectExit(0)
1235 				.runAndAssert();
1236 	}
1237 
1238 	@Test
1239 	public void test_stupid2() throws Exception {
1240 		AwkTestSupport
1241 				.cliTest("GAWK stupid2")
1242 				.argument("-f", gawkFile("stupid2.awk"))
1243 				.expectLines(gawkPath("stupid2.ok"))
1244 				.expectExit(0)
1245 				.runAndAssert();
1246 	}
1247 
1248 	@Test
1249 	public void test_stupid3() throws Exception {
1250 		AwkTestSupport
1251 				.cliTest("GAWK stupid3")
1252 				.argument("-f", gawkFile("stupid3.awk"))
1253 				.expectLines(gawkPath("stupid3.ok"))
1254 				.expectExit(0)
1255 				.runAndAssert();
1256 	}
1257 
1258 	@Test
1259 	public void test_stupid4() throws Exception {
1260 		AwkTestSupport
1261 				.cliTest("GAWK stupid4")
1262 				.argument("-f", gawkFile("stupid4.awk"))
1263 				.expectLines(gawkPath("stupid4.ok"))
1264 				.expectExit(0)
1265 				.runAndAssert();
1266 	}
1267 
1268 	@Test
1269 	public void test_stupid5() throws Exception {
1270 		AwkTestSupport
1271 				.cliTest("GAWK stupid5")
1272 				.argument("-f", gawkFile("stupid5.awk"))
1273 				.expectLines(gawkPath("stupid5.ok"))
1274 				.expectExit(0)
1275 				.runAndAssert();
1276 	}
1277 
1278 	@Test
1279 	public void test_switch2() throws Exception {
1280 		AwkTestSupport
1281 				.cliTest("GAWK switch2")
1282 				.argument("-f", gawkFile("switch2.awk"))
1283 				.expectLines(gawkPath("switch2.ok"))
1284 				.expectExit(0)
1285 				.runAndAssert();
1286 	}
1287 
1288 	@Test
1289 	public void test_symtab1() throws Exception {
1290 		AwkTestSupport
1291 				.cliTest("GAWK symtab1")
1292 				.argument("-f", gawkFile("symtab1.awk"))
1293 				.expectLines(gawkPath("symtab1.ok"))
1294 				.expectExit(0)
1295 				.runAndAssert();
1296 	}
1297 
1298 	@Test
1299 	public void test_symtab2() throws Exception {
1300 		AwkTestSupport
1301 				.cliTest("GAWK symtab2")
1302 				.argument("-f", gawkFile("symtab2.awk"))
1303 				.expectLines(gawkPath("symtab2.ok"))
1304 				.expectExit(0)
1305 				.runAndAssert();
1306 	}
1307 
1308 	@Test
1309 	public void test_symtab3() throws Exception {
1310 		skip(NON_ZERO_TRANSCRIPT_REASON);
1311 	}
1312 
1313 	@Test
1314 	public void test_symtab4() throws Exception {
1315 		AwkTestSupport
1316 				.cliTest("GAWK symtab4")
1317 				.argument("-f", gawkFile("symtab4.awk"))
1318 				.stdin(gawkText("symtab4.in"))
1319 				.expectLines(gawkPath("symtab4.ok"))
1320 				.expectExit(0)
1321 				.runAndAssert();
1322 	}
1323 
1324 	@Test
1325 	public void test_symtab5() throws Exception {
1326 		AwkTestSupport
1327 				.cliTest("GAWK symtab5")
1328 				.argument("-f", gawkFile("symtab5.awk"))
1329 				.stdin(gawkText("symtab5.in"))
1330 				.expectLines(gawkPath("symtab5.ok"))
1331 				.expectExit(0)
1332 				.runAndAssert();
1333 	}
1334 
1335 	@Test
1336 	public void test_symtab7() throws Exception {
1337 		skip(NON_ZERO_TRANSCRIPT_REASON);
1338 	}
1339 
1340 	@Test
1341 	public void test_symtab10() throws Exception {
1342 		skip(NON_ZERO_TRANSCRIPT_REASON);
1343 	}
1344 
1345 	@Test
1346 	public void test_symtab11() throws Exception {
1347 		AwkTestSupport
1348 				.cliTest("GAWK symtab11")
1349 				.argument("-f", gawkFile("symtab11.awk"))
1350 				.expectLines(gawkPath("symtab11.ok"))
1351 				.expectExit(0)
1352 				.runAndAssert();
1353 	}
1354 
1355 	@Test
1356 	public void test_symtab12() throws Exception {
1357 		skip(NON_ZERO_TRANSCRIPT_REASON);
1358 	}
1359 
1360 	@Test
1361 	public void test_timeout() throws Exception {
1362 		AwkTestSupport
1363 				.cliTest("GAWK timeout")
1364 				.argument("-f", gawkFile("timeout.awk"))
1365 				.expectLines(gawkPath("timeout.ok"))
1366 				.expectExit(0)
1367 				.runAndAssert();
1368 	}
1369 
1370 	@Test
1371 	public void test_typedregex1() throws Exception {
1372 		AwkTestSupport
1373 				.cliTest("GAWK typedregex1")
1374 				.argument("-f", gawkFile("typedregex1.awk"))
1375 				.expectLines(gawkPath("typedregex1.ok"))
1376 				.expectExit(0)
1377 				.runAndAssert();
1378 	}
1379 
1380 	@Test
1381 	public void test_typedregex2() throws Exception {
1382 		AwkTestSupport
1383 				.cliTest("GAWK typedregex2")
1384 				.argument("-f", gawkFile("typedregex2.awk"))
1385 				.expectLines(gawkPath("typedregex2.ok"))
1386 				.expectExit(0)
1387 				.runAndAssert();
1388 	}
1389 
1390 	@Test
1391 	public void test_typedregex3() throws Exception {
1392 		AwkTestSupport
1393 				.cliTest("GAWK typedregex3")
1394 				.argument("-f", gawkFile("typedregex3.awk"))
1395 				.expectLines(gawkPath("typedregex3.ok"))
1396 				.expectExit(0)
1397 				.runAndAssert();
1398 	}
1399 
1400 	@Test
1401 	public void test_typedregex5() throws Exception {
1402 		AwkTestSupport
1403 				.cliTest("GAWK typedregex5")
1404 				.argument("-f", gawkFile("typedregex5.awk"))
1405 				.stdin(gawkText("typedregex5.in"))
1406 				.expectLines(gawkPath("typedregex5.ok"))
1407 				.expectExit(0)
1408 				.runAndAssert();
1409 	}
1410 
1411 	@Test
1412 	public void test_typedregex6() throws Exception {
1413 		AwkTestSupport
1414 				.cliTest("GAWK typedregex6")
1415 				.argument("-f", gawkFile("typedregex6.awk"))
1416 				.stdin(gawkText("typedregex6.in"))
1417 				.expectLines(gawkPath("typedregex6.ok"))
1418 				.expectExit(0)
1419 				.runAndAssert();
1420 	}
1421 
1422 	@Test
1423 	public void test_typeof1() throws Exception {
1424 		AwkTestSupport
1425 				.cliTest("GAWK typeof1")
1426 				.argument("-f", gawkFile("typeof1.awk"))
1427 				.expectLines(gawkPath("typeof1.ok"))
1428 				.expectExit(0)
1429 				.runAndAssert();
1430 	}
1431 
1432 	@Test
1433 	public void test_typeof2() throws Exception {
1434 		AwkTestSupport
1435 				.cliTest("GAWK typeof2")
1436 				.redirectErrorStream()
1437 				.argument("-f", gawkFile("typeof2.awk"))
1438 				.expectLines(gawkPath("typeof2.ok"))
1439 				.expectExit(0)
1440 				.runAndAssert();
1441 	}
1442 
1443 	@Test
1444 	public void test_typeof3() throws Exception {
1445 		AwkTestSupport
1446 				.cliTest("GAWK typeof3")
1447 				.argument("-f", gawkFile("typeof3.awk"))
1448 				.expectLines(gawkPath("typeof3.ok"))
1449 				.expectExit(0)
1450 				.runAndAssert();
1451 	}
1452 
1453 	@Test
1454 	public void test_typeof4() throws Exception {
1455 		AwkTestSupport
1456 				.cliTest("GAWK typeof4")
1457 				.argument("-f", gawkFile("typeof4.awk"))
1458 				.expectLines(gawkPath("typeof4.ok"))
1459 				.expectExit(0)
1460 				.runAndAssert();
1461 	}
1462 
1463 	@Test
1464 	public void test_typeof5() throws Exception {
1465 		AwkTestSupport
1466 				.cliTest("GAWK typeof5")
1467 				.argument("-f", gawkFile("typeof5.awk"))
1468 				.stdin(gawkText("typeof5.in"))
1469 				.expectLines(gawkPath("typeof5.ok"))
1470 				.expectExit(0)
1471 				.runAndAssert();
1472 	}
1473 
1474 	@Test
1475 	public void test_typeof6() throws Exception {
1476 		AwkTestSupport
1477 				.cliTest("GAWK typeof6")
1478 				.argument("-f", gawkFile("typeof6.awk"))
1479 				.expectLines(gawkPath("typeof6.ok"))
1480 				.expectExit(0)
1481 				.runAndAssert();
1482 	}
1483 
1484 	@Test
1485 	public void test_unicode1() throws Exception {
1486 		AwkTestSupport
1487 				.cliTest("GAWK unicode1")
1488 				.argument("--locale", "en-US")
1489 				.argument("-f", gawkFile("unicode1.awk"))
1490 				.expectLines(gawkPath("unicode1.ok"))
1491 				.expectExit(0)
1492 				.runAndAssert();
1493 	}
1494 
1495 	@Test
1496 	public void test_manyfiles() throws Exception {
1497 		skip(MANUAL_SKIP_REASON);
1498 	}
1499 
1500 	@Test
1501 	public void test_argtest() throws Exception {
1502 		skip(MANUAL_SKIP_REASON);
1503 	}
1504 
1505 	@Test
1506 	public void test_badargs() throws Exception {
1507 		skip(MANUAL_SKIP_REASON);
1508 	}
1509 
1510 	@Test
1511 	public void test_strftime() throws Exception {
1512 		skip(MANUAL_SKIP_REASON);
1513 	}
1514 
1515 	@Test
1516 	public void test_devfd() throws Exception {
1517 		skip(MANUAL_SKIP_REASON);
1518 	}
1519 
1520 	@Test
1521 	public void test_errno() throws Exception {
1522 		skip(MANUAL_SKIP_REASON);
1523 	}
1524 
1525 	@Test
1526 	public void test_rebuf() throws Exception {
1527 		skip(MANUAL_SKIP_REASON);
1528 	}
1529 
1530 	@Test
1531 	public void test_rsglstdin() throws Exception {
1532 		skip(MANUAL_SKIP_REASON);
1533 	}
1534 
1535 	@Test
1536 	public void test_rsstart3() throws Exception {
1537 		skip(MANUAL_SKIP_REASON);
1538 	}
1539 
1540 	@Test
1541 	public void test_binmode1() throws Exception {
1542 		skip(MANUAL_SKIP_REASON);
1543 	}
1544 
1545 	@Test
1546 	public void test_devfd1() throws Exception {
1547 		skip(MANUAL_SKIP_REASON);
1548 	}
1549 
1550 	@Test
1551 	public void test_devfd2() throws Exception {
1552 		skip(MANUAL_SKIP_REASON);
1553 	}
1554 
1555 	@Test
1556 	public void test_mixed1() throws Exception {
1557 		skip(MANUAL_SKIP_REASON);
1558 	}
1559 
1560 	@Test
1561 	public void test_beginfile1() throws Exception {
1562 		// Upstream: $AWK -f beginfile1.awk "$(srcdir)"/beginfile1.awk . ./no/such/file Makefile
1563 		// The script strips directories from FILENAME with gsub(/.*[/]/, ""),
1564 		// so operands are passed with forward slashes. "Makefile" is not part
1565 		// of the vendored fixtures (it is generated by gawk's configure), so
1566 		// an equivalent two-record file is materialized on the fly.
1567 		Path makefile = AwkTestSupport.sharedTempDirectory().resolve("Makefile");
1568 		Files.write(makefile, "# first record\n# second record\n".getBytes(StandardCharsets.UTF_8));
1569 		AwkTestSupport
1570 				.cliTest("GAWK beginfile1")
1571 				.argument("-f", gawkFile("beginfile1.awk"))
1572 				.operand(
1573 						slashed(gawkPath("beginfile1.awk")),
1574 						".",
1575 						"./no/such/file",
1576 						slashed(makefile))
1577 				.expectLines(gawkPath("beginfile1.ok"))
1578 				.expectExit(0)
1579 				.runAndAssert();
1580 	}
1581 
1582 	// The gawk beginfile2 target is a shell script running 16 sub-tests; the
1583 	// reproducible ones are transcribed below as test_beginfile2_test*. The
1584 	// remaining sub-tests rely on non-redirected getline in BEGIN/END driving
1585 	// the BEGINFILE/ENDFILE hooks mid-statement, or compare non-zero gawk CLI
1586 	// transcripts, which Jawk does not reproduce.
1587 
1588 	@Test
1589 	public void test_beginfile2_test2() throws Exception {
1590 		AwkTestSupport
1591 				.cliTest("GAWK beginfile2 --Test 2--")
1592 				.argument(beginfile2Program(2))
1593 				.operand(slashed(gawkPath("beginfile2.in")), "file/does/not/exist")
1594 				.postProcessWith(GawkExtensionIT::stripGawkDirectory)
1595 				.expectLines(beginfile2ExpectedLines("2"))
1596 				.expectExit(0)
1597 				.runAndAssert();
1598 	}
1599 
1600 	@Test
1601 	public void test_beginfile2_test5() throws Exception {
1602 		AwkTestSupport
1603 				.cliTest("GAWK beginfile2 --Test 5--")
1604 				.argument(beginfile2Program(5))
1605 				.operand(slashed(gawkPath("beginfile2.in")))
1606 				.expectLines(beginfile2ExpectedLines("5"))
1607 				.expectExit(0)
1608 				.runAndAssert();
1609 	}
1610 
1611 	@Test
1612 	public void test_beginfile2_test9a() throws Exception {
1613 		AwkTestSupport
1614 				.cliTest("GAWK beginfile2 --Test 9a--")
1615 				.argument(beginfile2Program(9))
1616 				.operand("file/does/not/exist", slashed(gawkPath("beginfile2.in")))
1617 				.postProcessWith(GawkExtensionIT::stripGawkDirectory)
1618 				.expectLines(beginfile2ExpectedLines("9a"))
1619 				.expectExit(0)
1620 				.runAndAssert();
1621 	}
1622 
1623 	@Test
1624 	public void test_beginfile2_test9b() throws Exception {
1625 		AwkTestSupport
1626 				.cliTest("GAWK beginfile2 --Test 9b--")
1627 				.preassign("skip", 1)
1628 				.argument(beginfile2Program(9))
1629 				.operand("file/does/not/exist", slashed(gawkPath("beginfile2.in")))
1630 				.postProcessWith(GawkExtensionIT::stripGawkDirectory)
1631 				.expectLines(beginfile2ExpectedLines("9b"))
1632 				.expectExit(0)
1633 				.runAndAssert();
1634 	}
1635 
1636 	@Test
1637 	public void test_beginfile2_test12() throws Exception {
1638 		AwkTestSupport
1639 				.cliTest("GAWK beginfile2 --Test 12--")
1640 				.argument(beginfile2Program(12))
1641 				.operand(slashed(gawkPath("beginfile2.in")), slashed(gawkPath("beginfile2.sh")))
1642 				.postProcessWith(GawkExtensionIT::stripGawkDirectory)
1643 				.expectLines(beginfile2ExpectedLines("12"))
1644 				.expectExit(0)
1645 				.runAndAssert();
1646 	}
1647 
1648 	@Test
1649 	public void test_beginfile2_test15() throws Exception {
1650 		AwkTestSupport
1651 				.cliTest("GAWK beginfile2 --Test 15--")
1652 				.argument(beginfile2Program(15))
1653 				.operand(slashed(gawkPath("beginfile2.in")), slashed(gawkPath("beginfile2.sh")))
1654 				.postProcessWith(GawkExtensionIT::stripGawkDirectory)
1655 				.expectLines(beginfile2ExpectedLines("15"))
1656 				.expectExit(0)
1657 				.runAndAssert();
1658 	}
1659 
1660 	/**
1661 	 * Extracts one sub-test program from the vendored {@code beginfile2.in},
1662 	 * exactly like {@code beginfile2.sh} does with its awk range patterns.
1663 	 * The {@code #TESTn#} marker lines are comments and stay harmless.
1664 	 *
1665 	 * @param testNumber sub-test number
1666 	 * @return the AWK program of that sub-test
1667 	 */
1668 	private static String beginfile2Program(int testNumber) throws IOException {
1669 		String text = gawkText("beginfile2.in");
1670 		String beginMarker = "#TEST" + testNumber + "#";
1671 		String endMarker = "#TEST" + (testNumber + 1) + "#";
1672 		return text.substring(text.indexOf(beginMarker), text.indexOf(endMarker) + endMarker.length());
1673 	}
1674 
1675 	/**
1676 	 * Extracts the expected transcript of one beginfile2 sub-test from the
1677 	 * vendored {@code beginfile2.ok}, i.e. the lines between the
1678 	 * {@code --Test N--} banner and the next banner.
1679 	 *
1680 	 * @param testLabel sub-test label as it appears in the banner (e.g. "9a")
1681 	 * @return the expected output lines of that sub-test
1682 	 */
1683 	private static List<String> beginfile2ExpectedLines(String testLabel) throws IOException {
1684 		List<String> lines = Files.readAllLines(gawkPath("beginfile2.ok"), StandardCharsets.UTF_8);
1685 		List<String> section = new ArrayList<>();
1686 		boolean inSection = false;
1687 		for (String line : lines) {
1688 			if (line.startsWith("--Test ")) {
1689 				if (inSection) {
1690 					break;
1691 				}
1692 				inSection = line.equals("--Test " + testLabel + "--");
1693 				continue;
1694 			}
1695 			if (inSection) {
1696 				section.add(line);
1697 			}
1698 		}
1699 		return section;
1700 	}
1701 
1702 	/**
1703 	 * Removes the vendored gawk directory prefix from FILENAME occurrences in
1704 	 * the transcript, so it can be compared with the {@code .ok} files that
1705 	 * gawk produces while running inside that directory.
1706 	 *
1707 	 * @param output raw transcript
1708 	 * @return transcript with bare fixture file names
1709 	 */
1710 	private static String stripGawkDirectory(String output) {
1711 		return output.replace(slashed(GAWK_DIRECTORY) + "/", "");
1712 	}
1713 
1714 	/**
1715 	 * Returns the path as a string with forward slashes, so FILENAME-based
1716 	 * basename extraction with {@code gsub(/.*[/]/, "")} works on Windows too.
1717 	 *
1718 	 * @param path path to convert
1719 	 * @return the path with forward slashes
1720 	 */
1721 	private static String slashed(Path path) {
1722 		return path.toString().replace('\\', '/');
1723 	}
1724 
1725 	@Test
1726 	public void test_dumpvars() throws Exception {
1727 		skip(MANUAL_SKIP_REASON);
1728 	}
1729 
1730 	@Test
1731 	public void test_profile0() throws Exception {
1732 		skip(MANUAL_SKIP_REASON);
1733 	}
1734 
1735 	@Test
1736 	public void test_profile1() throws Exception {
1737 		skip(MANUAL_SKIP_REASON);
1738 	}
1739 
1740 	@Test
1741 	public void test_profile2() throws Exception {
1742 		skip(MANUAL_SKIP_REASON);
1743 	}
1744 
1745 	@Test
1746 	public void test_profile3() throws Exception {
1747 		skip(MANUAL_SKIP_REASON);
1748 	}
1749 
1750 	@Test
1751 	public void test_profile6() throws Exception {
1752 		skip(MANUAL_SKIP_REASON);
1753 	}
1754 
1755 	@Test
1756 	public void test_profile7() throws Exception {
1757 		skip(MANUAL_SKIP_REASON);
1758 	}
1759 
1760 	@Test
1761 	public void test_profile12() throws Exception {
1762 		skip(MANUAL_SKIP_REASON);
1763 	}
1764 
1765 	@Test
1766 	public void test_nsawk1a() throws Exception {
1767 		AwkTestSupport
1768 				.cliTest("GAWK nsawk1a")
1769 				.argument("-f", gawkFile("nsawk1.awk"))
1770 				.expectLines(gawkPath("nsawk1a.ok"))
1771 				.expectExit(0)
1772 				.runAndAssert();
1773 	}
1774 
1775 	@Test
1776 	public void test_nsawk1b() throws Exception {
1777 		AwkTestSupport
1778 				.cliTest("GAWK nsawk1b")
1779 				.argument("-v", "I=fine")
1780 				.argument("-f", gawkFile("nsawk1.awk"))
1781 				.expectLines(gawkPath("nsawk1b.ok"))
1782 				.expectExit(0)
1783 				.runAndAssert();
1784 	}
1785 
1786 	@Test
1787 	public void test_nsawk1c() throws Exception {
1788 		AwkTestSupport
1789 				.cliTest("GAWK nsawk1c")
1790 				.argument("-v", "awk::I=fine")
1791 				.argument("-f", gawkFile("nsawk1.awk"))
1792 				.expectLines(gawkPath("nsawk1c.ok"))
1793 				.expectExit(0)
1794 				.runAndAssert();
1795 	}
1796 
1797 	@Test
1798 	public void test_nsawk2a() throws Exception {
1799 		AwkTestSupport
1800 				.cliTest("GAWK nsawk2a")
1801 				.argument("-v", "I=fine")
1802 				.argument("-f", gawkFile("nsawk2.awk"))
1803 				.expectLines(gawkPath("nsawk2a.ok"))
1804 				.expectExit(0)
1805 				.runAndAssert();
1806 	}
1807 
1808 	@Test
1809 	public void test_nsawk2b() throws Exception {
1810 		AwkTestSupport
1811 				.cliTest("GAWK nsawk2b")
1812 				.argument("-v", "awk::I=fine")
1813 				.argument("-f", gawkFile("nsawk2.awk"))
1814 				.expectLines(gawkPath("nsawk2b.ok"))
1815 				.expectExit(0)
1816 				.runAndAssert();
1817 	}
1818 
1819 	@Test
1820 	public void test_include2() throws Exception {
1821 		skip(MANUAL_SKIP_REASON);
1822 	}
1823 
1824 	@Test
1825 	public void test_incdupe() throws Exception {
1826 		skip(MANUAL_SKIP_REASON);
1827 	}
1828 
1829 	@Test
1830 	public void test_incdupe2() throws Exception {
1831 		skip(MANUAL_SKIP_REASON);
1832 	}
1833 
1834 	@Test
1835 	public void test_incdupe3() throws Exception {
1836 		skip(MANUAL_SKIP_REASON);
1837 	}
1838 
1839 	@Test
1840 	public void test_incdupe4() throws Exception {
1841 		skip(MANUAL_SKIP_REASON);
1842 	}
1843 
1844 	@Test
1845 	public void test_incdupe5() throws Exception {
1846 		skip(MANUAL_SKIP_REASON);
1847 	}
1848 
1849 	@Test
1850 	public void test_incdupe6() throws Exception {
1851 		skip(MANUAL_SKIP_REASON);
1852 	}
1853 
1854 	@Test
1855 	public void test_incdupe7() throws Exception {
1856 		skip(MANUAL_SKIP_REASON);
1857 	}
1858 
1859 	@Test
1860 	public void test_charasbytes() throws Exception {
1861 		skip(MANUAL_SKIP_REASON);
1862 	}
1863 
1864 	@Test
1865 	public void test_symtab6() throws Exception {
1866 		skip(
1867 				"This handwritten case compares a fatal gawk SYMTAB diagnostic on stderr and is intentionally skipped in the explicit AwkTestSupport.cliTest suite.");
1868 	}
1869 
1870 	@Test
1871 	public void test_symtab8() throws Exception {
1872 		skip(MANUAL_SKIP_REASON);
1873 	}
1874 
1875 	@Test
1876 	public void test_symtab9() throws Exception {
1877 		AwkTestSupport
1878 				.cliTest("GAWK symtab9")
1879 				.argument("-f", gawkFile("symtab9.awk"))
1880 				.expectLines(gawkPath("symtab9.ok"))
1881 				.expectExit(0)
1882 				.runAndAssert();
1883 	}
1884 
1885 	@Test
1886 	public void test_reginttrad() throws Exception {
1887 		skip(MANUAL_SKIP_REASON);
1888 	}
1889 
1890 	@Test
1891 	public void test_colonwarn() throws Exception {
1892 		skip(MANUAL_SKIP_REASON);
1893 	}
1894 
1895 	@Test
1896 	public void test_dbugeval() throws Exception {
1897 		skip(MANUAL_SKIP_REASON);
1898 	}
1899 
1900 	@Test
1901 	public void test_genpot() throws Exception {
1902 		skip(MANUAL_SKIP_REASON);
1903 	}
1904 
1905 	@Test
1906 	public void test_negtime() throws Exception {
1907 		skip(MANUAL_SKIP_REASON);
1908 	}
1909 
1910 	@Test
1911 	public void test_watchpoint1() throws Exception {
1912 		skip(MANUAL_SKIP_REASON);
1913 	}
1914 
1915 	@Test
1916 	public void test_pty1() throws Exception {
1917 		skip(MANUAL_SKIP_REASON);
1918 	}
1919 
1920 	@Test
1921 	public void test_pty2() throws Exception {
1922 		skip(MANUAL_SKIP_REASON);
1923 	}
1924 
1925 	@Test
1926 	public void test_arrdbg() throws Exception {
1927 		skip(MANUAL_SKIP_REASON);
1928 	}
1929 
1930 	@Test
1931 	public void test_sourcesplit() throws Exception {
1932 		skip(MANUAL_SKIP_REASON);
1933 	}
1934 
1935 	@Test
1936 	public void test_nsbad_cmd() throws Exception {
1937 		skip(MANUAL_SKIP_REASON);
1938 	}
1939 
1940 	@Test
1941 	public void test_nonfatal1() throws Exception {
1942 		skip(MANUAL_SKIP_REASON);
1943 	}
1944 
1945 	@Test
1946 	public void test_nsidentifier() throws Exception {
1947 		AwkTestSupport
1948 				.cliTest("GAWK nsidentifier")
1949 				.argument("-v", "SORT=sort")
1950 				.argument("-f", gawkFile("nsidentifier.awk"))
1951 				.expectLines(gawkPath("nsidentifier.ok"))
1952 				.expectExit(0)
1953 				.runAndAssert();
1954 	}
1955 
1956 	@Test
1957 	public void test_typedregex4() throws Exception {
1958 		skip(MANUAL_SKIP_REASON);
1959 	}
1960 
1961 	@Test
1962 	public void test_iolint() throws Exception {
1963 		skip(MANUAL_SKIP_REASON);
1964 	}
1965 
1966 }