source: trunk/essentials/sys-apps/gawk/test/Makefile.am

Last change on this file was 3076, checked in by bird, 19 years ago

gawk 3.1.5

File size: 22.2 KB
Line 
1#
2# test/Makefile.am --- automake input file for gawk
3#
4# Copyright (C) 1988-2005 the Free Software Foundation, Inc.
5#
6# This file is part of GAWK, the GNU implementation of the
7# AWK Programming Language.
8#
9# GAWK is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# GAWK 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 Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22#
23
24## process this file with automake to produce Makefile.in
25
26EXTRA_DIST = \
27 reg \
28 lib \
29 Gentests \
30 Maketests \
31 README \
32 addcomma.awk \
33 addcomma.in \
34 addcomma.ok \
35 anchgsub.awk \
36 anchgsub.in \
37 anchgsub.ok \
38 argarray.awk \
39 argarray.in \
40 argarray.ok \
41 argtest.awk \
42 argtest.ok \
43 arrayparm.awk \
44 arrayparm.ok \
45 arrayprm2.awk \
46 arrayprm2.ok \
47 arrayprm3.awk \
48 arrayprm3.ok \
49 arrayref.awk \
50 arrayref.ok \
51 arrymem1.awk \
52 arrymem1.ok \
53 arryref2.awk \
54 arryref2.ok \
55 arryref3.awk \
56 arryref3.ok \
57 arryref4.awk \
58 arryref4.ok \
59 arryref5.awk \
60 arryref5.ok \
61 arynasty.awk \
62 arynasty.ok \
63 arynocls.awk \
64 arynocls.in \
65 arynocls.ok \
66 aryprm1.awk \
67 aryprm1.ok \
68 aryprm2.awk \
69 aryprm2.ok \
70 aryprm3.awk \
71 aryprm3.ok \
72 aryprm4.awk \
73 aryprm4.ok \
74 aryprm5.awk \
75 aryprm5.ok \
76 aryprm6.awk \
77 aryprm6.ok \
78 aryprm7.awk \
79 aryprm7.ok \
80 aryprm8.awk \
81 aryprm8.ok \
82 arysubnm.awk \
83 arysubnm.ok \
84 asgext.awk \
85 asgext.in \
86 asgext.ok \
87 asort.awk \
88 asort.ok \
89 asorti.awk \
90 asorti.ok \
91 awkpath.ok \
92 back89.awk \
93 back89.in \
94 back89.ok \
95 backgsub.awk \
96 backgsub.in \
97 backgsub.ok \
98 backw.awk \
99 backw.in \
100 backw.ok \
101 badargs.ok \
102 childin.awk \
103 childin.in \
104 childin.ok \
105 clobber.awk \
106 clobber.ok \
107 clos1way.awk \
108 clos1way.ok \
109 clsflnam.awk \
110 clsflnam.in \
111 clsflnam.ok \
112 compare.awk \
113 compare.in \
114 compare.ok \
115 compare2.awk \
116 compare2.ok \
117 concat1.awk \
118 concat1.in \
119 concat1.ok \
120 concat2.awk \
121 concat2.ok \
122 concat3.awk \
123 concat3.ok \
124 convfmt.awk \
125 convfmt.ok \
126 datanonl.awk \
127 datanonl.in \
128 datanonl.ok \
129 defref.awk \
130 defref.ok \
131 delarprm.awk \
132 delarprm.ok \
133 delarpm2.awk \
134 delarpm2.ok \
135 delfunc.awk \
136 delfunc.ok \
137 dynlj.awk \
138 dynlj.ok \
139 eofsplit.awk \
140 eofsplit.ok \
141 exitval1.awk \
142 exitval1.ok \
143 exitval2.awk \
144 exitval2.ok \
145 fflush.ok \
146 fflush.sh \
147 fieldwdth.awk \
148 fieldwdth.in \
149 fieldwdth.ok \
150 fldchg.awk \
151 fldchg.in \
152 fldchg.ok \
153 fldchgnf.awk \
154 fldchgnf.in \
155 fldchgnf.ok \
156 fmttest.awk \
157 fmttest.ok \
158 fnamedat.awk \
159 fnamedat.in \
160 fnamedat.ok \
161 fnarray.awk \
162 fnarray.ok \
163 fnarray2.awk \
164 fnarray2.ok \
165 fnarydel.awk \
166 fnarydel.ok \
167 fnaryscl.awk \
168 fnaryscl.ok \
169 fnasgnm.awk \
170 fnasgnm.in \
171 fnasgnm.ok \
172 fnmisc.awk \
173 fnmisc.ok \
174 fnparydl.awk \
175 fnparydl.ok \
176 fordel.awk \
177 fordel.ok \
178 forsimp.awk \
179 forsimp.ok \
180 fsbs.awk \
181 fsbs.in \
182 fsbs.ok \
183 fsfwfs.awk \
184 fsfwfs.in \
185 fsfwfs.ok \
186 fsrs.awk \
187 fsrs.in \
188 fsrs.ok \
189 fsspcoln.awk \
190 fsspcoln.in \
191 fsspcoln.ok \
192 fstabplus.awk \
193 fstabplus.in \
194 fstabplus.ok \
195 funsemnl.awk \
196 funsemnl.ok \
197 funsmnam.awk \
198 funsmnam.ok \
199 funstack.awk \
200 funstack.in \
201 funstack.ok \
202 gensub.awk \
203 gensub.in \
204 gensub.ok \
205 gensub2.awk \
206 gensub2.ok \
207 getline.awk \
208 getline.in \
209 getline.ok \
210 getline2.awk \
211 getline2.ok \
212 getline3.awk \
213 getline3.ok \
214 getlnbuf.awk \
215 getlnbuf.in \
216 getlnbuf.ok \
217 getlnhd.awk \
218 getlnhd.ok \
219 getnr2tb.awk \
220 getnr2tb.in \
221 getnr2tb.ok \
222 getnr2tm.awk \
223 getnr2tm.in \
224 getnr2tm.ok \
225 gnuops2.awk \
226 gnuops2.ok \
227 gnuops3.awk \
228 gnuops3.ok \
229 gnureops.awk \
230 gnureops.ok \
231 gsubasgn.awk \
232 gsubasgn.ok \
233 gsubtest.awk \
234 gsubtest.ok \
235 gsubtst2.awk \
236 gsubtst2.ok \
237 gsubtst3.awk \
238 gsubtst3.in \
239 gsubtst3.ok \
240 gsubtst4.awk \
241 gsubtst4.ok \
242 gsubtst5.awk \
243 gsubtst5.in \
244 gsubtst5.ok \
245 gtlnbufv.awk \
246 hex.awk \
247 hex.ok \
248 hsprint.awk \
249 hsprint.ok \
250 icasefs.awk \
251 icasefs.ok \
252 icasers.awk \
253 icasers.in \
254 icasers.ok \
255 igncdym.awk \
256 igncdym.in \
257 igncdym.ok \
258 igncfs.awk \
259 igncfs.in \
260 igncfs.ok \
261 ignrcase.awk \
262 ignrcase.in \
263 ignrcase.ok \
264 ignrcas2.awk \
265 ignrcas2.ok \
266 inftest.awk \
267 inftest.ok \
268 inputred.awk \
269 inputred.ok \
270 intest.awk \
271 intest.ok \
272 intprec.awk \
273 intprec.ok \
274 iobug1.awk \
275 iobug1.ok \
276 leaddig.awk \
277 leaddig.ok \
278 leadnl.awk \
279 leadnl.in \
280 leadnl.ok \
281 lint.awk \
282 lint.ok \
283 litoct.awk \
284 litoct.ok \
285 longdbl.awk \
286 longdbl.in \
287 longdbl.ok \
288 longsub.awk \
289 longsub.in \
290 longsub.ok \
291 longwrds.awk \
292 longwrds.ok \
293 longwrds.in \
294 manglprm.awk \
295 manglprm.in \
296 manglprm.ok \
297 manyfiles.awk \
298 manyfiles.ok \
299 match1.awk \
300 match1.ok \
301 match2.awk \
302 match2.ok \
303 math.awk \
304 math.ok \
305 membug1.awk \
306 membug1.in \
307 membug1.ok \
308 messages.awk \
309 minusstr.awk \
310 minusstr.ok \
311 mmap8k.in \
312 nasty.awk \
313 nasty.ok \
314 nasty2.awk \
315 nasty2.ok \
316 negexp.awk \
317 negexp.ok \
318 nested.awk \
319 nested.in \
320 nested.ok \
321 nfldstr.awk \
322 nfldstr.in \
323 nfldstr.ok \
324 nfneg.awk \
325 nfneg.ok \
326 nfset.awk \
327 nfset.in \
328 nfset.ok \
329 nlfldsep.awk \
330 nlfldsep.in \
331 nlfldsep.ok \
332 nlinstr.awk \
333 nlinstr.in \
334 nlinstr.ok \
335 nlstrina.awk \
336 nlstrina.ok \
337 noeffect.awk \
338 noeffect.ok \
339 nofmtch.awk \
340 nofmtch.ok \
341 noloop1.awk \
342 noloop1.in \
343 noloop1.ok \
344 noloop2.awk \
345 noloop2.in \
346 noloop2.ok \
347 nondec.awk \
348 nondec.ok \
349 nondec2.awk \
350 nondec2.ok \
351 nonl.awk \
352 nonl.ok \
353 noparms.awk \
354 noparms.ok \
355 nors.in \
356 nors.ok \
357 nulrsend.awk \
358 nulrsend.in \
359 nulrsend.ok \
360 numindex.awk \
361 numindex.in \
362 numindex.ok \
363 numsubstr.awk \
364 numsubstr.in \
365 numsubstr.ok \
366 octsub.awk \
367 octsub.ok \
368 ofmt.awk \
369 ofmt.in \
370 ofmt.ok \
371 ofmtbig.awk \
372 ofmtbig.in \
373 ofmtbig.ok \
374 ofmtfidl.awk \
375 ofmtfidl.in \
376 ofmtfidl.ok \
377 ofmts.awk \
378 ofmts.in \
379 ofmts.ok \
380 onlynl.awk \
381 onlynl.in \
382 onlynl.ok \
383 opasnidx.awk \
384 opasnidx.ok \
385 opasnslf.awk \
386 opasnslf.ok \
387 out1.ok \
388 out2.ok \
389 out3.ok \
390 paramdup.awk \
391 paramdup.ok \
392 paramtyp.awk \
393 paramtyp.ok \
394 parseme.awk \
395 parseme.ok \
396 pcntplus.awk \
397 pcntplus.ok \
398 pid.awk \
399 pid.ok \
400 pid.sh \
401 pipeio1.awk \
402 pipeio1.ok \
403 pipeio2.awk \
404 pipeio2.in \
405 pipeio2.ok \
406 posix.awk \
407 posix.in \
408 posix.ok \
409 poundbang.awk \
410 prdupval.awk \
411 prdupval.in \
412 prdupval.ok \
413 prec.awk \
414 prec.ok \
415 printf0.awk \
416 printf0.ok \
417 printf1.awk \
418 printf1.ok \
419 printfbad1.awk \
420 printfbad1.ok \
421 printfloat.awk \
422 printlang.awk \
423 prmarscl.awk \
424 prmarscl.ok \
425 prmreuse.awk \
426 prmreuse.ok \
427 procinfs.awk \
428 procinfs.ok \
429 prt1eval.awk \
430 prt1eval.ok \
431 prtoeval.awk \
432 prtoeval.ok \
433 psx96sub.awk \
434 psx96sub.ok \
435 rand.awk \
436 rand.ok \
437 rebt8b1.awk \
438 rebt8b1.ok \
439 rebt8b2.awk \
440 rebt8b2.ok \
441 redfilnm.awk \
442 redfilnm.in \
443 redfilnm.ok \
444 regeq.awk \
445 regeq.in \
446 regeq.ok \
447 regtest.sh \
448 regx8bit.awk \
449 regx8bit.ok \
450 rebuf.awk \
451 rebuf.in \
452 rebuf.ok \
453 reindops.awk \
454 reindops.in \
455 reindops.ok \
456 reint.awk \
457 reint.in \
458 reint.ok \
459 reparse.awk \
460 reparse.in \
461 reparse.ok \
462 resplit.awk \
463 resplit.in \
464 resplit.ok \
465 rs.awk \
466 rs.in \
467 rs.ok \
468 rsnul1nl.awk \
469 rsnul1nl.in \
470 rsnul1nl.ok \
471 rsnulbig.ok \
472 rsnulbig2.ok \
473 rsstart1.awk \
474 rsstart1.in \
475 rsstart1.ok \
476 rsstart2.awk \
477 rsstart2.ok \
478 rsstart3.ok \
479 rstest1.awk \
480 rstest1.ok \
481 rstest2.awk \
482 rstest2.ok \
483 rstest3.awk \
484 rstest3.ok \
485 rstest4.awk \
486 rstest4.ok \
487 rstest5.awk \
488 rstest5.ok \
489 rstest6.awk \
490 rstest6.in \
491 rstest6.ok \
492 rswhite.awk \
493 rswhite.in \
494 rswhite.ok \
495 scalar.awk \
496 scalar.ok \
497 sclforin.awk \
498 sclforin.ok \
499 sclifin.awk \
500 sclifin.ok \
501 shadow.awk \
502 shadow.ok \
503 sort1.awk \
504 sort1.ok \
505 sortempty.awk \
506 sortempty.ok \
507 space.ok \
508 splitargv.awk \
509 splitargv.in \
510 splitargv.ok \
511 splitarr.awk \
512 splitarr.ok \
513 splitdef.awk \
514 splitdef.ok \
515 splitvar.awk \
516 splitvar.in \
517 splitvar.ok \
518 splitwht.awk \
519 splitwht.ok \
520 sprintfc.awk \
521 sprintfc.in \
522 sprintfc.ok \
523 strcat1.awk \
524 strcat1.ok \
525 strtod.awk \
526 strtod.in \
527 strtod.ok \
528 strtonum.awk \
529 strtonum.ok \
530 strftime.awk \
531 strftlng.awk \
532 strftlng.ok \
533 subamp.awk \
534 subamp.in \
535 subamp.ok \
536 subsepnm.awk \
537 subsepnm.ok \
538 subslash.awk \
539 subslash.ok \
540 substr.awk \
541 substr.ok \
542 swaplns.awk \
543 swaplns.in \
544 swaplns.ok \
545 switch2.awk \
546 synerr1.awk \
547 synerr1.ok \
548 tradanch.awk \
549 tradanch.in \
550 tradanch.ok \
551 tweakfld.awk \
552 tweakfld.in \
553 tweakfld.ok \
554 uninit2.awk \
555 uninit2.ok \
556 uninit3.awk \
557 uninit3.ok \
558 uninit4.awk \
559 uninit4.ok \
560 uninitialized.awk \
561 uninitialized.ok \
562 unterm.awk \
563 unterm.ok \
564 whiny.awk \
565 whiny.in \
566 whiny.ok \
567 wjposer1.awk \
568 wjposer1.in \
569 wjposer1.ok \
570 zeroe0.awk \
571 zeroe0.ok \
572 zeroflag.awk \
573 zeroflag.ok
574
575TESTS_WE_ARE_NOT_DOING_YET_FIXME_ONE_DAY = longdbl
576
577# Get rid of core files when cleaning
578CLEANFILES = core core.*
579
580# try to keep these sorted
581BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayref arrymem1 \
582 arrayprm2 arrayprm3 arryref2 arryref3 arryref4 arryref5 arynasty \
583 arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \
584 aryprm8 arysubnm asgext awkpath back89 backgsub childin clobber \
585 clsflnam compare compare2 concat1 concat2 concat3 convfmt datanonl defref \
586 delarprm delarpm2 delfunc dynlj eofsplit exitval1 exitval2 fldchg fldchgnf fmttest fnamedat \
587 fnarray fnarray2 fnarydel fnaryscl fnasgnm fnmisc fnparydl \
588 fordel forsimp fsbs fsspcoln fsrs fstabplus funsemnl funsmnam funstack getline \
589 getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \
590 gsubtst2 gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest \
591 intprec iobug1 leaddig leadnl litoct longsub longwrds manglprm math membug1 \
592 messages minusstr mmap8k nasty nasty2 negexp nested nfldstr \
593 nfneg nfset nlfldsep nlinstr nlstrina noeffect nofmtch noloop1 \
594 noloop2 nonl noparms nors nulrsend numindex numsubstr octsub ofmt \
595 ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramtyp \
596 parseme pcntplus prdupval prec printf0 printf1 prmarscl prmreuse \
597 prt1eval prtoeval psx96sub rand rebt8b1 rebt8b2 redfilnm regeq \
598 reindops reparse resplit rs rsnul1nl rsnulbig rsnulbig2 rstest1 \
599 rstest2 rstest3 rstest4 rstest5 rswhite scalar sclforin sclifin \
600 sortempty splitargv splitarr splitdef splitvar splitwht sprintfc \
601 strcat1 strtod subamp subsepnm subslash substr swaplns synerr1 tradanch \
602 tweakfld uninit2 uninit3 uninit4 uninitialized unterm wjposer1 \
603 zeroe0 zeroflag
604
605UNIX_TESTS = fflush getlnhd pid pipeio1 pipeio2 poundbang space strftlng
606
607GAWK_EXT_TESTS = argtest asort asorti backw badargs clos1way fieldwdth fsfwfs \
608 gensub gensub2 gnuops2 gnuops3 gnureops icasefs icasers igncdym igncfs ignrcase \
609 ignrcas2 lint match1 match2 manyfiles nondec nondec2 posix procinfs \
610 printfbad1 regx8bit rebuf reint rsstart1 rsstart2 rsstart3 \
611 rstest6 shadow sort1 strtonum strftime whiny
612
613EXTRA_TESTS = regtest inftest
614
615INET_TESTS = inetechu inetecht inetdayu inetdayt
616
617# List of the tests which should be run with --lint option:
618NEED_LINT = defref noeffect nofmtch shadow uninit2 uninit3 uninit4 uninitialized
619
620# List of the files that appear in manual tests or are for reserve testing:
621GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk switch2.awk
622
623CMP = cmp
624AWKPROG = ../gawk$(EXEEXT)
625
626# This business forces the locale to be C for running the tests,
627# unless we override it to something else for testing.
628#
629# This can also be done in individual tests where we wish to
630# check things specifically not in the C locale.
631AWK = LC_ALL=$${GAWKLOCALE:-C} LANG=$${GAWKLOCALE:-C} $(AWKPROG)
632
633# Message stuff is to make it a little easier to follow.
634# Make the pass-fail last and dependent on others to avoid
635# spurious errors if `make -j' in effect.
636check: msg \
637 printlang \
638 basic-msg-start basic basic-msg-end \
639 unix-msg-start unix-tests unix-msg-end \
640 extend-msg-start gawk-extensions extend-msg-end
641 @$(MAKE) pass-fail
642
643basic: $(BASIC_TESTS)
644
645unix-tests: $(UNIX_TESTS)
646
647gawk-extensions: $(GAWK_EXT_TESTS)
648
649extra: $(EXTRA_TESTS) inet
650
651inet: inetmesg $(INET_TESTS)
652
653msg::
654 @echo ''
655 @echo 'Any output from "cmp" is bad news, although some differences'
656 @echo 'in floating point values are probably benign -- in particular,'
657 @echo 'some systems may omit a leading zero and the floating point'
658 @echo 'precision may lead to slightly different output in a few cases.'
659
660printlang::
661 @$(AWK) -f $(srcdir)/printlang.awk
662
663basic-msg-start:
664 @echo "======== Starting basic tests ========"
665
666basic-msg-end:
667 @echo "======== Done with basic tests ========"
668
669unix-msg-start:
670 @echo "======== Starting Unix tests ========"
671
672unix-msg-end:
673 @echo "======== Done with Unix tests ========"
674
675extend-msg-start:
676 @echo "======== Starting gawk extension tests ========"
677
678extend-msg-end:
679 @echo "======== Done with gawk extension tests ========"
680
681
682# This test is a PITA because increasingly, /tmp is getting
683# mounted noexec. So, we'll test it locally. Sigh.
684#
685# More PITA; some systems have medium short limits on #! paths,
686# so this can still fail
687poundbang::
688 @echo $@
689 @sed "s;/tmp/gawk;`pwd`/$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk
690 @chmod +x ./_pbd.awk
691 @if ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@` ; \
692 then : ; \
693 else \
694 sed "s;/tmp/gawk;../$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk ; \
695 chmod +x ./_pbd.awk ; \
696 LC_ALL=$${GAWKLOCALE:-C} LANG=$${GAWKLOCALE:-C} ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@`; \
697 fi
698 @-$(CMP) $(srcdir)/poundbang.awk _`basename $@` && rm -f _`basename $@` _pbd.awk
699
700messages::
701 @echo $@
702 @$(AWK) -f $(srcdir)/messages.awk >out2 2>out3
703 @-$(CMP) $(srcdir)/out1.ok out1 && $(CMP) $(srcdir)/out2.ok out2 && $(CMP) $(srcdir)/out3.ok out3 && rm -f out1 out2 out3
704
705argarray::
706 @echo $@
707 @case $(srcdir) in \
708 .) : ;; \
709 *) cp $(srcdir)/argarray.in . ;; \
710 esac
711 @TEST=test echo just a test | $(AWK) -f $(srcdir)/argarray.awk ./argarray.in - >_$@
712 @case $(srcdir) in \
713 .) : ;; \
714 *) rm -f ./argarray.in ;; \
715 esac
716 @-$(CMP) $(srcdir)/argarray.ok _$@ && rm -f _$@
717
718regtest::
719 @echo 'Some of the output from regtest is very system specific, do not'
720 @echo 'be distressed if your output differs from that distributed.'
721 @echo 'Manual inspection is called for.'
722 AWK=`pwd`/$(AWK) $(srcdir)/regtest.sh
723
724manyfiles::
725 @echo manyfiles
726 @rm -rf junk
727 @mkdir junk
728 @$(AWK) 'BEGIN { for (i = 1; i <= 300; i++) print i, i}' >_$@
729 @$(AWK) -f $(srcdir)/manyfiles.awk _$@ _$@
730 @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l | sed "s/ *//g" > _$@
731 @rm -rf junk ; $(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
732
733compare::
734 @echo $@
735 @$(AWK) -f $(srcdir)/compare.awk 0 1 $(srcdir)/compare.in >_$@
736 @-$(CMP) $(srcdir)/compare.ok _$@ && rm -f _$@
737
738inftest::
739 @echo $@
740 @echo This test is very machine specific...
741 @$(AWK) -f $(srcdir)/inftest.awk | sed "s/inf/Inf/g" >_$@
742 @-$(CMP) $(srcdir)/inftest.ok _$@ && rm -f _$@
743
744getline2::
745 @echo $@
746 @$(AWK) -f $(srcdir)/getline2.awk $(srcdir)/getline2.awk $(srcdir)/getline2.awk >_$@
747 @-$(CMP) $(srcdir)/getline2.ok _$@ && rm -f _$@
748
749awkpath::
750 @echo $@
751 @AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f awkpath.awk >_$@
752 @-$(CMP) $(srcdir)/awkpath.ok _$@ && rm -f _$@
753
754argtest::
755 @echo $@
756 @$(AWK) -f $(srcdir)/argtest.awk -x -y abc >_$@
757 @-$(CMP) $(srcdir)/argtest.ok _$@ && rm -f _$@
758
759badargs::
760 @echo $@
761 @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@
762 @-$(CMP) $(srcdir)/badargs.ok _$@ && rm -f _$@
763
764nonl::
765 @echo $@
766 @-AWKPATH=$(srcdir) $(AWK) --lint -f nonl.awk /dev/null >_$@ 2>&1
767 @-$(CMP) $(srcdir)/nonl.ok _$@ && rm -f _$@
768
769strftime::
770 @echo This test could fail on slow machines or on a minute boundary,
771 @echo so if it does, double check the actual results:
772 @echo $@
773 @GAWKLOCALE=C; export GAWKLOCALE; \
774 TZ=GMT0; export TZ; \
775 (LC_ALL=C date) | $(AWK) -v OUTPUT=_$@ -f $(srcdir)/strftime.awk
776 @-$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
777
778litoct::
779 @echo $@
780 @echo ab | $(AWK) --traditional -f $(srcdir)/litoct.awk >_$@
781 @-$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@
782
783fflush::
784 @echo $@
785 @$(srcdir)/fflush.sh >_$@
786 @-$(CMP) $(srcdir)/fflush.ok _$@ && rm -f _$@
787
788tweakfld::
789 @echo $@
790 @$(AWK) -f $(srcdir)/tweakfld.awk $(srcdir)/tweakfld.in >_$@
791 @rm -f errors.cleanup
792 @-$(CMP) $(srcdir)/tweakfld.ok _$@ && rm -f _$@
793
794mmap8k::
795 @echo $@
796 @$(AWK) '{ print }' $(srcdir)/mmap8k.in >_$@
797 @-$(CMP) $(srcdir)/mmap8k.in _$@ && rm -f _$@
798
799tradanch::
800 @echo $@
801 @$(AWK) --traditional -f $(srcdir)/tradanch.awk $(srcdir)/tradanch.in >_$@
802 @-$(CMP) $(srcdir)/tradanch.ok _$@ && rm -f _$@
803
804# AIX /bin/sh exec's the last command in a list, therefore issue a ":"
805# command so that pid.sh is fork'ed as a child before being exec'ed.
806pid::
807 @echo pid
808 @AWKPATH=$(srcdir) AWK=$(AWKPROG) $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; :
809 @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in
810
811strftlng::
812 @echo $@
813 @TZ=UTC; export TZ; $(AWK) -f $(srcdir)/strftlng.awk >_$@
814 @if $(CMP) $(srcdir)/strftlng.ok _$@ >/dev/null 2>&1 ; then : ; else \
815 TZ=UTC0; export TZ; $(AWK) -f $(srcdir)/strftlng.awk >_$@ ; \
816 fi
817 @-$(CMP) $(srcdir)/strftlng.ok _$@ && rm -f _$@
818
819nors::
820 @echo $@
821 @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - $(srcdir)/nors.in > _$@
822 @-$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@
823
824reint::
825 @echo $@
826 @$(AWK) --re-interval -f $(srcdir)/reint.awk $(srcdir)/reint.in >_$@
827 @-$(CMP) $(srcdir)/reint.ok _$@ && rm -f _$@
828
829pipeio1::
830 @echo $@
831 @$(AWK) -f $(srcdir)/pipeio1.awk >_$@
832 @rm -f test1 test2
833 @-$(CMP) $(srcdir)/pipeio1.ok _$@ && rm -f _$@
834
835pipeio2::
836 @echo $@
837 @$(AWK) -v SRCDIR=$(srcdir) -f $(srcdir)/pipeio2.awk >_$@
838 @-$(CMP) $(srcdir)/pipeio2.ok _$@ && rm -f _$@
839
840clobber::
841 @echo $@
842 @$(AWK) -f $(srcdir)/clobber.awk >_$@
843 @-$(CMP) $(srcdir)/clobber.ok seq && $(CMP) $(srcdir)/clobber.ok _$@ && rm -f _$@
844 @rm -f seq
845
846arynocls::
847 @echo $@
848 @-AWKPATH=$(srcdir) $(AWK) -v INPUT=$(srcdir)/arynocls.in -f arynocls.awk >_$@
849 @-$(CMP) $(srcdir)/arynocls.ok _$@ && rm -f _$@
850
851getlnbuf::
852 @echo $@
853 @-AWKPATH=$(srcdir) $(AWK) -f getlnbuf.awk $(srcdir)/getlnbuf.in > _$@
854 @-AWKPATH=$(srcdir) $(AWK) -f gtlnbufv.awk $(srcdir)/getlnbuf.in > _2$@
855 @-$(CMP) $(srcdir)/getlnbuf.ok _$@ && $(CMP) $(srcdir)/getlnbuf.ok _2$@ && rm -f _$@ _2$@
856
857inetmesg::
858 @echo These tests only work if your system supports the services
859 @echo "'discard'" at port 9 and "'daytimed'" at port 13. Check your
860 @echo file /etc/services and do "'netstat -a'".
861
862inetechu::
863 @echo This test is for establishing UDP connections
864 @$(AWK) 'BEGIN {print "" |& "/inet/udp/0/127.0.0.1/9"}'
865
866inetecht::
867 @echo This test is for establishing TCP connections
868 @$(AWK) 'BEGIN {print "" |& "/inet/tcp/0/127.0.0.1/9"}'
869
870inetdayu::
871 @echo This test is for bidirectional UDP transmission
872 @$(AWK) 'BEGIN { print "" |& "/inet/udp/0/127.0.0.1/13"; \
873 "/inet/udp/0/127.0.0.1/13" |& getline; print $0}'
874
875inetdayt::
876 @echo This test is for bidirectional TCP transmission
877 @$(AWK) 'BEGIN { print "" |& "/inet/tcp/0/127.0.0.1/13"; \
878 "/inet/tcp/0/127.0.0.1/13" |& getline; print $0}'
879
880redfilnm::
881 @echo $@
882 @$(AWK) -f $(srcdir)/redfilnm.awk srcdir=$(srcdir) $(srcdir)/redfilnm.in >_$@
883 @-$(CMP) $(srcdir)/redfilnm.ok _$@ && rm -f _$@
884
885leaddig::
886 @echo $@
887 @$(AWK) -v x=2E -f $(srcdir)/leaddig.awk >_$@
888 @-$(CMP) $(srcdir)/leaddig.ok _$@ && rm -f _$@
889
890gsubtst3::
891 @echo $@
892 @$(AWK) --re-interval -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@
893 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
894
895space::
896 @echo $@
897 @$(AWK) -f ' ' $(srcdir)/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
898 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
899
900printf0::
901 @echo $@
902 @$(AWK) --posix -f $(srcdir)/$@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
903 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
904
905rsnulbig::
906 @echo $@
907 @ : Suppose that block size for pipe is at most 128kB:
908 @$(AWK) 'BEGIN { for (i = 1; i <= 128*64+1; i++) print "abcdefgh123456\n" }' 2>&1 | \
909 $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" }; { print }' 2>&1 | \
910 $(AWK) '/^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
911 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
912
913rsnulbig2::
914 @echo $@
915 @$(AWK) 'BEGIN { ORS = ""; n = "\n"; for (i = 1; i <= 10; i++) n = (n n); \
916 for (i = 1; i <= 128; i++) print n; print "abc\n" }' 2>&1 | \
917 $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" };{ print }' 2>&1 | \
918 $(AWK) '/^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
919 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
920
921whiny::
922 @echo $@
923 @WHINY_USERS=1 $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@
924 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
925
926ignrcas2::
927 @echo $@
928 @GAWKLOCALE=en_US ; export GAWKLOCALE ; \
929 $(AWK) -f $(srcdir)/$@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@
930 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
931
932subamp::
933 @echo $@
934 @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
935 $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@
936 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
937
938# This test makes sure gawk exits with a zero code.
939# Thus, unconditionally generate the exit code.
940exitval1::
941 @echo $@
942 @$(AWK) -f $(srcdir)/exitval1.awk >_$@ 2>&1; echo EXIT CODE: $$? >>_$@
943 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
944
945fsspcoln::
946 @echo $@
947 @$(AWK) -f $(srcdir)/$@.awk 'FS=[ :]+' $(srcdir)/$@.in >_$@
948 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
949
950rsstart1::
951 @echo $@
952 @$(AWK) -f $(srcdir)/$@.awk $(srcdir)/rsstart1.in >_$@
953 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
954
955rsstart2::
956 @echo $@
957 @$(AWK) -f $(srcdir)/$@.awk $(srcdir)/rsstart1.in >_$@
958 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
959
960rsstart3::
961 @echo $@
962 @head $(srcdir)/rsstart1.in | $(AWK) -f $(srcdir)/rsstart2.awk >_$@
963 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
964
965nondec2::
966 @echo $@
967 @$(AWK) --non-decimal-data -v a=0x1 -f $(srcdir)/$@.awk >_$@
968 @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
969
970# Targets generated for other tests:
971include Maketests
972
973$(srcdir)/Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests
974 $(AWK) -f $(srcdir)/Gentests "$(srcdir)/Makefile.am" *.awk *.in > $(srcdir)/Maketests
975
976clean:
977 rm -fr _* core core.* junk out1 out2 out3 strftime.ok test1 test2 seq *~
978
979# An attempt to print something that can be grepped for in build logs
980pass-fail:
981 @COUNT=`ls _* 2>/dev/null | wc -l` ; \
982 if test $$COUNT = 0 ; \
983 then echo ALL TESTS PASSED ; \
984 else echo $$COUNT TESTS FAILED ; \
985 fi
986
987# This target for my convenience to look at all the results
988diffout:
989 for i in _* ; \
990 do \
991 echo ============== $$i ============= ; \
992 diff -c $(srcdir)/$${i#_}.ok $$i ; \
993 done | more
994
995# This target is for testing with electric fence.
996efence:
997 for i in $$(ls _* | sed 's;_\(.*\);\1;') ; \
998 do \
999 bad=$$(wc -l < _$$i) \
1000 ok=$$(wc -l < $$i.ok) ; \
1001 if (( $$bad == $$ok + 2 )) ; \
1002 then \
1003 rm _$$i ; \
1004 fi ; \
1005 done
Note: See TracBrowser for help on using the repository browser.