# # test/Makefile.am --- automake input file for gawk # # Copyright (C) 1988-2023 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ## process this file with automake to produce Makefile.in EXTRA_DIST = \ reg \ lib \ ChangeLog.0 \ ChangeLog.1 \ Gentests \ Maketests \ makepmafile.c \ README \ aadelete1.awk \ aadelete1.ok \ aadelete2.awk \ aadelete2.ok \ aarray1.awk \ aarray1.ok \ aasort.awk \ aasort.ok \ aasorti.awk \ aasorti.ok \ addcomma.awk \ addcomma.in \ addcomma.ok \ anchgsub.awk \ anchgsub.in \ anchgsub.ok \ anchor.awk \ anchor.in \ anchor.ok \ apiterm.awk \ apiterm.in \ apiterm.ok \ argarray.awk \ argarray.in \ argarray.ok \ argcasfile.awk \ argcasfile.in \ argcasfile.ok \ argtest.awk \ argtest.ok \ arrayind1.awk \ arrayind1.in \ arrayind1.ok \ arrayind2.awk \ arrayind2.ok \ arrayind3.awk \ arrayind3.ok \ arrayparm.awk \ arrayparm.ok \ arrayprm2.awk \ arrayprm2.ok \ arrayprm3.awk \ arrayprm3.ok \ arrayref.awk \ arrayref.ok \ arraysort.awk \ arraysort.ok \ arraysort2.awk \ arraysort2.ok \ arraytype.awk \ arraytype.ok \ arraytype-mpfr.ok \ arrdbg.awk \ arrymem1.awk \ arrymem1.ok \ arryref2.awk \ arryref2.ok \ arryref3.awk \ arryref3.ok \ arryref4.awk \ arryref4.ok \ arryref5.awk \ arryref5.ok \ arynasty.awk \ arynasty.ok \ arynocls.awk \ arynocls.in \ arynocls.ok \ aryprm1.awk \ aryprm1.ok \ aryprm2.awk \ aryprm2.ok \ aryprm3.awk \ aryprm3.ok \ aryprm4.awk \ aryprm4.ok \ aryprm5.awk \ aryprm5.ok \ aryprm6.awk \ aryprm6.ok \ aryprm7.awk \ aryprm7.ok \ aryprm8.awk \ aryprm8.ok \ aryprm9.awk \ aryprm9.ok \ arysubnm.awk \ arysubnm.ok \ aryunasgn.awk \ aryunasgn.ok \ asgext.awk \ asgext.in \ asgext.ok \ asort.awk \ asort.ok \ asortbool.awk \ asortbool.ok \ asorti.awk \ asorti.ok \ asortsymtab.awk \ asortsymtab.ok \ assignnumfield.awk \ assignnumfield.in \ assignnumfield.ok \ assignnumfield2.awk \ assignnumfield2.ok \ awkpath.ok \ back89.awk \ back89.in \ back89.ok \ backgsub.awk \ backgsub.in \ backgsub.ok \ backw.awk \ backw.in \ backw.ok \ backbigs1.awk \ backbigs1.in \ backbigs1.ok \ backsmalls1.awk \ backsmalls1.in \ backsmalls1.ok \ backsmalls2.awk \ backsmalls2.ok \ badargs.ok \ badassign1.awk \ badassign1.ok \ badbuild.awk \ badbuild.in \ badbuild.ok \ beginfile1.awk \ beginfile1.ok \ beginfile2.in \ beginfile2.ok \ beginfile2.sh \ binmode1.ok \ callparam.awk \ callparam.ok \ charasbytes.awk \ charasbytes.in \ charasbytes.ok \ checknegtime.awk \ childin.awk \ childin.in \ childin.ok \ clobber.awk \ clobber.ok \ clos1way.awk \ clos1way.ok \ clos1way2.awk \ clos1way2.in \ clos1way2.ok \ clos1way3.awk \ clos1way3.ok \ clos1way4.awk \ clos1way4.ok \ clos1way5.awk \ clos1way5.ok \ clos1way6.awk \ clos1way6.ok \ closebad.awk \ closebad.ok \ close_status.awk \ close_status.ok \ clsflnam.awk \ clsflnam.in \ clsflnam.ok \ colonwarn.awk \ colonwarn.in \ colonwarn.ok \ commas.awk \ commas.ok \ compare.awk \ compare.in \ compare.ok \ compare2.awk \ compare2.ok \ concat1.awk \ concat1.in \ concat1.ok \ concat2.awk \ concat2.ok \ concat3.awk \ concat3.ok \ concat4.awk \ concat4.in \ concat4.ok \ concat5.awk \ concat5.ok \ convfmt.awk \ convfmt.ok \ crlf.awk \ crlf.ok \ csv1.awk \ csv1.in \ csv1.ok \ csv2.awk \ csv2.ok \ csv3.awk \ csv3.in \ csv3.ok \ csvodd.awk \ csvodd.in \ csvodd.ok \ datanonl.awk \ datanonl.in \ datanonl.ok \ dbugeval.in \ dbugeval.ok \ dbugeval2.awk \ dbugeval2.in \ dbugeval2.ok \ dbugeval3.awk \ dbugeval3.in \ dbugeval3.ok \ dbugeval4.awk \ dbugeval4.in \ dbugeval4.ok \ dbugtypedre1.awk \ dbugtypedre1.in \ dbugtypedre1.ok \ dbugtypedre2.awk \ dbugtypedre2.in \ dbugtypedre2.ok \ defref.awk \ defref.ok \ delargv.awk \ delargv.ok \ delarpm2.awk \ delarpm2.ok \ delarprm.awk \ delarprm.ok \ delfunc.awk \ delfunc.ok \ delsub.awk \ delsub.ok \ devfd.in1 \ devfd.in2 \ devfd.in4 \ devfd.in5 \ devfd.ok \ devfd1.awk \ devfd1.ok \ devfd2.ok \ dfacheck1.awk \ dfacheck1.in \ dfacheck1.ok \ dfacheck2.awk \ dfacheck2.in \ dfacheck2.ok \ dfamb1.awk \ dfamb1.in \ dfamb1.ok \ dfastress.awk \ dfastress.ok \ divzero.awk \ divzero.ok \ divzero2.awk \ divzero2.ok \ double1.awk \ double1.ok \ double2.awk \ double2.ok \ dtdgport.awk \ dumpvars.in \ dumpvars.ok \ dynlj.awk \ dynlj.ok \ elemnew1.awk \ elemnew1.ok \ elemnew2.awk \ elemnew2.ok \ elemnew3.awk \ elemnew3.ok \ escapebrace.awk \ escapebrace.in \ escapebrace.ok \ eofsplit.awk \ eofsplit.ok \ eofsrc1a.awk \ eofsrc1b.awk \ eofsrc1.ok \ errno.awk \ errno.in \ errno.ok \ exit.ok \ exit.sh \ exit2.awk \ exit2.ok \ exitval1.awk \ exitval1.ok \ exitval2.awk \ exitval2.ok \ exitval2.w32 \ exitval3.awk \ exitval3.ok \ fcall_exit.awk \ fcall_exit.ok \ fcall_exit2.awk \ fcall_exit2.in \ fcall_exit2.ok \ fflush.ok \ fflush.sh \ fieldassign.awk \ fieldassign.in \ fieldassign.ok \ fieldwdth.awk \ fieldwdth.in \ fieldwdth.ok \ filefuncs.awk \ filefuncs.ok \ fix-fmtspcl.awk \ fldchg.awk \ fldchg.in \ fldchg.ok \ fldchgnf.awk \ fldchgnf.in \ fldchgnf.ok \ fldterm.awk \ fldterm.in \ fldterm.ok \ fmtspcl-mpfr.ok \ fmtspcl.awk \ fmtspcl.tok \ fmttest.awk \ fmttest.ok \ fnamedat.awk \ fnamedat.in \ fnamedat.ok \ fnarray.awk \ fnarray.ok \ fnarray2.awk \ fnarray2.in \ fnarray2.ok \ fnarydel-mpfr.ok \ fnarydel.awk \ fnarydel.ok \ fnaryscl.awk \ fnaryscl.ok \ fnasgnm.awk \ fnasgnm.in \ fnasgnm.ok \ fnmatch.awk \ fnmatch.ok \ fnmisc.awk \ fnmisc.ok \ fnparydl-mpfr.ok \ fnparydl.awk \ fnparydl.ok \ forcenum.awk \ forcenum.ok \ fordel.awk \ fordel.ok \ fork.awk \ fork.ok \ fork2.awk \ fork2.ok \ forref.awk \ forref.ok \ forsimp.awk \ forsimp.ok \ fpat1.awk \ fpat1.in \ fpat1.ok \ fpat2.awk \ fpat2.ok \ fpat3.awk \ fpat3.in \ fpat3.ok \ fpat4.awk \ fpat4.ok \ fpat5.awk \ fpat5.in \ fpat5.ok \ fpat6.awk \ fpat6.in \ fpat6.ok \ fpat7.awk \ fpat7.in \ fpat7.ok \ fpat8.awk \ fpat8.in \ fpat8.ok \ fpat9.awk \ fpat9.in \ fpat9.ok \ fpatnull.awk \ fpatnull.in \ fpatnull.ok \ fsbs.awk \ fsbs.in \ fsbs.ok \ fscaret.awk \ fscaret.in \ fscaret.ok \ fsfwfs.awk \ fsfwfs.in \ fsfwfs.ok \ fsnul1.awk \ fsnul1.in \ fsnul1.ok \ fsrs.awk \ fsrs.in \ fsrs.ok \ fsspcoln.awk \ fsspcoln.in \ fsspcoln.ok \ fstabplus.awk \ fstabplus.in \ fstabplus.ok \ fts.awk \ functab1.awk \ functab1.ok \ functab2.awk \ functab2.ok \ functab3.awk \ functab3.ok \ functab4.awk \ functab4.ok \ functab5.awk \ functab5.ok \ functab6.awk \ functab6.ok \ funlen.awk \ funlen.in \ funlen.ok \ funsemnl.awk \ funsemnl.ok \ funsmnam.awk \ funsmnam.ok \ funstack.awk \ funstack.in \ funstack.ok \ fwtest.awk \ fwtest.in \ fwtest.ok \ fwtest2.awk \ fwtest2.in \ fwtest2.ok \ fwtest3.awk \ fwtest3.in \ fwtest3.ok \ fwtest4.awk \ fwtest4.in \ fwtest4.ok \ fwtest5.awk \ fwtest5.in \ fwtest5.ok \ fwtest6.awk \ fwtest6.in \ fwtest6.ok \ fwtest7.awk \ fwtest7.in \ fwtest7.ok \ fwtest8.awk \ fwtest8.in \ fwtest8.ok \ genpot.awk \ genpot.ok \ gensub.awk \ gensub.in \ gensub.ok \ gensub2.awk \ gensub2.ok \ gensub3.awk \ gensub3.in \ gensub3.ok \ getfile.awk \ getfile.ok \ getline.awk \ getline.in \ getline.ok \ getline2.awk \ getline2.ok \ getline3.awk \ getline3.ok \ getline4.awk \ getline4.in \ getline4.ok \ getline5.awk \ getline5.ok \ getlnbuf.awk \ getlnbuf.in \ getlnbuf.ok \ getlndir.awk \ getlndir.ok \ getlnfa.awk \ getlnfa.ok \ getlnhd.awk \ getlnhd.ok \ getnr2tb.awk \ getnr2tb.in \ getnr2tb.ok \ getnr2tm.awk \ getnr2tm.in \ getnr2tm.ok \ gnuops2.awk \ gnuops2.ok \ gnuops3.awk \ gnuops3.ok \ gnureops.awk \ gnureops.ok \ gsubasgn.awk \ gsubasgn.ok \ gsubind.awk \ gsubind.ok \ gsubtest.awk \ gsubtest.ok \ gsubtst2.awk \ gsubtst2.ok \ gsubtst3.awk \ gsubtst3.in \ gsubtst3.ok \ gsubtst4.awk \ gsubtst4.ok \ gsubtst5.awk \ gsubtst5.in \ gsubtst5.ok \ gsubtst6.awk \ gsubtst6.ok \ gsubtst7.awk \ gsubtst7.in \ gsubtst7.ok \ gsubtst8.awk \ gsubtst8.in \ gsubtst8.ok \ gtlnbufv.awk \ hello.awk \ hex.awk \ hex.ok \ hex2.awk \ hex2.in \ hex2.ok \ hsprint.awk \ hsprint.ok \ icasefs.awk \ icasefs.ok \ icasers.awk \ icasers.in \ icasers.ok \ id.awk \ id.ok \ igncdym.awk \ igncdym.in \ igncdym.ok \ igncfs.awk \ igncfs.in \ igncfs.ok \ ignrcas2.awk \ ignrcas2.ok \ ignrcas3.awk \ ignrcas3.ok \ ignrcas4.awk \ ignrcas4.ok \ ignrcase.awk \ ignrcase.in \ ignrcase.ok \ incdupe2.ok \ incdupe3.ok \ incdupe4.ok \ incdupe5.ok \ incdupe6.ok \ incdupe7.ok \ incdupe.ok \ inchello.awk \ inclib.awk \ include2.ok \ include.awk \ include.ok \ indirectbuiltin.awk \ indirectbuiltin.ok \ indirectbuiltin2.awk \ indirectbuiltin2.ok \ indirectcall2.awk \ indirectcall2.ok \ indirectcall3.awk \ indirectcall3.ok \ indirectcall.awk \ indirectcall.in \ indirectcall.ok \ inf-nan-torture.awk \ inf-nan-torture.in \ inf-nan-torture.ok \ inftest.awk \ inftest.ok \ inplace1.1.ok \ inplace1.2.ok \ inplace.1.in \ inplace1.ok \ inplace2.1.bak.ok \ inplace2.1.ok \ inplace2.2.bak.ok \ inplace2.2.ok \ inplace2bcomp.1.ok \ inplace2bcomp.1.orig.ok \ inplace2bcomp.2.ok \ inplace2bcomp.2.orig.ok \ inplace2bcomp.ok \ inplace.2.in \ inplace2.ok \ inplace3.1.bak.ok \ inplace3.1.ok \ inplace3.2.bak.ok \ inplace3.2.ok \ inplace3bcomp.1.ok \ inplace3bcomp.1.orig.ok \ inplace3bcomp.2.ok \ inplace3bcomp.2.orig.ok \ inplace3bcomp.ok \ inplace3.ok \ inplace.in \ inpref.awk \ inpref.in \ inpref.ok \ inputred.awk \ inputred.ok \ intarray.awk \ intarray.ok \ intest.awk \ intest.ok \ intformat.awk \ intformat.ok \ intprec.awk \ intprec.ok \ iobug1.awk \ iobug1.ok \ iolint.awk \ iolint.ok \ isarrayunset.awk \ isarrayunset.ok \ jarebug.awk \ jarebug.in \ jarebug.ok \ jarebug.sh \ lc_num1.awk \ lc_num1.ok \ leaddig.awk \ leaddig.ok \ leadnl.awk \ leadnl.in \ leadnl.ok \ lint.awk \ lint.ok \ lintexp.awk \ lintexp.ok \ lintindex.awk \ lintindex.ok \ lintint.awk \ lintint.ok \ lintlength.awk \ lintlength.ok \ lintold.awk \ lintold.in \ lintold.ok \ lintplus.awk \ lintplus.ok \ lintset.awk \ lintset.ok \ lintwarn.awk \ lintwarn.ok \ litoct.awk \ litoct.in \ litoct.ok \ localenl.ok \ localenl.sh \ longsub.awk \ longsub.in \ longsub.ok \ longwrds.awk \ longwrds.in \ longwrds.ok \ manglprm.awk \ manglprm.in \ manglprm.ok \ manyfiles.awk \ manyfiles.ok \ mdim1.awk \ mdim1.ok \ mdim2.awk \ mdim2.ok \ mdim3.awk \ mdim3.ok \ mdim4.awk \ mdim4.in \ mdim4.ok \ mdim5.awk \ mdim5.ok \ mdim6.awk \ mdim6.ok \ mdim7.awk \ mdim7.ok \ mdim8.awk \ mdim8.in \ mdim8.ok \ modifiers.sh \ modifiers.ok \ muldimposix.awk \ muldimposix.ok \ match1.awk \ match1.ok \ match2.awk \ match2.ok \ match3.awk \ match3.in \ match3.ok \ math.awk \ math.ok \ mbfw1.awk \ mbfw1.in \ mbfw1.ok \ mbprintf1.awk \ mbprintf1.in \ mbprintf1.ok \ mbprintf2.awk \ mbprintf2.ok \ mbprintf3.awk \ mbprintf3.in \ mbprintf3.ok \ mbprintf4.awk \ mbprintf4.in \ mbprintf4.ok \ mbprintf5.awk \ mbprintf5.in \ mbprintf5.ok \ mbstr1.awk \ mbstr1.ok \ mbstr2.awk \ mbstr2.in \ mbstr2.ok \ membug1.awk \ membug1.in \ membug1.ok \ memleak.awk \ memleak.ok \ messages.awk \ minusstr.awk \ minusstr.ok \ mixed1.ok \ mktime.awk \ mktime.in \ mktime.ok \ mmap8k.awk \ mmap8k.in \ mmap8k.ok \ mpfrbigint.awk \ mpfrbigint.ok \ mpfrbigint2.awk \ mpfrbigint2.in \ mpfrbigint2.ok \ mpfrcase.awk \ mpfrcase.in \ mpfrcase.ok \ mpfrcase2.awk \ mpfrcase2.in \ mpfrcase2.ok \ mpfrexprange.awk \ mpfrexprange.ok \ mpfrfield.awk \ mpfrfield.in \ mpfrfield.ok \ mpfrieee.awk \ mpfrieee.ok \ mpfrmemok1.awk \ mpfrmemok1.ok \ mpfrnegzero.awk \ mpfrnegzero.ok \ mpfrnegzero2.awk \ mpfrnegzero2.ok \ mpfrnonum.awk \ mpfrnonum.in \ mpfrnonum.ok \ mpfrnr.awk \ mpfrnr.in \ mpfrnr.ok \ mpfrrem.awk \ mpfrrem.ok \ mpfrrnd.awk \ mpfrrnd.ok \ mpfrrndeval.awk \ mpfrrndeval.ok \ mpfrsort.awk \ mpfrsort.ok \ mpfrsqrt.awk \ mpfrsqrt.ok \ mpfrstrtonum.awk \ mpfrstrtonum.ok \ mpfruplus.ok \ mpfranswer42.awk \ mpfranswer42.ok \ mpgforcenum.awk \ mpgforcenum.ok \ mtchi18n.awk \ mtchi18n.in \ mtchi18n.ok \ nasty.awk \ nasty.ok \ nasty2.awk \ nasty2.ok \ nastyparm.awk \ nastyparm.ok \ negexp.awk \ negexp.ok \ negrange.awk \ negrange.ok \ negtime.awk \ negtime.ok \ nested.awk \ nested.in \ nested.ok \ next.ok \ next.sh \ nfldstr.awk \ nfldstr.in \ nfldstr.ok \ nfloop.awk \ nfloop.ok \ nfneg.awk \ nfneg.ok \ nfset.awk \ nfset.in \ nfset.ok \ nlfldsep.awk \ nlfldsep.in \ nlfldsep.ok \ nlinstr.awk \ nlinstr.in \ nlinstr.ok \ nlstrina.awk \ nlstrina.ok \ nlstringtest.awk \ nlstringtest.ok \ nlstringtest.po \ nlstringtest-nogettext.ok \ fr \ noeffect.awk \ noeffect.ok \ nofile.ok \ nofmtch.awk \ nofmtch.ok \ noloop1.awk \ noloop1.in \ noloop1.ok \ noloop2.awk \ noloop2.in \ noloop2.ok \ nondec.awk \ nondec.ok \ nondec2.awk \ nondec2.ok \ nonfatal1.awk \ nonfatal1.ok \ nonfatal2.awk \ nonfatal2.ok \ nonfatal3.awk \ nonfatal3.ok \ nonl.awk \ nonl.in \ nonl.ok \ noparms.awk \ noparms.ok \ nors.in \ nors.ok \ nsawk1.awk \ nsawk1a.ok \ nsawk1b.ok \ nsawk1c.ok \ nsawk2.awk \ nsawk2a.ok \ nsawk2b.ok \ nsbad.awk \ nsbad.ok \ nsbad2.awk \ nsbad2.ok \ nsbad3.awk \ nsbad3.ok \ nsbad_cmd.ok \ nsforloop.awk \ nsforloop.ok \ nsfuncrecurse.awk \ nsfuncrecurse.ok \ nsidentifier.awk \ nsidentifier.ok \ nsindirect1.awk \ nsindirect1.ok \ nsindirect2.awk \ nsindirect2.ok \ nsprof1.awk \ nsprof1.ok \ nsprof2.awk \ nsprof2.ok \ nulinsrc.awk \ nulinsrc.ok \ nulrsend.awk \ nulrsend.in \ nulrsend.ok \ numindex.awk \ numindex.in \ numindex.ok \ numrange.awk \ numrange.ok \ numrange-mpfr.ok \ numstr1.awk \ numstr1.ok \ numsubstr.awk \ numsubstr.in \ numsubstr.ok \ octdec.awk \ octdec.ok \ octsub.awk \ octsub.ok \ ofmt.awk \ ofmt.in \ ofmt.ok \ ofmta.awk \ ofmta.ok \ ofmtbig.awk \ ofmtbig.in \ ofmtbig.ok \ ofmtfidl.awk \ ofmtfidl.in \ ofmtfidl.ok \ ofmts.awk \ ofmts.in \ ofmts.ok \ ofmtstrnum.awk \ ofmtstrnum.ok \ ofs1.awk \ ofs1.in \ ofs1.ok \ onlynl.awk \ onlynl.in \ onlynl.ok \ opasnidx.awk \ opasnidx.ok \ opasnslf.awk \ opasnslf.ok \ ordchr.awk \ ordchr.ok \ ordchr2.ok \ out1.ok \ out2.ok \ out3.ok \ paramasfunc1.awk \ paramasfunc1.ok \ paramasfunc2.awk \ paramasfunc2.ok \ paramdup.awk \ paramdup.ok \ paramres.awk \ paramres.ok \ paramtyp.awk \ paramtyp.ok \ paramuninitglobal.awk \ paramuninitglobal.ok \ parse1.awk \ parse1.in \ parse1.ok \ parsefld.awk \ parsefld.in \ parsefld.ok \ parseme.awk \ parseme.ok \ patsplit.awk \ patsplit.ok \ pcntplus.awk \ pcntplus.ok \ pid.awk \ pid.ok \ pid.sh \ pipeio1.awk \ pipeio1.ok \ pipeio2.awk \ pipeio2.in \ pipeio2.ok \ pma.ok \ posix2008sub.awk \ posix2008sub.ok \ posix_compare.awk \ posix_compare.ok \ posix.awk \ posix.in \ posix.ok \ poundbang.awk \ prdupval.awk \ prdupval.in \ prdupval.ok \ prec.awk \ prec.ok \ printf0.awk \ printf0.ok \ printf1.awk \ printf1.ok \ printfbad1.awk \ printfbad1.ok \ printfbad2.awk \ printfbad2.in \ printfbad2.ok \ printfbad3.awk \ printfbad3.ok \ printfbad4.awk \ printfbad4.ok \ printfchar.awk \ printfchar.ok \ printfloat.awk \ printhuge.awk \ printhuge.ok \ printlang.awk \ prmarscl.awk \ prmarscl.ok \ prmreuse.awk \ prmreuse.ok \ procinfs.awk \ procinfs.ok \ profile0.awk \ profile0.in \ profile0.ok \ profile2.ok \ profile3.awk \ profile3.ok \ profile4.awk \ profile4.ok \ profile5.awk \ profile5.ok \ profile6.awk \ profile6.ok \ profile7.awk \ profile7.ok \ profile8.awk \ profile8.ok \ profile9.awk \ profile9.ok \ profile10.awk \ profile10.ok \ profile11.awk \ profile11.ok \ profile12.awk \ profile12.in \ profile12.ok \ profile13.awk \ profile13.ok \ profile14.awk \ profile14.ok \ profile15.awk \ profile15.ok \ profile16.awk \ profile16.ok \ profile17.awk \ profile17.ok \ prt1eval.awk \ prt1eval.ok \ prtoeval.awk \ prtoeval.ok \ pty1.awk \ pty1.ok \ pty2.awk \ pty2.ok \ rand-mpfr.ok \ rand.awk \ rand.ok \ randtest.sh \ randtest.ok \ range1.awk \ range1.in \ range1.ok \ range2.awk \ range2.ok \ readall1.awk \ readall2.awk \ readall.ok \ readbuf.awk \ readbuf.ok \ readdir.awk \ readdir0.awk \ readdir_retest.awk \ readfile2.awk \ readfile2.ok \ rebrackloc.awk \ rebrackloc.in \ rebrackloc.ok \ rebt8b1.awk \ rebt8b1.ok \ rebt8b2.awk \ rebt8b2.ok \ rebuf.awk \ rebuf.in \ rebuf.ok \ rebuild.awk \ rebuild.in \ rebuild.ok \ redfilnm.awk \ redfilnm.in \ redfilnm.ok \ regeq.awk \ regeq.in \ regeq.ok \ regex3minus.awk \ regex3minus.ok \ regexpbrack.awk \ regexpbrack.in \ regexpbrack.ok \ regexpbrack2.awk \ regexpbrack2.in \ regexpbrack2.ok \ regexprange.awk \ regexprange.ok \ regexsub.awk \ regexsub.ok \ reginttrad.awk \ reginttrad.ok \ regnul1.awk \ regnul1.ok \ regnul2.awk \ regnul2.ok \ regrange.awk \ regrange.ok \ regtest.sh \ regx8bit.awk \ regx8bit.ok \ reindops.awk \ reindops.in \ reindops.ok \ reint.awk \ reint.in \ reint.ok \ reint2.awk \ reint2.in \ reint2.ok \ reparse.awk \ reparse.in \ reparse.ok \ resplit.awk \ resplit.in \ resplit.ok \ revout.awk \ revout.ok \ revtwoway.awk \ revtwoway.ok \ rri1.awk \ rri1.in \ rri1.ok \ rs.awk \ rs.in \ rs.ok \ rscompat.awk \ rscompat.in \ rscompat.ok \ rsgetline.awk \ rsgetline.in \ rsgetline.ok \ rsglstdin.ok \ rsnul1nl.awk \ rsnul1nl.in \ rsnul1nl.ok \ rsnulbig.ok \ rsnulbig2.ok \ rsnullre.awk \ rsnullre.in \ rsnullre.ok \ rsnulw.awk \ rsnulw.in \ rsnulw.ok \ rsstart1.awk \ rsstart1.in \ rsstart1.ok \ rsstart2.awk \ rsstart2.in \ rsstart2.ok \ rsstart3.ok \ rstest1.awk \ rstest1.ok \ rstest2.awk \ rstest2.ok \ rstest3.awk \ rstest3.ok \ rstest4.awk \ rstest4.ok \ rstest5.awk \ rstest5.ok \ rstest6.awk \ rstest6.in \ rstest6.ok \ rswhite.awk \ rswhite.in \ rswhite.ok \ rtlen.ok \ rtlen.sh \ rtlenmb.ok \ rtlen01.ok \ rtlen01.sh \ rwarray.awk \ rwarray.in \ rwarray.ok \ sandbox1.awk \ sandbox1.ok \ scalar.awk \ scalar.ok \ sclforin.awk \ sclforin.ok \ sclifin.awk \ sclifin.ok \ setrec0.awk \ setrec0.in \ setrec0.ok \ setrec1.awk \ setrec1.ok \ shadow.awk \ shadow.ok \ shadowbuiltin.awk \ shadowbuiltin.ok \ sigpipe1.awk \ sigpipe1.ok \ sort1.awk \ sort1.ok \ sortempty.awk \ sortempty.ok \ sortfor.awk \ sortfor.in \ sortfor.ok \ sortfor2.awk \ sortfor2.in \ sortfor2.ok \ sortglos.awk \ sortglos.in \ sortglos.ok \ sortu.awk \ sortu.ok \ sourcesplit.ok \ space.ok \ spacere.awk \ spacere.ok \ split_after_fpat.awk \ split_after_fpat.in \ split_after_fpat.ok \ splitarg4.awk \ splitarg4.in \ splitarg4.ok \ splitargv.awk \ splitargv.in \ splitargv.ok \ splitarr.awk \ splitarr.ok \ splitdef.awk \ splitdef.ok \ splitvar.awk \ splitvar.in \ splitvar.ok \ splitwht.awk \ splitwht.ok \ sprintfc.awk \ sprintfc.in \ sprintfc.ok \ status-close.awk \ status-close.ok \ strcat1.awk \ strcat1.ok \ strfieldnum.awk \ strfieldnum.in \ strfieldnum.ok \ strftime.awk \ strftlng.awk \ strftlng.ok \ strftfld.awk \ strftfld.in \ strftfld.ok \ strnum1.awk \ strnum1.ok \ strnum2.awk \ strnum2.ok \ strtod.awk \ strtod.in \ strtod.ok \ strtonum.awk \ strtonum.ok \ strtonum1.awk \ strtonum1.ok \ stupid1.awk \ stupid1.ok \ stupid2.awk \ stupid2.ok \ stupid3.awk \ stupid3.ok \ stupid4.awk \ stupid4.ok \ stupid5.awk \ stupid5.ok \ subamp.awk \ subamp.in \ subamp.ok \ subback.awk \ subback.in \ subback.ok \ subi18n.awk \ subi18n.ok \ subsepnm.awk \ subsepnm.ok \ subslash.awk \ subslash.ok \ substr.awk \ substr.ok \ swaplns.awk \ swaplns.in \ swaplns.ok \ switch2.awk \ switch2.ok \ symtab1.awk \ symtab1.ok \ symtab2.awk \ symtab2.ok \ symtab3.awk \ symtab3.ok \ symtab4.awk \ symtab4.in \ symtab4.ok \ symtab5.awk \ symtab5.in \ symtab5.ok \ symtab6.awk \ symtab6.ok \ symtab7.awk \ symtab7.in \ symtab7.ok \ symtab8.awk \ symtab8.in \ symtab8.ok \ symtab9.awk \ symtab9.ok \ symtab10.awk \ symtab10.ok \ symtab11.awk \ symtab11.ok \ symtab12.awk \ symtab12.ok \ synerr1.awk \ synerr1.ok \ synerr2.awk \ synerr2.ok \ synerr3.awk \ synerr3.ok \ tailrecurse.awk \ tailrecurse.ok \ testext.ok \ testext-mpfr.ok \ time.awk \ time.ok \ timeout.awk \ timeout.ok \ tradanch.awk \ tradanch.in \ tradanch.ok \ trailbs.awk \ trailbs.in \ trailbs.ok \ tweakfld.awk \ tweakfld.in \ tweakfld.ok \ typedregex1.awk \ typedregex1.ok \ typedregex2.awk \ typedregex2.ok \ typedregex3.awk \ typedregex3.ok \ typedregex4.awk \ typedregex4.ok \ typedregex5.awk \ typedregex5.in \ typedregex5.ok \ typedregex6.awk \ typedregex6.in \ typedregex6.ok \ typeof1.awk \ typeof1.ok \ typeof2.awk \ typeof2.ok \ typeof3.awk \ typeof3.ok \ typeof4.awk \ typeof4.ok \ typeof5.awk \ typeof5.in \ typeof5.ok \ typeof6.awk \ typeof6.ok \ unicode1.awk \ unicode1.ok \ uninit2.awk \ uninit2.ok \ uninit3.awk \ uninit3.ok \ uninit4.awk \ uninit4.ok \ uninit5.awk \ uninit5.ok \ uninitialized.awk \ uninitialized.ok \ unterm.awk \ unterm.ok \ uparrfs.awk \ uparrfs.in \ uparrfs.ok \ uplus.awk \ uplus.ok \ valgrind.awk \ watchpoint1.awk \ watchpoint1.in \ watchpoint1.ok \ watchpoint1.script \ wideidx.awk \ wideidx.in \ wideidx.ok \ wideidx2.awk \ wideidx2.ok \ widesub.awk \ widesub.ok \ widesub2.awk \ widesub2.ok \ widesub3.awk \ widesub3.in \ widesub3.ok \ widesub4.awk \ widesub4.ok \ wjposer1.awk \ wjposer1.in \ wjposer1.ok \ xref.awk \ xref.original \ zero2.awk \ zero2.ok \ zeroe0.awk \ zeroe0.ok \ zeroflag.awk \ zeroflag.ok # Get rid of core files when cleaning and generated .ok file CLEANFILES = core core.* fmtspcl.ok # try to keep these sorted. each letter starts a new line BASIC_TESTS = \ addcomma anchgsub anchor argarray argcasfile arrayind1 arrayind2 \ arrayind3 arrayparm arrayprm2 arrayprm3 arrayref arrymem1 \ arryref2 arryref3 arryref4 arryref5 arynasty arynocls aryprm1 \ aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 aryprm8 aryprm9 \ arysubnm aryunasgn asgext assignnumfield assignnumfield2 awkpath \ back89 backgsub badassign1 badbuild callparam childin clobber \ closebad close_status clsflnam compare compare2 concat1 concat2 \ concat3 concat4 concat5 convfmt datanonl defref delargv delarpm2 \ delarprm delfunc dfacheck2 dfamb1 dfastress divzero divzero2 \ dynlj eofsplit \ eofsrc1 escapebrace exit2 exitval1 exitval2 exitval3 fcall_exit \ fcall_exit2 \ fieldassign fldchg fldchgnf fldterm fnamedat fnarray fnarray2 \ fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fscaret fsnul1 \ fsrs fsspcoln fstabplus funsemnl funsmnam funstack getline \ getline2 getline3 getline4 getline5 getlnbuf getlnfa getnr2tb \ getnr2tm gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 \ gsubtst6 gsubtst7 gsubtst8 hex hex2 hsprint inpref inputred intest \ intprec iobug1 leaddig leadnl litoct longsub longwrds manglprm \ math membug1 memleak messages minusstr mmap8k nasty nasty2 negexp \ negrange nested nfldstr nfloop nfneg nfset nlfldsep nlinstr \ nlstrina noeffect nofile nofmtch noloop1 noloop2 nonl noparms \ nors nulinsrc nulrsend numindex numrange numstr1 numsubstr octsub \ ofmt ofmta ofmtbig ofmtfidl ofmts ofmtstrnum ofs1 onlynl opasnidx \ opasnslf paramasfunc1 paramasfunc2 paramdup paramres paramtyp \ paramuninitglobal parse1 parsefld parseme pcntplus posix2008sub \ posix_compare prdupval prec printf0 printf1 printfchar prmarscl \ prmreuse prt1eval prtoeval rand randtest range1 range2 readbuf \ rebrackloc rebt8b1 rebuild redfilnm regeq regex3minus regexpbrack \ regexpbrack2 regexprange regrange reindops reparse resplit \ rri1 rs rscompat rsnul1nl rsnulbig rsnulbig2 rsnullre rsnulw \ rstest1 rstest2 rstest3 rstest4 rstest5 rswhite scalar sclforin \ sclifin setrec0 setrec1 sigpipe1 sortempty sortglos spacere \ splitargv splitarr splitdef splitvar splitwht status-close \ strcat1 strfieldnum strnum1 strnum2 strtod subamp subback \ subi18n subsepnm subslash substr swaplns synerr1 synerr2 synerr3 \ tailrecurse tradanch trailbs tweakfld uninit2 uninit3 uninit4 \ uninit5 uninitialized unterm uparrfs uplus wideidx wideidx2 \ widesub widesub2 widesub3 widesub4 wjposer1 zero2 zeroe0 zeroflag UNIX_TESTS = \ fflush getlnhd localenl pid pipeio1 pipeio2 poundbang rtlen rtlen01 \ space strftlng GAWK_EXT_TESTS = \ aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \ arraysort2 arraytype asortbool backw badargs beginfile1 beginfile2 \ asortsymtab \ binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \ clos1way5 clos1way6 colonwarn commas crlf csv1 csv2 csv3 csvodd \ dbugeval dbugeval2 \ dbugeval3 dbugeval4 dbugtypedre1 dbugtypedre2 delsub \ devfd devfd1 devfd2 dfacheck1 dumpvars \ elemnew1 elemnew2 elemnew3 errno exit fieldwdth forcenum fpat1 fpat2 \ fpat3 fpat4 fpat5 fpat6 fpat7 fpat8 fpat9 fpatnull fsfwfs functab1 \ functab2 functab3 functab6 funlen fwtest fwtest2 fwtest3 fwtest4 \ fwtest5 fwtest6 fwtest7 fwtest8 genpot gensub gensub2 gensub3 \ getlndir gnuops2 gnuops3 gnureops gsubind icasefs icasers id \ igncdym igncfs ignrcas2 ignrcas4 ignrcase incdupe incdupe2 \ incdupe3 incdupe4 incdupe5 incdupe6 incdupe7 include include2 \ indirectbuiltin indirectcall indirectcall2 \ indirectcall3 intarray iolint isarrayunset lint \ lintexp lintindex lintint lintlength lintold lintplus lintset \ lintwarn manyfiles match1 match2 match3 mbstr1 mbstr2 \ mdim1 mdim2 mdim3 mdim4 mdim5 mdim6 mdim7 mdim8 \ mixed1 mktime modifiers muldimposix nastyparm negtime \ next nondec nondec2 nonfatal1 nonfatal2 nonfatal3 nsawk1a nsawk1b \ nsawk1c nsawk2a nsawk2b nsbad nsbad2 nsbad3 nsbad_cmd nsforloop \ nsfuncrecurse nsidentifier nsindirect1 nsindirect2 nsprof1 nsprof2 \ octdec patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 \ printhuge procinfs profile0 profile1 profile2 profile3 profile4 \ profile5 profile6 profile7 profile8 profile9 profile10 profile11 \ profile12 profile13 profile14 profile15 profile16 profile17 pty1 \ pty2 rebuf regexsub reginttrad regnul1 regnul2 regx8bit reint \ reint2 rsgetline rsglstdin rsstart1 rsstart2 rsstart3 rstest6 \ sandbox1 shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit \ split_after_fpat splitarg4 strftfld strftime strtonum strtonum1 \ stupid1 stupid2 stupid3 stupid4 stupid5 switch2 symtab1 symtab2 \ symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ symtab11 symtab12 timeout typedregex1 typedregex2 typedregex3 \ typedregex4 typedregex5 typedregex6 typeof1 typeof2 typeof3 \ typeof4 typeof5 typeof6 unicode1 watchpoint1 ARRAYDEBUG_TESTS = arrdbg EXTRA_TESTS = inftest regtest ignrcas3 INET_TESTS = inetdayu inetdayt inetechu inetecht MACHINE_TESTS = double1 double2 inf-nan-torture intformat LOCALE_CHARSET_TESTS = \ asort asorti backbigs1 backsmalls1 backsmalls2 \ fmttest fnarydel fnparydl jarebug lc_num1 mbfw1 \ mbprintf1 mbprintf2 mbprintf3 mbprintf4 mbprintf5 \ mtchi18n nlstringtest rebt8b2 rtlenmb sort1 sprintfc SHLIB_TESTS = \ apiterm \ filefuncs fnmatch fork fork2 fts functab4 functab5 \ getfile \ indirectbuiltin2 \ inplace1 inplace2 inplace2bcomp inplace3 inplace3bcomp \ ordchr ordchr2 \ readall \ readdir readdir_test readdir_retest readfile readfile2 revout \ revtwoway rwarray \ testext time # List of the tests which should be run with --debug option: NEED_DEBUG = dbugtypedre1 dbugtypedre2 dbugeval2 dbugeval3 dbugeval4 # List of the tests which should be run with --lint option: NEED_LINT = \ defref fmtspcl lintexp lintindex lintint lintlength lintplus \ lintwarn noeffect nofmtch nonl shadow uninit2 uninit3 uninit4 \ uninit5 uninitialized # List of the tests which should be run with --lint-old option: NEED_LINT_OLD = lintold # List of tests that must be run with -M NEED_MPFR = \ mpfranswer42 mpfrbigint mpfrbigint2 mpfrcase mpfrcase2 \ mpfrexprange mpfrfield mpfrieee mpfrmemok1 mpfrnegzero \ mpfrnegzero2 mpfrnonum mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort \ mpfrsqrt mpfrstrtonum mpfruplus mpgforcenum # List of tests that need --non-decimal-data NEED_NONDEC = mpfrbigint2 nondec2 intarray forcenum # List of tests that need --posix NEED_POSIX = escapebrace printf0 posix2008sub paramasfunc1 paramasfunc2 muldimposix posix_compare # List of tests that need --pretty-print NEED_PRETTY = nsprof1 nsprof2 \ profile4 profile5 profile8 profile9 profile10 profile11 profile13 \ profile14 profile15 profile16 profile17 # List of tests that need --re-interval NEED_RE_INTERVAL = gsubtst3 reint reint2 # List of tests that need --sandbox NEED_SANDBOX = sandbox1 # List of tests that need --traditional NEED_TRADITIONAL = litoct tradanch rscompat # List of tests that need the PMA allocator and a backing file NEED_PMA = pma # List of tests that need --csv NEED_CSV = csv1 csv2 csv3 csvodd # Lists of tests that run a shell script RUN_SHELL = exit fflush localenl modifiers next randtest rtlen rtlen01 # List of the tests which fail with EXIT CODE 1 FAIL_CODE1 = \ badassign1 badbuild callparam delfunc fcall_exit fcall_exit2 \ fnamedat fnarray fnarray2 fnasgnm fnmisc funsmnam gsubasgn \ incdupe2 lintwarn match2 mixed1 noparms paramasfunc1 paramasfunc2 \ paramdup paramres parseme readbuf synerr1 synerr2 unterm # Lists of tests that need particular locales NEED_LOCALE_C = \ clos1way gsubtst6 range2 NEED_LOCALE_EN = \ backbigs1 backsmalls1 backsmalls2 commas concat4 dfamb1 ignrcas2 lc_num1 \ mbfw1 mbprintf1 mbprintf3 mbprintf4 mbstr1 mbstr2 posix_compare \ printhuge reint2 rri1 subamp subi18n wideidx wideidx2 \ widesub widesub2 widesub3 widesub4 unicode1 # Unused at the moment, since nlstringtest has additional stuff it does # NEED_LOCALE_FR = # Same for ignrcas3 # NEED_LOCALE_GR = NEED_LOCALE_JP = mbprintf2 NEED_LOCALE_RU = mtchi18n # List of tests that fail on MinGW EXPECTED_FAIL_MINGW = \ backbigs1 backsmalls1 clos1way6 close_status dbugeval4\ devfd devfd1 devfd2 errno exitval2 fork fork2 fts functab5 \ getfile getlnhd ignrcas3 inetdayt inetecht inf-nan-torture \ iolint mbfw1 mbprintf1 mbprintf4 mbstr1 mbstr2 \ pid pipeio2 pty1 pty2 readdir rstest4 rstest5 status-close timeout # List of tests that fail on z/OS EXPECTED_FAIL_ZOS = \ aasort aasorti arraysort asort asorti backbigs1 backsmalls1 \ backsmalls2 beginfile1 beginfile2 charasbytes commas clos1way6 concat4 \ dfamb1 double1 double2 errno fmttest forcenum getlndir gsubtst5 \ ignrcas2 inf-nan-torture iolint lc_num1 mbfw1 mbprintf1 \ mbprintf2 mbprintf3 mbprintf4 mbprintf5 mbstr1 mbstr2 mtchi18n \ nlstringtest nofile nonfatal2 numrange posix_compare printhuge \ profile5 rebt8b2 regrange reint2 rri1 sigpipe1 sort1 sortfor \ sortu space sprintfc subamp subi18n symtab1 symtab11 symtab8 \ timeout wideidx wideidx2 widesub widesub2 widesub3 widesub4 ZOS_FAIL = @ZOS_FAIL@ # List of the files that appear in manual tests or are for reserve testing: GENTESTS_UNUSED = Makefile.in checknegtime.awk dtdgport.awk fix-fmtspcl.awk \ fmtspcl-mpfr.ok fmtspcl.awk fmtspcl.tok gtlnbufv.awk hello.awk \ inchello.awk inclib.awk inplace.1.in inplace.2.in inplace.in \ printfloat.awk readdir0.awk valgrind.awk xref.awk \ readall1.awk readall2.awk # List of tests on MinGW that need a different cmp program NEED_TESTOUTCMP = \ beginfile2 double2 exit fmttest hsprint posix profile5 space CMP = cmp AWKPROG = ../gawk$(EXEEXT) SORT = sort SORT2 = LC_ALL=C sort # Default for VALGRIND is empty unless overridden by a command-line argument. # This protects against cruft in the environment. VALGRIND = # This business forces the locale to be C for running the tests, # unless we override it to something else for testing. # # This can also be done in individual tests where we wish to # check things specifically not in the C locale. # # And we set AWKLIBPATH to find the extension libraries we built. LOCALES = LANGUAGE= LC_ALL=$${GAWKLOCALE:-C} LANG=$${GAWKLOCALE:-C} AWK = $(LOCALES) AWKLIBPATH=../extension/.libs GAWK_NO_MPFR_WARN=1 $(VALGRIND) $(AWKPROG) $(GAWK_TEST_ARGS) # Message stuff is to make it a little easier to follow. # Make the pass-fail last and dependent on others to avoid # spurious errors if `make -j' in effect. check: env-check \ msg \ printlang \ basic-msg-start basic basic-msg-end \ unix-msg-start unix-tests unix-msg-end \ extend-msg-start gawk-extensions arraydebug-tests extend-msg-end \ charset-tests-all \ shlib-msg-start shlib-tests shlib-msg-end \ mpfr-msg-start mpfr-tests mpfr-msg-end \ pma-msg-start pma-tests pma-msg-end \ machine-msg-start machine-tests machine-msg-end @$(MAKE) pass-fail || { $(MAKE) diffout; exit 1; } basic: $(BASIC_TESTS) unix-tests: $(UNIX_TESTS) gawk-extensions: $(GAWK_EXT_TESTS) charset-tests-all: @case `uname` in \ *MINGW* | *MS-DOS*) \ $(MAKE) charset-msg-start charset-tests charset-msg-end ;; \ *) \ if locale -a | grep -i 'en_US.UTF.*8' > /dev/null && \ locale -a | grep -i 'fr_FR.UTF.*8' > /dev/null && \ locale -a | grep -i 'ru_RU.UTF.*8' > /dev/null && \ locale -a | grep -i 'ja_JP.UTF.*8' > /dev/null ; \ then \ $(MAKE) charset-msg-start charset-tests charset-msg-end; \ else \ echo %%%%%%%%%% Inadequate locale support: skipping charset tests. ; \ echo %%%%%%%%%% At least en_US.UTF-8, fr_FR.UTF-8, ru_RU.UTF-8 and ja_JP.UTF-8 are needed. ; \ fi ;; \ esac charset-tests: $(LOCALE_CHARSET_TESTS) extra: $(EXTRA_TESTS) inet inet: inetmesg $(INET_TESTS) machine-tests: $(MACHINE_TESTS) # The blank between ' and /MPFR/ is for running tests on Windows under # MSYS, which thinks /MPFR is a Unix-style file name and converts it # to Windows format, butchering it in the process. Likewise for /API/ # in the next shlib-tests. mpfr-tests: @if $(AWK) --version | $(AWK) ' /MPFR/ { exit 1 }' ; then \ echo MPFR tests not supported on this system ; \ else $(MAKE) $(NEED_MPFR) ; \ fi arraydebug-tests: @if echo $(CFLAGS) | grep ARRAYDEBUG > /dev/null ; then \ $(MAKE) $(ARRAYDEBUG_TESTS) ; \ else echo gawk is not compiled to support the array debug tests ; \ fi shlib-tests: @if $(AWK) --version | $(AWK) ' /API/ { exit 1 }' ; then \ echo shlib tests not supported on this system ; \ else $(MAKE) shlib-real-tests ; \ fi shlib-real-tests: $(SHLIB_TESTS) env-check: @if [ "$$GAWK_PERSIST_FILE" != "" ]; then \ echo ; \ echo '**********************************************************************************' ; \ echo '* Please remove GAWK_PERSIST_FILE from the environment before running the tests. *' ; \ echo '**********************************************************************************' ; \ echo ; \ exit 1; \ fi pma-msg-start: @echo "======== Starting PMA tests ========" pma-msg-end: @echo "======== Done with PMA tests ========" pma-tests: @if $(AWK) --version | $(AWK) ' /PMA/ { exit 1 }' ; then \ echo PMA tests not supported on this system ; \ else \ $(MAKE) makepmafile ; \ ./makepmafile ; \ $(MAKE) $(NEED_PMA) ; \ fi makepmafile: makepmafile.c $(CC) $< -o $@ pma: @echo $@ @GAWK_PERSIST_FILE=test.pma $(AWK) 'BEGIN { print ++i }' > _$@ 2>&1 @GAWK_PERSIST_FILE=test.pma $(AWK) 'BEGIN { print ++i }' >> _$@ 2>&1 @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(RM) -f test.pma msg:: @echo '' @echo 'Any output from "$(CMP)" is bad news, although some differences' @echo 'in floating point values are probably benign -- in particular,' @echo 'some systems may omit a leading zero and the floating point' @echo 'precision may lead to slightly different output in a few cases.' printlang:: @$(AWK) -f "$(srcdir)"/printlang.awk basic-msg-start: @echo "======== Starting basic tests ========" basic-msg-end: @echo "======== Done with basic tests ========" unix-msg-start: @echo "======== Starting Unix tests ========" unix-msg-end: @echo "======== Done with Unix tests ========" extend-msg-start: @echo "======== Starting gawk extension tests ========" extend-msg-end: @echo "======== Done with gawk extension tests ========" machine-msg-start: @echo "======== Starting machine-specific tests ========" @echo "If any of these tests fail, don't worry too much." machine-msg-end: @echo "======== Done with machine-specific tests ========" charset-msg-start: @echo "======== Starting tests that can vary based on character set or locale support ========" @echo "**************************************************************************" @echo "* Some or all of these tests may fail if you have inadequate or missing *" @echo "* locale support. At least en_US.UTF-8, fr_FR.UTF-8, ru_RU.UTF-8 and *" @echo "* ja_JP.UTF-8 are needed. The el_GR.iso88597 is optional but helpful. *" @echo "* However, if you see this message, the Makefile thinks you have what *" @echo "* you need ... *" @echo "**************************************************************************" charset-msg-end: @echo "======== Done with tests that can vary based on character set or locale support ========" shlib-msg-start: @echo "======== Starting shared library tests ========" shlib-msg-end: @echo "======== Done with shared library tests ========" mpfr-msg-start: @echo "======== Starting MPFR tests ========" mpfr-msg-end: @echo "======== Done with MPFR tests ========" # This test is a PITA because increasingly, /tmp is getting # mounted noexec. So, we'll test it locally. Sigh. # # More PITA; some systems have medium short limits on #! paths, # so this can still fail poundbang:: @echo $@ @sed "s;/tmp/gawk;`pwd`/$(AWKPROG);" < "$(srcdir)"/poundbang.awk > ./_pbd.awk @chmod +x ./_pbd.awk @-if ./_pbd.awk "$(srcdir)"/poundbang.awk > _`basename $@` ; \ then : ; \ else \ sed "s;/tmp/gawk;$(AWKPROG);" < "$(srcdir)"/poundbang.awk > ./_pbd.awk ; \ chmod +x ./_pbd.awk ; \ LC_ALL=$${GAWKLOCALE:-C} LANG=$${GAWKLOCALE:-C} ./_pbd.awk "$(srcdir)"/poundbang.awk > _`basename $@`; \ fi @-$(CMP) "$(srcdir)"/poundbang.awk _`basename $@` && rm -f _`basename $@` _pbd.awk messages:: @echo $@ @-$(AWK) -f "$(srcdir)"/messages.awk >_out2 2>_out3 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/out1.ok _out1 && $(CMP) "$(srcdir)"/out2.ok _out2 && $(CMP) "$(srcdir)"/out3.ok _out3 && rm -f _out1 _out2 _out3 argarray:: @echo $@ @cp "$(srcdir)"/argarray.in ./argarray.input @-TEST=test echo just a test | $(AWK) -f "$(srcdir)"/argarray.awk ./argarray.input - >_$@ || echo EXIT CODE: $$? >> _$@ @-rm -f ./argarray.input @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ regtest:: @echo $@ @echo 'Some of the output from regtest is very system specific, do not' @echo 'be distressed if your output differs from that distributed.' @echo 'Manual inspection is called for.' @-AWK=$(AWKPROG) "$(srcdir)"/regtest.sh manyfiles:: @echo $@ @rm -rf junk @mkdir junk @-$(AWK) 'BEGIN { for (i = 1; i <= 1030; i++) print i, i}' >_$@ @-$(AWK) -f "$(srcdir)"/manyfiles.awk _$@ _$@ || echo EXIT CODE: $$? >> _$@ @-wc -l junk/* | $(AWK) '$$1 != 2' | wc -l | sed "s/ *//g" > _$@ @-rm -rf junk @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ compare:: @echo $@ @-$(AWK) -f "$(srcdir)"/compare.awk 0 1 "$(srcdir)"/compare.in >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ inftest:: @echo $@ @echo This test is very machine specific... @-$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ getline2:: @echo $@ @-$(AWK) -f "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ awkpath:: @echo $@ @-AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f awkpath.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ argtest:: @echo $@ @-$(AWK) -f "$(srcdir)"/argtest.awk -x -y abc >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ badargs:: @echo $@ @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ strftime:: @echo $@ @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C ; export GAWKLOCALE; \ TZ=GMT0; export TZ; \ $(AWK) -v OUTPUT=_$@ -v DATECMD="$(DATE)" -f "$(srcdir)"/strftime.awk || echo EXIT CODE: $$? >> _$@ @-$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0 devfd:: @echo $@ @-$(AWK) 1 /dev/fd/4 /dev/fd/5 4<"$(srcdir)"/devfd.in4 5<"$(srcdir)"/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # This cannot be autogenerated; we want it to read the input name # on the command line. errno: @echo $@ $(ZOS_FAIL) @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ tweakfld:: @echo $@ @-$(AWK) -f "$(srcdir)"/tweakfld.awk "$(srcdir)"/tweakfld.in >_$@ || echo EXIT CODE: $$? >> _$@ @-rm -f errors.cleanup @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # AIX /bin/sh exec's the last command in a list, therefore issue a ":" # command so that pid.sh is fork'ed as a child before being exec'ed. pid:: @echo $@ @-AWKPATH="$(srcdir)" AWK=$(AWKPROG) $(SHELL) "$(srcdir)"/pid.sh $$$$ > _`basename $@` ; : @-$(CMP) "$(srcdir)"/pid.ok _`basename $@` && rm -f _`basename $@` strftlng:: @echo $@ @-TZ=UTC; export TZ; $(AWK) -f "$(srcdir)"/strftlng.awk >_$@ @-if $(CMP) "$(srcdir)"/strftlng.ok _$@ >/dev/null 2>&1 ; then : ; else \ TZ=UTC0; export TZ; $(AWK) -f "$(srcdir)"/strftlng.awk >_$@ ; \ fi @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nors:: @echo $@ @-echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - "$(srcdir)"/nors.in > _$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # fmtspcl.ok: fmtspcl.tok Makefile fix-fmtspcl.awk # @$(AWK) -v "sd=$(srcdir)" -f "$(srcdir)/fix-fmtspcl.awk" < "$(srcdir)"/fmtspcl.tok > $@ 2>/dev/null # # fmtspcl: fmtspcl.ok # @echo $@ # @$(AWK) $(AWKFLAGS) -f "$(srcdir)"/fmtspcl.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ # @-if test -z "$$AWKFLAGS" ; then $(CMP) $@.ok _$@ && rm -f _$@ ; else \ # $(CMP) "$(srcdir)"/$@-mpfr.ok _$@ && rm -f _$@ ; \ # fi rebuf:: @echo $@ @-AWKBUFSIZE=4096 AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ rsglstdin:: @echo $@ @-cat "$(srcdir)"/rsgetline.in | AWKPATH="$(srcdir)" $(AWK) -f rsgetline.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ pipeio1:: @echo $@ @-$(AWK) -f "$(srcdir)"/pipeio1.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-rm -f test1 test2 @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ pipeio2:: @echo $@ @-$(AWK) -v SRCDIR="$(srcdir)" -f "$(srcdir)"/pipeio2.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ clobber:: @echo $@ @-$(AWK) -f "$(srcdir)"/clobber.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/clobber.ok seq && $(CMP) "$(srcdir)"/clobber.ok _$@ && rm -f _$@ @rm -f seq arynocls:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -v INPUT="$(srcdir)"/arynocls.in -f arynocls.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ getlnbuf:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f getlnbuf.awk "$(srcdir)"/getlnbuf.in > _$@ || echo EXIT CODE: $$? >> _$@ @-AWKPATH="$(srcdir)" $(AWK) -f gtlnbufv.awk "$(srcdir)"/getlnbuf.in > _2$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/getlnbuf.ok _$@ && $(CMP) "$(srcdir)"/getlnbuf.ok _2$@ && rm -f _$@ _2$@ inetmesg:: @echo These tests only work if your system supports the services @echo "'discard'" at port 9 and "'daytimed'" at port 13. Check your @echo file /etc/services and do "'netstat -a'". inetechu:: @echo This test is for establishing UDP connections @-$(AWK) 'BEGIN {print "" |& "/inet/udp/0/127.0.0.1/9"}' inetecht:: @echo This test is for establishing TCP connections @-$(AWK) 'BEGIN {print "" |& "/inet/tcp/0/127.0.0.1/9"}' inetdayu:: @echo This test is for bidirectional UDP transmission @-$(AWK) 'BEGIN { print "" |& "/inet/udp/0/127.0.0.1/13"; \ "/inet/udp/0/127.0.0.1/13" |& getline; print $0}' inetdayt:: @echo This test is for bidirectional TCP transmission @-$(AWK) 'BEGIN { print "" |& "/inet/tcp/0/127.0.0.1/13"; \ "/inet/tcp/0/127.0.0.1/13" |& getline; print $0}' redfilnm:: @echo $@ @-$(AWK) -f "$(srcdir)"/redfilnm.awk srcdir="$(srcdir)" "$(srcdir)"/redfilnm.in >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ space:: @echo $@ $(ZOS_FAIL) @-$(AWK) -f ' ' "$(srcdir)"/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ rsnulbig:: @echo $@ @ : Suppose that block size for pipe is at most 128kB: @-$(AWK) 'BEGIN { for (i = 1; i <= 128*64+1; i++) print "abcdefgh123456\n" }' 2>&1 | \ $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" }; { print }' 2>&1 | \ $(AWK) ' /^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ rsnulbig2:: @echo $@ @-$(AWK) 'BEGIN { ORS = ""; n = "\n"; for (i = 1; i <= 10; i++) n = (n n); \ for (i = 1; i <= 128; i++) print n; print "abc\n" }' 2>&1 | \ $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" };{ print }' 2>&1 | \ $(AWK) ' /^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # This test makes sure gawk exits with a zero code. # Thus, unconditionally generate the exit code. exitval1:: @echo $@ @-$(AWK) -f "$(srcdir)"/exitval1.awk >_$@ 2>&1; echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ fsspcoln:: @echo $@ @-$(AWK) -f "$(srcdir)"/$@.awk 'FS=[ :]+' "$(srcdir)"/$@.in >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ rsstart3:: @echo $@ @-head "$(srcdir)"/rsstart1.in | $(AWK) -f "$(srcdir)"/rsstart2.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # FIXME: Gentests can't really deal with something that is both a shell script # and requires a locale. We might can fix that ... rtlenmb:: @echo $@ @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE ; \ "$(srcdir)"/rtlen.sh >_$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nofile:: @echo $@ $(ZOS_FAIL) @-$(AWK) '{}' no/such/file >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ binmode1:: @echo $@ @-$(AWK) -v BINMODE=3 'BEGIN { print BINMODE }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ devfd1:: @echo $@ @-$(AWK) -f "$(srcdir)"/$@.awk 4< "$(srcdir)"/devfd.in1 5< "$(srcdir)"/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # The program text is the '1' which will print each record. How compact can you get? devfd2:: @echo $@ @-$(AWK) 1 /dev/fd/4 /dev/fd/5 4< "$(srcdir)"/devfd.in1 5< "$(srcdir)"/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mixed1:: @echo $@ @-$(AWK) -f /dev/null --source 'BEGIN {return junk}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mbprintf5:: @echo $@ $(ZOS_FAIL) @-case `uname` in \ CYGWIN* | MSYS* | MINGW32* | *MS-DOS*) echo this test fails on this system --- skipping $@ ;; \ *) \ [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE ; \ $(AWK) -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ ; \ $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ; \ esac printfbad2: printfbad2.ok @echo $@ @-$(AWK) --lint -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.in 2>&1 | sed 's;$(srcdir)/;;g' >_$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ beginfile1:: @echo $@ $(ZOS_FAIL) @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk "$(srcdir)"/$@.awk . ./no/such/file Makefile >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ beginfile2: @echo $@ $(ZOS_FAIL) @-( cd "$(srcdir)" && LC_ALL=C AWK="$(abs_builddir)/$(AWKPROG)" $(abs_srcdir)/$@.sh $(abs_srcdir)/$@.in ) > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ dumpvars:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --dump-variables 1 < "$(srcdir)"/$@.in >/dev/null 2>&1 || echo EXIT CODE: $$? >>_$@ || echo EXIT CODE: $$? >> _$@ @grep -v ENVIRON < awkvars.out | grep -v PROCINFO > _$@; rm awkvars.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ profile0: @echo $@ @-$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.in > /dev/null @-sed 1,2d < ap-$@.out > _$@; rm ap-$@.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ profile1: @echo $@ @-$(AWK) -f "$(srcdir)"/xref.awk "$(srcdir)"/dtdgport.awk > _$@.out1 @-$(AWK) --pretty-print=ap-$@.out -f "$(srcdir)"/xref.awk @-$(AWK) -f ./ap-$@.out "$(srcdir)"/dtdgport.awk > _$@.out2 ; rm ap-$@.out @-$(CMP) _$@.out1 _$@.out2 && rm _$@.out[12] || { echo EXIT CODE: $$? >>_$@ ; \ cp "$(srcdir)"/dtdgport.awk $@.ok ; } profile2: @echo $@ @-$(AWK) --profile=ap-$@.out -v sortcmd=$(SORT) -f "$(srcdir)"/xref.awk "$(srcdir)"/dtdgport.awk > /dev/null @-sed 1,2d < ap-$@.out > _$@; rm ap-$@.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ profile3: @echo $@ @-$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null @-sed 1,2d < ap-$@.out > _$@; rm ap-$@.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ profile5: @echo $@ $(ZOS_FAIL) @-AWKPATH="$(srcdir)" $(AWK) --pretty=_$@ -f $@.awk 2> _$@.err @-cat _$@.err >> _$@ ; rm -f _$@.err @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ profile6: @echo $@ @-$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null @-sed 1,2d < ap-$@.out > _$@; rm ap-$@.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ profile7: @echo $@ @-$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null @-sed 1,2d < ap-$@.out > _$@; rm ap-$@.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ profile12: @echo $@ @-$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.in > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-rm ap-$@.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfrieee: @echo $@ @-$(AWK) -M -vPREC=double -f "$(srcdir)"/$@.awk > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfrexprange: @echo $@ @-$(AWK) -M -vPREC=53 -f "$(srcdir)"/$@.awk > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfrrnd: @echo $@ @-$(AWK) -M -vPREC=53 -f "$(srcdir)"/$@.awk > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfrsort: @echo $@ @-$(AWK) -M -vPREC=53 -f "$(srcdir)"/$@.awk > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfruplus: @echo $@ @-$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfranswer42: @echo $@ @-$(AWK) -M -f "$(srcdir)"/$@.awk > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfrmemok1: @echo $@ @-$(AWK) -p- -M -f "$(srcdir)"/$@.awk 2>&1 | sed 1d > _$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ mpfrsqrt: @if $(AWK) --version | $(AWK) ' /API/ { exit 1 }' ; then \ true ; \ else \ echo $@ ; \ $(AWK) -M -f "$(srcdir)"/$@.awk > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@ ; \ $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ; \ fi jarebug:: @echo $@ @-"$(srcdir)"/$@.sh "$(AWKPROG)" "$(srcdir)"/$@.awk "$(srcdir)"/$@.in "_$@" || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ordchr2:: @echo $@ @-$(AWK) --load ordchr 'BEGIN {print chr(ord("z"))}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # N.B. If the test fails, create readfile.ok so that "make diffout" will work readfile:: @echo $@ @-$(AWK) -l readfile 'BEGIN {printf "%s", readfile("$(srcdir)/Makefile.am")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)/Makefile.am" _$@ && rm -f _$@ || cp -p "$(srcdir)/Makefile.am" $@.ok readfile2:: @echo $@ @-$(AWK) -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.awk "$(srcdir)"/readdir.awk > _$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nsawk1a:: @echo $@ @-$(AWK) -f "$(srcdir)"/nsawk1.awk > _$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nsawk1b:: @echo $@ @-$(AWK) -v I=fine -f "$(srcdir)"/nsawk1.awk > _$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nsawk1c:: @echo $@ @-$(AWK) -v awk::I=fine -f "$(srcdir)"/nsawk1.awk > _$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nsawk2a:: @echo $@ @-$(AWK) -v I=fine -f "$(srcdir)"/nsawk2.awk > _$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nsawk2b:: @echo $@ @-$(AWK) -v awk::I=fine -f "$(srcdir)"/nsawk2.awk > _$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ include2:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --include inclib 'BEGIN {print sandwich("a", "b", "c")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ incdupe:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --lint -i inclib -i inclib.awk 'BEGIN {print sandwich("a", "b", "c")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ incdupe2:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --lint -f inclib -f inclib.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ incdupe3:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --lint -f hello -f hello.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ incdupe4:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --lint -f hello -i hello.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ incdupe5:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --lint -i hello -f hello.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ incdupe6:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --lint -i inchello -f hello.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ incdupe7:: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --lint -f hello -i inchello >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ inplace1:: @echo $@ @-cp "$(srcdir)"/inplace.1.in _$@.1 @-cp "$(srcdir)"/inplace.2.in _$@.2 @-AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace 'BEGIN {print "before"} {gsub(/foo/, "bar"); print} END {print "after"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(CMP) "$(srcdir)"/$@.1.ok _$@.1 && rm -f _$@.1 @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2 inplace2:: @echo $@ @-cp "$(srcdir)"/inplace.1.in _$@.1 @-cp "$(srcdir)"/inplace.2.in _$@.2 @-AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v inplace::suffix=.bak 'BEGIN {print "before"} {gsub(/foo/, "bar"); print} END {print "after"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(CMP) "$(srcdir)"/$@.1.ok _$@.1 && rm -f _$@.1 @-$(CMP) "$(srcdir)"/$@.1.bak.ok _$@.1.bak && rm -f _$@.1.bak @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2 @-$(CMP) "$(srcdir)"/$@.2.bak.ok _$@.2.bak && rm -f _$@.2.bak inplace2bcomp:: @echo $@ @-cp "$(srcdir)"/inplace.1.in _$@.1 @-cp "$(srcdir)"/inplace.2.in _$@.2 @-AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v INPLACE_SUFFIX=.orig 'BEGIN {print "before"} {gsub(/foo/, "bar"); print} END {print "after"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(CMP) "$(srcdir)"/$@.1.ok _$@.1 && rm -f _$@.1 @-$(CMP) "$(srcdir)"/$@.1.orig.ok _$@.1.orig && rm -f _$@.1.orig @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2 @-$(CMP) "$(srcdir)"/$@.2.orig.ok _$@.2.orig && rm -f _$@.2.orig inplace3:: @echo $@ @-cp "$(srcdir)"/inplace.1.in _$@.1 @-cp "$(srcdir)"/inplace.2.in _$@.2 @-AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v inplace::suffix=.bak 'BEGIN {print "before"} {gsub(/foo/, "bar"); print} END {print "after"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v inplace::suffix=.bak 'BEGIN {print "Before"} {gsub(/bar/, "foo"); print} END {print "After"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(CMP) "$(srcdir)"/$@.1.ok _$@.1 && rm -f _$@.1 @-$(CMP) "$(srcdir)"/$@.1.bak.ok _$@.1.bak && rm -f _$@.1.bak @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2 @-$(CMP) "$(srcdir)"/$@.2.bak.ok _$@.2.bak && rm -f _$@.2.bak inplace3bcomp:: @echo $@ @-cp "$(srcdir)"/inplace.1.in _$@.1 @-cp "$(srcdir)"/inplace.2.in _$@.2 @-AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v INPLACE_SUFFIX=.orig 'BEGIN {print "before"} {gsub(/foo/, "bar"); print} END {print "after"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v INPLACE_SUFFIX=.orig 'BEGIN {print "Before"} {gsub(/bar/, "foo"); print} END {print "After"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(CMP) "$(srcdir)"/$@.1.ok _$@.1 && rm -f _$@.1 @-$(CMP) "$(srcdir)"/$@.1.orig.ok _$@.1.orig && rm -f _$@.1.orig @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2 @-$(CMP) "$(srcdir)"/$@.2.orig.ok _$@.2.orig && rm -f _$@.2.orig testext:: @echo $@ @-$(AWK) ' /^(@load|BEGIN|function)/,/^}/' "$(top_srcdir)"/extension/testext.c > testext.awk @-$(AWK) -f ./testext.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-if echo "$$GAWK_TEST_ARGS" | grep -E -e '-M|--bignum' > /dev/null; \ then $(CMP) "$(srcdir)"/$@-mpfr.ok _$@ && rm -f _$@ testext.awk testexttmp.txt ; \ else $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ testext.awk testexttmp.txt ; fi getfile: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -v TESTEXT_QUIET=1 -ltestext -f $@.awk < $(srcdir)/$@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ readdir: @echo $@ @-if [ "`uname`" = Linux ] && [ "`stat -f . 2>/dev/null | awk 'NR == 2 { print $$NF }'`" = nfs ]; then \ echo This test may fail on GNU/Linux systems when run on NFS or JFS filesystems.; \ echo If it does, try rerunning on an ext'[234]' filesystem. ; \ fi @-$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@ || echo EXIT CODE: $$? >> _$@ @-ls -afi "$(top_srcdir)" > _dirlist @-ls -lna "$(top_srcdir)" | sed 1d > _longlist @-$(AWK) -f "$(srcdir)"/readdir0.awk -v extout=_$@ \ -v dirlist=_dirlist -v longlist=_longlist > $@.ok @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ _dirlist _longlist readdir_test: @echo $@ @-$(AWK) -lreaddir -F/ '{printf "[%s] [%s] [%s] [%s]\n", $$1, $$2, $$3, $$4}' "$(top_srcdir)" > $@.ok @-$(AWK) -lreaddir_test '{printf "[%s] [%s] [%s] [%s]\n", $$1, $$2, $$3, $$4}' "$(top_srcdir)" > _$@ @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ readdir_retest: @echo $@ @-$(AWK) -lreaddir -F/ -f "$(srcdir)"/$@.awk "$(top_srcdir)" > $@.ok @-$(AWK) -lreaddir_test -F/ -f "$(srcdir)"/$@.awk "$(top_srcdir)" > _$@ @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ readall: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -lrwarray -f $@1.awk -v "ofile=readall.state" > _$@ 2>&1 @-AWKPATH="$(srcdir)" $(AWK) -lrwarray -f $@2.awk -v "ifile=readall.state" >> _$@ 2>&1 @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(RM) -f readall.state fts: @echo $@ @-case `uname` in \ IRIX) \ echo This test may fail on IRIX systems when run on an NFS filesystem.; \ echo If it does, try rerunning on an xfs filesystem. ;; \ CYGWIN* | MSYS*) \ echo This test may fail on CYGWIN systems when run on an NFS filesystem.; \ echo If it does, try rerunning on an ntfs filesystem. ;; \ esac @-$(AWK) -f "$(srcdir)"/fts.awk || echo EXIT CODE: $$? >> _$@ @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ # BINMODE=2 is needed for PC tests. charasbytes: @echo $@ $(ZOS_FAIL) @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \ AWKPATH="$(srcdir)" $(AWK) -b -v BINMODE=2 -f $@.awk "$(srcdir)"/$@.in | \ od -c -t x1 | tr ' ' ' ' | sed -e 's/ */ /g' -e 's/ *$$//' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ symtab6: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk > _$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ symtab8: @echo $@ $(ZOS_FAIL) @-$(AWK) -d__$@ -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.in >_$@ @-grep -v '^ENVIRON' __$@ | grep -v '^PROCINFO' | grep -v '^FILENAME' >> _$@ ; rm __$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ symtab9: @echo $@ @-$(AWK) -f "$(srcdir)"/$@.awk >_$@ || echo EXIT CODE: $$? >> _$@ @-rm -f testit.txt @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ reginttrad: @echo $@ @-$(AWK) --traditional -r -f "$(srcdir)"/$@.awk > _$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ colonwarn: @echo $@ @-for i in 1 2 3 ; \ do $(AWK) -f "$(srcdir)"/$@.awk $$i < "$(srcdir)"/$@.in ; \ done > _$@ || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ dbugeval:: @echo $@ @-if [ -t 0 ]; then \ $(AWK) --debug -f /dev/null < "$(srcdir)"/$@.in > _$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \ $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ; \ fi filefuncs: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk -v builddir="$(abs_top_builddir)" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ genpot: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk --gen-pot >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ negtime:: @echo $@ @-TZ=GMT AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-AWKPATH="$(srcdir)" $(AWK) -f checknegtime.awk "$(srcdir)"/$@.ok _$@ && rm -f _$@ watchpoint1: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -D -f $@.awk $(srcdir)/$@.in < $(srcdir)/$@.script >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ pty1: @echo $@ @-case `uname` in \ *[Oo][Ss]/390*) : ;; \ *) AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \ $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ;; \ esac ## 1/2018: The awk goop is to compensate for different output of od on ## Mac OS X systems. Sigh. pty2: @echo $@ @-case `uname` in \ *[Oo][Ss]/390*) : ;; \ *) AWKPATH="$(srcdir)" $(AWK) -f $@.awk | od -c | $(AWK) '{ $$1 = $$1 ; print }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \ $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ;; \ esac ignrcas3:: @echo $@ @-if locale -a | grep el_GR.iso88597 > /dev/null ; then \ [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=el_GR.iso88597 ; export GAWKLOCALE; \ AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \ $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ; \ fi arrdbg: @echo $@ @-$(AWK) -v "okfile=./$@.ok" -v "mpfr_okfile=./$@-mpfr.ok" -f "$(srcdir)"/$@.awk | grep array_f >_$@ || echo EXIT CODE: $$? >> _$@ @-if echo "$$GAWK_TEST_ARGS" | grep -E -e '-M|--bignum' > /dev/null; \ then $(CMP) "."/$@-mpfr.ok _$@ && rm -f _$@ $@.ok $@-mpfr.ok ; \ else $(CMP) "."/$@.ok _$@ && rm -f _$@ $@.ok $@-mpfr.ok ; fi sourcesplit: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) --source='BEGIN { a = 5;' --source='print a }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ eofsrc1: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@a.awk -f $@b.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nsbad_cmd: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -v foo:bar=3 -v foo:::blat=4 1 /dev/null >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # Use [:] in the regexp to keep MSYS from converting the /'s to \'s. nonfatal1: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk 2>&1 | $(AWK) '{print gensub(/invalid[:].*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # 4/2018: On first call to $(CMP), send to /dev/null even with -s for MinGW. nlstringtest:: @echo $@ $(ZOS_FAIL) @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=fr_FR.UTF-8 ; export GAWKLOCALE ; \ AWKPATH="$(srcdir)" $(AWK) -f $@.awk "$(srcdir)" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-if $(CMP) -s "$(srcdir)"/nlstringtest-nogettext.ok _$@ > /dev/null ; \ then \ rm -f _$@ ; \ else \ $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ; \ fi longwrds: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk -v SORT="$(SORT)" < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ nsidentifier: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk -v SORT="$(SORT2)" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ spacere: @echo $@ @-LC_ALL=C AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ typedregex4: @echo $@ @-$(AWK) -v x=@/foo/ -f "$(srcdir)"/$@.awk y=@/bar/ /dev/null >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ iolint: @echo $@ $(ZOS_FAIL) @echo hello > 'echo hello' @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @-$(RM) -f cat 'echo hello' f1 f2 cksum argcasfile: @echo $@ @-$(AWK) -f "$(srcdir)"/$@.awk ARGC=1 ' /no/such/file' < "$(srcdir)/$@.in" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ indirectbuiltin2: @echo $@ @-for test in 0 1 2 3 4 5 ; do \ AWKPATH="$(srcdir)" $(AWK) -v test=$$test -f $@.awk ; \ done > _$@ 2>&1 || exit 0 @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ # Targets generated for other tests: include Maketests Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests files=`cd "$(srcdir)" && echo *.awk *.in *.sh`; \ $(AWK) -f "$(srcdir)"/Gentests "$(srcdir)"/Makefile.am $$files > $@ clean-local: rm -fr _* core core.* fmtspcl.ok junk strftime.ok test1 test2 \ seq *~ readfile.ok fork.tmp.* testext.awk fts.ok readdir.ok \ readdir_test.ok readdir_retest.ok profile1.ok X_* makepmafile # An attempt to print something that can be grepped for in build logs pass-fail: @COUNT=`ls _* 2>/dev/null | wc -l` ; \ if test $$COUNT = 0 ; \ then echo ALL TESTS PASSED ; \ else echo $$COUNT TESTS FAILED ; exit 1; \ fi # This target for my convenience to look at all the results # Don't use POSIX or bash-isms so that it'll work on !@#$%^&*() Solaris. diffout: for i in _* ; \ do \ if [ "$$i" != "_*" ]; then \ echo ============== $$i ============= ; \ base=`echo $$i | sed 's/^_//'` ; \ if echo "$$GAWK_TEST_ARGS" | grep -E -e '-M|--bignum' > /dev/null && [ -r $${base}-mpfr.ok ]; then \ diff -u $${base}-mpfr.ok $$i ; \ elif echo "$$GAWK_TEST_ARGS" | grep -E -e '-M|--bignum' > /dev/null && [ -r "$(srcdir)"/$${base}-mpfr.ok ]; then \ diff -u "$(srcdir)"/$${base}-mpfr.ok $$i ; \ elif [ -r $${base}.ok ]; then \ diff -u $${base}.ok $$i ; \ else \ diff -u "$(srcdir)"/$${base}.ok $$i ; \ fi ; \ fi ; \ done | more # make things easier for z/OS zos-diffout: @for i in $(EXPECTED_FAIL_ZOS); do \ if [ -f _$$i ]; then mv -f _$$i X_$$i ; fi ; \ if [ ! -f X_$$i ]; then echo $$i apparently passed! please check ; fi ; done @echo checking for new failures ... @$(MAKE) diffout # convenient way to scan valgrind results for errors valgrind-scan: @echo "Scanning valgrind log files for problems:" @$(AWK) -f "$(srcdir)"/valgrind.awk log.[0-9]* # This target is for testing with electric fence. efence: for i in $$(ls _* | sed 's;_\(.*\);\1;') ; \ do \ bad=$$(wc -l < _$$i) \ ok=$$(wc -l < $$i.ok) ; \ if (( $$bad == $$ok + 2 )) ; \ then \ rm _$$i ; \ fi ; \ done