summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2010-11-18 23:00:31 +0200
committerArnold D. Robbins <arnold@skeeve.com>2010-11-18 23:00:31 +0200
commit6f3612539c425da2bc1d34db621696e6a273b01c (patch)
tree9623b3ac2c54a93e5eed3be2b1dda7f4e4bf0e47 /test
parent4e3701015635401df2fc4da58abaab7645f4ebd3 (diff)
downloadgawk-6f3612539c425da2bc1d34db621696e6a273b01c.tar.gz
Bring latest byte code gawk into git. Hurray!
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog47
-rw-r--r--test/Makefile.am52
-rw-r--r--test/Makefile.in99
-rw-r--r--test/Maketests39
-rw-r--r--test/aadelete1.awk19
-rw-r--r--test/aadelete1.ok6
-rw-r--r--test/aadelete2.awk10
-rw-r--r--test/aadelete2.ok2
-rw-r--r--test/aarray1.awk28
-rw-r--r--test/aarray1.ok6
-rw-r--r--test/aasort.awk34
-rw-r--r--test/aasort.ok26
-rw-r--r--test/aasorti.awk35
-rw-r--r--test/aasorti.ok20
-rw-r--r--test/arrayparm.ok2
-rw-r--r--test/aryprm3.ok2
-rw-r--r--test/backgsub.ok2
-rw-r--r--test/badargs.ok12
-rw-r--r--test/beginfile1.awk19
-rw-r--r--test/beginfile1.ok14
-rw-r--r--test/concat4.awk2
-rw-r--r--test/concat4.ok2
-rw-r--r--test/defref.ok2
-rw-r--r--test/dumpvars.in3
-rw-r--r--test/dumpvars.ok24
-rw-r--r--test/fmtspcl.tok16
-rw-r--r--test/fnarray.ok4
-rw-r--r--test/fsbs.awk2
-rw-r--r--test/funsmnam.ok4
-rw-r--r--test/inftest.ok202
-rw-r--r--test/nofile.ok2
-rw-r--r--test/paramres.ok4
-rw-r--r--test/parseme.ok5
-rw-r--r--test/posix2008sub.awk (renamed from test/psx96sub.awk)0
-rw-r--r--test/posix2008sub.ok (renamed from test/psx96sub.ok)2
-rwxr-xr-xtest/range1.awk1
-rw-r--r--test/range1.in2
-rw-r--r--test/range1.ok1
-rw-r--r--test/reg/func2.good2
-rw-r--r--test/sclifin.ok2
-rw-r--r--test/shadow.ok8
-rw-r--r--test/switch2.ok0
-rw-r--r--test/uninit3.ok4
-rw-r--r--test/uninit5.ok7
-rw-r--r--test/unterm.ok2
45 files changed, 608 insertions, 169 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index e3196dc5..2ad540dc 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,50 @@
+Fri Nov 12 11:58:40 2010 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (dumpvars): New test.
+ * dumpvars.in, dumpvars.ok: New files.
+
+Thu Nov 11 16:29:06 2010 Arnold D. Robbins <arnold@skeeve.com>
+
+ * backgsub.ok: Updated to match change in code.
+ * posix2008sub.awk, posix2008.ok: New files, renamed from ...
+ * psx96sub.awk, psx96sub.ok: Removed.
+ * Makefile.am (posix2008sub): Renamed from `psx96sub'.
+
+Tue Nov 2 12:14:50 2010 Arnold D. Robbins <arnold@skeeve.com>
+
+ * badargs.ok: Updated.
+
+Mon Nov 1 21:44:48 2010 Arnold D. Robbins <arnold@skeeve.com>
+
+ New tests for arrays of arrays, courtesy of John Haque
+ <j.eh@mchsi.com>.
+
+ * Makefile.am (aadelete1, aadelete2, aarray1,
+ aasort, aasorti): New tests.
+ * aadelete1.awk, aadelete1.ok, aadelete2.awk, aadelete2.ok,
+ aarray1.awk, aarray1.ok, aasort.awk, aasort.ok,
+ aasorti.awk, aasorti.ok: New files.
+
+ Unrelated:
+ * badargs.ok: Updated.
+
+Tue Oct 26 20:49:41 2010 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (switch2): Made into a test.
+ * switch2.ok: New file.
+
+Tue Oct 19 08:26:03 2010 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (gsubtst6, mbstr1, mbprintf3, printfbad2):
+ Re-enable these tests that got lost during the merge. Thanks
+ to Scott Deifik for noticing.
+
+Fri Oct 15 14:20:22 2010 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (beginfile1, range1): New tests.
+ * beginfile1.awk, beginfile1.in, beginfile1.ok: New files.
+ * range1.awk, range1.in, range1.ok: New files.
+
Sun Jun 27 22:01:38 2010 Arnold D. Robbins <arnold@skeeve.com>
* badargs.ok: Updated with new usage message.
diff --git a/test/Makefile.am b/test/Makefile.am
index 5bc02d1f..347e8d24 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -30,6 +30,16 @@ EXTRA_DIST = \
Gentests.vms \
Maketests \
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 \
@@ -100,6 +110,8 @@ EXTRA_DIST = \
backw.in \
backw.ok \
badargs.ok \
+ beginfile1.awk \
+ beginfile1.ok \
binmode1.ok \
childin.awk \
childin.in \
@@ -153,6 +165,8 @@ EXTRA_DIST = \
double1.ok \
double2.awk \
double2.ok \
+ dumpvars.in \
+ dumpvars.ok \
dynlj.awk \
dynlj.ok \
eofsplit.awk \
@@ -494,6 +508,8 @@ EXTRA_DIST = \
posix.awk \
posix.in \
posix.ok \
+ posix2008sub.awk \
+ posix2008sub.ok \
poundbang.awk \
prdupval.awk \
prdupval.in \
@@ -521,10 +537,11 @@ EXTRA_DIST = \
prt1eval.ok \
prtoeval.awk \
prtoeval.ok \
- psx96sub.awk \
- psx96sub.ok \
rand.awk \
rand.ok \
+ range1.awk \
+ range1.in \
+ range1.ok \
rebt8b1.awk \
rebt8b1.ok \
rebt8b2.awk \
@@ -644,6 +661,7 @@ EXTRA_DIST = \
swaplns.in \
swaplns.ok \
switch2.awk \
+ switch2.ok \
synerr1.awk \
synerr1.ok \
synerr2.awk \
@@ -712,14 +730,15 @@ BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayprm2 arrayprm3 \
fnarray fnarray2 fnaryscl fnasgnm fnmisc fordel forref forsimp \
fsbs fsrs fsspcoln fstabplus funsemnl funsmnam funstack getline \
getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest gsubtst2 \
- gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest intprec iobug1 \
+ gsubtst3 gsubtst4 gsubtst5 gsubtst6 hex hsprint inputred intest intprec iobug1 \
leaddig leadnl litoct longsub longwrds manglprm math membug1 messages \
minusstr mmap8k mtchi18n nasty nasty2 negexp nested nfldstr nfneg \
nfset nlfldsep nlinstr nlstrina noeffect nofile nofmtch noloop1 \
noloop2 nonl noparms nors nulrsend numindex numsubstr octsub ofmt \
ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramres \
paramtyp parse1 parsefld parseme pcntplus prdupval prec printf0 \
- printf1 prmarscl prmreuse prt1eval prtoeval psx96sub rand rebt8b1 \
+ printf1 prmarscl prmreuse prt1eval prtoeval posix2008sub rand range1 \
+ rebt8b1 \
redfilnm regeq reindops reparse resplit rs rsnul1nl rsnulbig rsnulbig2 \
rstest1 rstest2 rstest3 rstest4 rstest5 rswhite scalar sclforin sclifin \
sortempty splitargv splitarr splitdef splitvar splitwht strcat1 strnum1 \
@@ -730,14 +749,17 @@ BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayprm2 arrayprm3 \
UNIX_TESTS = fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng
-GAWK_EXT_TESTS = argtest backw badargs binmode1 clos1way devfd devfd1 devfd2 \
+GAWK_EXT_TESTS = \
+ aadelete1 aadelete2 aarray1 aasort aasorti \
+ argtest backw badargs beginfile1 binmode1 clos1way \
+ devfd devfd1 devfd2 dumpvars \
fieldwdth fpat1 funlen fsfwfs fwtest fwtest2 gensub gensub2 getlndir \
gnuops2 gnuops3 gnureops \
icasefs icasers igncdym igncfs ignrcas2 ignrcase indirectcall lint \
- lintold manyfiles match1 match2 match3 nondec nondec2 patsplit \
- posix printfbad1 \
+ lintold manyfiles match1 match2 match3 mbstr1 nondec nondec2 patsplit \
+ posix printfbad1 printfbad2 \
procinfs rebuf regx8bit reint reint2 rsstart1 rsstart2 rsstart3 \
- rstest6 shadow splitarg4 strftime strtonum
+ rstest6 shadow splitarg4 strftime strtonum switch2
EXTRA_TESTS = regtest inftest
@@ -746,7 +768,7 @@ INET_TESTS = inetechu inetecht inetdayu inetdayt
MACHINE_TESTS = double1 double2 fmtspcl intformat
LOCALE_CHARSET_TESTS = asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \
- mbprintf1 mbprintf2 rebt8b2 sort1 sprintfc whiny
+ mbprintf1 mbprintf2 mbprintf3 rebt8b2 sort1 sprintfc whiny
# List of the tests which should be run with --lint option:
NEED_LINT = defref fmtspcl noeffect nofmtch shadow uninit2 uninit3 uninit4 uninit5 uninitialized
@@ -758,7 +780,7 @@ NEED_LINT_OLD = lintold
FAIL_CODE1 = fnarray2 fnmisc gsubasgn mixed1 noparms paramdup synerr1 synerr2 unterm
# List of the files that appear in manual tests or are for reserve testing:
-GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk switch2.awk
+GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk
CMP = cmp
AWKPROG = ../gawk$(EXEEXT)
@@ -1274,6 +1296,16 @@ printfbad2: printfbad2.ok
@$(AWK) --lint -f $(srcdir)/$@.awk $(srcdir)/$@.in 2>&1 | sed 's;\$(srcdir)/;;g' >_$@ || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+beginfile1::
+ @echo $@
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk $(srcdir)/$@.awk . ./no/such/file $(srcdir)/Makefile >_$@ 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: $$? >>_$@
+ @mv awkvars.out _$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
# Targets generated for other tests:
include Maketests
diff --git a/test/Makefile.in b/test/Makefile.in
index d74773ec..f62add56 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -69,9 +69,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/arch.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \
$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
- $(top_srcdir)/m4/socket.m4 $(top_srcdir)/m4/stdint_h.m4 \
- $(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/socket.m4 \
+ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
+ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -122,6 +122,7 @@ LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
+LIBREADLINE = @LIBREADLINE@
LIBS = @LIBS@
LIBSIGSEGV = @LIBSIGSEGV@
LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
@@ -214,6 +215,16 @@ EXTRA_DIST = \
Gentests.vms \
Maketests \
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 \
@@ -284,6 +295,8 @@ EXTRA_DIST = \
backw.in \
backw.ok \
badargs.ok \
+ beginfile1.awk \
+ beginfile1.ok \
binmode1.ok \
childin.awk \
childin.in \
@@ -337,6 +350,8 @@ EXTRA_DIST = \
double1.ok \
double2.awk \
double2.ok \
+ dumpvars.in \
+ dumpvars.ok \
dynlj.awk \
dynlj.ok \
eofsplit.awk \
@@ -678,6 +693,8 @@ EXTRA_DIST = \
posix.awk \
posix.in \
posix.ok \
+ posix2008sub.awk \
+ posix2008sub.ok \
poundbang.awk \
prdupval.awk \
prdupval.in \
@@ -705,10 +722,11 @@ EXTRA_DIST = \
prt1eval.ok \
prtoeval.awk \
prtoeval.ok \
- psx96sub.awk \
- psx96sub.ok \
rand.awk \
rand.ok \
+ range1.awk \
+ range1.in \
+ range1.ok \
rebt8b1.awk \
rebt8b1.ok \
rebt8b2.awk \
@@ -828,6 +846,7 @@ EXTRA_DIST = \
swaplns.in \
swaplns.ok \
switch2.awk \
+ switch2.ok \
synerr1.awk \
synerr1.ok \
synerr2.awk \
@@ -896,14 +915,15 @@ BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayprm2 arrayprm3 \
fnarray fnarray2 fnaryscl fnasgnm fnmisc fordel forref forsimp \
fsbs fsrs fsspcoln fstabplus funsemnl funsmnam funstack getline \
getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest gsubtst2 \
- gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest intprec iobug1 \
+ gsubtst3 gsubtst4 gsubtst5 gsubtst6 hex hsprint inputred intest intprec iobug1 \
leaddig leadnl litoct longsub longwrds manglprm math membug1 messages \
minusstr mmap8k mtchi18n nasty nasty2 negexp nested nfldstr nfneg \
nfset nlfldsep nlinstr nlstrina noeffect nofile nofmtch noloop1 \
noloop2 nonl noparms nors nulrsend numindex numsubstr octsub ofmt \
ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramres \
paramtyp parse1 parsefld parseme pcntplus prdupval prec printf0 \
- printf1 prmarscl prmreuse prt1eval prtoeval psx96sub rand rebt8b1 \
+ printf1 prmarscl prmreuse prt1eval prtoeval posix2008sub rand range1 \
+ rebt8b1 \
redfilnm regeq reindops reparse resplit rs rsnul1nl rsnulbig rsnulbig2 \
rstest1 rstest2 rstest3 rstest4 rstest5 rswhite scalar sclforin sclifin \
sortempty splitargv splitarr splitdef splitvar splitwht strcat1 strnum1 \
@@ -913,20 +933,23 @@ BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayprm2 arrayprm3 \
zero2 zeroe0 zeroflag
UNIX_TESTS = fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng
-GAWK_EXT_TESTS = argtest backw badargs binmode1 clos1way devfd devfd1 devfd2 \
+GAWK_EXT_TESTS = \
+ aadelete1 aadelete2 aarray1 aasort aasorti \
+ argtest backw badargs beginfile1 binmode1 clos1way \
+ devfd devfd1 devfd2 dumpvars \
fieldwdth fpat1 funlen fsfwfs fwtest fwtest2 gensub gensub2 getlndir \
gnuops2 gnuops3 gnureops \
icasefs icasers igncdym igncfs ignrcas2 ignrcase indirectcall lint \
- lintold manyfiles match1 match2 match3 nondec nondec2 patsplit \
- posix printfbad1 \
+ lintold manyfiles match1 match2 match3 mbstr1 nondec nondec2 patsplit \
+ posix printfbad1 printfbad2 \
procinfs rebuf regx8bit reint reint2 rsstart1 rsstart2 rsstart3 \
- rstest6 shadow splitarg4 strftime strtonum
+ rstest6 shadow splitarg4 strftime strtonum switch2
EXTRA_TESTS = regtest inftest
INET_TESTS = inetechu inetecht inetdayu inetdayt
MACHINE_TESTS = double1 double2 fmtspcl intformat
LOCALE_CHARSET_TESTS = asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \
- mbprintf1 mbprintf2 rebt8b2 sort1 sprintfc whiny
+ mbprintf1 mbprintf2 mbprintf3 rebt8b2 sort1 sprintfc whiny
# List of the tests which should be run with --lint option:
@@ -939,7 +962,7 @@ NEED_LINT_OLD = lintold
FAIL_CODE1 = fnarray2 fnmisc gsubasgn mixed1 noparms paramdup synerr1 synerr2 unterm
# List of the files that appear in manual tests or are for reserve testing:
-GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk switch2.awk
+GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk
CMP = cmp
AWKPROG = ../gawk$(EXEEXT)
all: all-am
@@ -1620,6 +1643,17 @@ 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 $@
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk $(srcdir)/$@.awk . ./no/such/file $(srcdir)/Makefile >_$@ 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: $$? >>_$@
+ @mv awkvars.out _$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
Gt-dummy:
# file Maketests, generated from Makefile.am by the Gentests program
addcomma:
@@ -2227,8 +2261,8 @@ prtoeval:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
-psx96sub:
- @echo psx96sub
+posix2008sub:
+ @echo posix2008sub
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
@@ -2237,6 +2271,11 @@ rand:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+range1:
+ @echo range1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
rebt8b1:
@echo rebt8b1
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2452,6 +2491,31 @@ getlnhd:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+aadelete1:
+ @echo aadelete1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aadelete2:
+ @echo aadelete2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aarray1:
+ @echo aarray1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aasort:
+ @echo aasort
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aasorti:
+ @echo aasorti
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
backw:
@echo backw
@AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2632,6 +2696,11 @@ strtonum:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+switch2:
+ @echo switch2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
double1:
@echo double1
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/Maketests b/test/Maketests
index e4c19747..dc69aaf2 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -605,8 +605,8 @@ prtoeval:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
-psx96sub:
- @echo psx96sub
+posix2008sub:
+ @echo posix2008sub
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
@@ -615,6 +615,11 @@ rand:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+range1:
+ @echo range1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
rebt8b1:
@echo rebt8b1
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -830,6 +835,31 @@ getlnhd:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+aadelete1:
+ @echo aadelete1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aadelete2:
+ @echo aadelete2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aarray1:
+ @echo aarray1
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aasort:
+ @echo aasort
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+aasorti:
+ @echo aasorti
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
backw:
@echo backw
@AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1010,6 +1040,11 @@ strtonum:
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+switch2:
+ @echo switch2
+ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
double1:
@echo double1
@AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/aadelete1.awk b/test/aadelete1.awk
new file mode 100644
index 00000000..2484a057
--- /dev/null
+++ b/test/aadelete1.awk
@@ -0,0 +1,19 @@
+BEGIN {
+ a[1][1] = 11
+ a[1][2] = 12
+ a[2] = 2
+ delete a[1][1]
+ f(a, a[1])
+ print a[1][1]
+ print length(a), length(a[1])
+ delete a
+ print length(a), length(a[1]), length(a)
+ a[1][1] = 11
+}
+
+function f(c, b) {
+ delete b
+ b[1] = 1
+ print c[1][1], b[1]
+ delete c[2]
+}
diff --git a/test/aadelete1.ok b/test/aadelete1.ok
new file mode 100644
index 00000000..d4b678b5
--- /dev/null
+++ b/test/aadelete1.ok
@@ -0,0 +1,6 @@
+1 1
+1
+1 1
+0 0 1
+gawk: aadelete1.awk:11: fatal: attempt to use scalar `a["1"]' as an array
+EXIT CODE: 2
diff --git a/test/aadelete2.awk b/test/aadelete2.awk
new file mode 100644
index 00000000..54bd49a7
--- /dev/null
+++ b/test/aadelete2.awk
@@ -0,0 +1,10 @@
+BEGIN {
+ a[1][1]=1;
+ b[1][1]=11;
+# delete b[a[1]][1];
+ f(b, a)
+}
+
+function f(arr, s) {
+ delete arr[s[1]][1]
+}
diff --git a/test/aadelete2.ok b/test/aadelete2.ok
new file mode 100644
index 00000000..65a21efb
--- /dev/null
+++ b/test/aadelete2.ok
@@ -0,0 +1,2 @@
+gawk: aadelete2.awk:9: fatal: attempt to use array `a["1"]' in a scalar context
+EXIT CODE: 2
diff --git a/test/aarray1.awk b/test/aarray1.awk
new file mode 100644
index 00000000..a3c4f936
--- /dev/null
+++ b/test/aarray1.awk
@@ -0,0 +1,28 @@
+BEGIN {
+ a[1][1] = 10;
+ a[1][2] = 20;
+ a[1][3] = 30;
+ a[2] = "hello world! we have multi-dimensional array"
+ a[3, "X"] = "Y"
+ print length(a), length(a[1])
+ delete a[2]
+ delete a[3, "X"]
+ a[2][1] = 100;
+ a[2][2] = 200;
+ a[2][3] = 300;
+ for (i in a) {
+ sum[i] = 0
+ for (j in a[i])
+ sum[i] += a[i][j]
+ }
+ print sum[1], sum[2]
+ f(a[1])
+ print a[1][1]
+}
+
+function f(x, i)
+{
+ for (i=1;i<=length(x);i++)
+ print x[i]
+ x[1] = 1001
+}
diff --git a/test/aarray1.ok b/test/aarray1.ok
new file mode 100644
index 00000000..a3354988
--- /dev/null
+++ b/test/aarray1.ok
@@ -0,0 +1,6 @@
+3 3
+60 600
+10
+20
+30
+1001
diff --git a/test/aasort.awk b/test/aasort.awk
new file mode 100644
index 00000000..a072a827
--- /dev/null
+++ b/test/aasort.awk
@@ -0,0 +1,34 @@
+function init(b, a, i)
+{
+ a[1] = "aardvark"
+ a[2] = "animal"
+ a[3] = "zebra"
+ a[4] = "zoo"
+ a[5] = "Iguana"
+ a[6] = "Alligator"
+ a[7] = "Nouns"
+ a[8] = "people"
+ for (i in a)
+ b[IGNORECASE][i] = a[i]
+}
+
+BEGIN {
+
+ for (IGNORECASE = 0; IGNORECASE < 2; IGNORECASE++) {
+ init(b)
+
+ n = asort(b[IGNORECASE])
+
+ for (i = 1; i <= n; i++)
+ printf("b[%d][%d] = \"%s\"\n", IGNORECASE, i, b[IGNORECASE][i])
+
+ print "============"
+ }
+
+ IGNORECASE = 1
+ init(b)
+ b[2][1] = ""
+ n = asort(b[1], b[2])
+ for (i = 1; i <= n; i++)
+ printf("b[2][%d] = \"%s\"\n", i, b[2][i])
+}
diff --git a/test/aasort.ok b/test/aasort.ok
new file mode 100644
index 00000000..ed5f6f2a
--- /dev/null
+++ b/test/aasort.ok
@@ -0,0 +1,26 @@
+b[0][1] = "Alligator"
+b[0][2] = "Iguana"
+b[0][3] = "Nouns"
+b[0][4] = "aardvark"
+b[0][5] = "animal"
+b[0][6] = "people"
+b[0][7] = "zebra"
+b[0][8] = "zoo"
+============
+b[1][1] = "aardvark"
+b[1][2] = "Alligator"
+b[1][3] = "animal"
+b[1][4] = "Iguana"
+b[1][5] = "Nouns"
+b[1][6] = "people"
+b[1][7] = "zebra"
+b[1][8] = "zoo"
+============
+b[2][1] = "aardvark"
+b[2][2] = "Alligator"
+b[2][3] = "animal"
+b[2][4] = "Iguana"
+b[2][5] = "Nouns"
+b[2][6] = "people"
+b[2][7] = "zebra"
+b[2][8] = "zoo"
diff --git a/test/aasorti.awk b/test/aasorti.awk
new file mode 100644
index 00000000..04164372
--- /dev/null
+++ b/test/aasorti.awk
@@ -0,0 +1,35 @@
+function init(b, a, i)
+{
+ delete a
+
+ a["aardvark"] = 1
+ a["animal"] = 2
+ a["zebra"] = 3
+ a["zoo"] = 4
+ a["Iguana"] = 5
+ a["Alligator"] = 6
+ a["Nouns"] = 7
+ a["people"] = 8
+ for (i in a)
+ b[IGNORECASE][i] = a[i]
+}
+
+BEGIN {
+
+ for (IGNORECASE = 0; IGNORECASE < 2; IGNORECASE++) {
+ init(b)
+
+ n = asorti(b[IGNORECASE])
+
+ for (i = 1; i <= n; i++)
+ printf("b[%d][%d] = \"%s\"\n", IGNORECASE, i, b[IGNORECASE][i])
+
+ print "============"
+
+ }
+
+ n = asorti(b)
+ for (i = 1; i <= n; i++)
+ printf("b[%d] = \"%s\"\n", i, b[i])
+
+}
diff --git a/test/aasorti.ok b/test/aasorti.ok
new file mode 100644
index 00000000..7a914241
--- /dev/null
+++ b/test/aasorti.ok
@@ -0,0 +1,20 @@
+b[0][1] = "Alligator"
+b[0][2] = "Iguana"
+b[0][3] = "Nouns"
+b[0][4] = "aardvark"
+b[0][5] = "animal"
+b[0][6] = "people"
+b[0][7] = "zebra"
+b[0][8] = "zoo"
+============
+b[1][1] = "aardvark"
+b[1][2] = "Alligator"
+b[1][3] = "animal"
+b[1][4] = "Iguana"
+b[1][5] = "Nouns"
+b[1][6] = "people"
+b[1][7] = "zebra"
+b[1][8] = "zoo"
+============
+b[1] = "0"
+b[2] = "1"
diff --git a/test/arrayparm.ok b/test/arrayparm.ok
index 4dd199f4..5fe09aa3 100644
--- a/test/arrayparm.ok
+++ b/test/arrayparm.ok
@@ -1,2 +1,2 @@
-gawk: arrayparm.awk:18: fatal: attempt to use array `i (from foo)' in a scalar context
+gawk: arrayparm.awk:13: fatal: attempt to use array `i (from foo)' in a scalar context
EXIT CODE: 2
diff --git a/test/aryprm3.ok b/test/aryprm3.ok
index 63c51312..a855deab 100644
--- a/test/aryprm3.ok
+++ b/test/aryprm3.ok
@@ -1,2 +1,2 @@
-gawk: aryprm3.awk:6: fatal: attempt to use array `a (from arr)' in a scalar context
+gawk: aryprm3.awk:4: fatal: attempt to use array `a (from arr)' in a scalar context
EXIT CODE: 2
diff --git a/test/backgsub.ok b/test/backgsub.ok
index e2e265fa..2d3f17f0 100644
--- a/test/backgsub.ok
+++ b/test/backgsub.ok
@@ -1 +1 @@
-\\x\\y\\z
+\x\y\z
diff --git a/test/badargs.ok b/test/badargs.ok
index aac60786..bbaf2a46 100644
--- a/test/badargs.ok
+++ b/test/badargs.ok
@@ -5,18 +5,17 @@ POSIX options: GNU long options: (standard)
-f progfile --file=progfile
-F fs --field-separator=fs
-v var=val --assign=var=val
-POSIX options: GNU long options: (extensions)
+Short options: GNU long options: (extensions)
-m[fr] val
-b --characters-as-bytes
- -c --compat, --traditional
- -C --copyleft, --copyright
+ -c --traditional
+ -C --copyright
-d [file] --dump-variables[=file]
-e 'program-text' --source='program-text'
-E file --exec=file
-g --gen-pot
- -h --help, --usage
- -l [fatal] --lint[=fatal]
- -L --lint-old
+ -h --help
+ -L [fatal] --lint[=fatal]
-n --non-decimal-data
-N --use-lc-numeric
-O --optimize
@@ -24,6 +23,7 @@ POSIX options: GNU long options: (extensions)
-P --posix
-r --re-interval
-S --sandbox
+ -t --lint-old
-V --version
To report bugs, see node `Bugs' in `gawk.info', which is
diff --git a/test/beginfile1.awk b/test/beginfile1.awk
new file mode 100644
index 00000000..0cd148be
--- /dev/null
+++ b/test/beginfile1.awk
@@ -0,0 +1,19 @@
+BEGINFILE {
+ print "In BEGINFILE:"
+ filename = FILENAME
+ gsub(/.*[/]/, "", filename)
+ printf "\tFILENAME = %s, FNR = %d, ERRNO = \"%s\"\n", filename, FNR, ERRNO
+
+ if (ERRNO != "")
+ nextfile
+}
+
+FNR == 1 { print "processing", filename }
+FNR > 1 { nextfile }
+
+ENDFILE {
+ print "In ENDFILE:"
+ filename = FILENAME
+ gsub(/.*[/]/, "", filename)
+ printf "\tFILENAME = %s, FNR = %d, ERRNO = \"%s\"\n", filename, FNR, ERRNO
+}
diff --git a/test/beginfile1.ok b/test/beginfile1.ok
new file mode 100644
index 00000000..1318c7d5
--- /dev/null
+++ b/test/beginfile1.ok
@@ -0,0 +1,14 @@
+In BEGINFILE:
+ FILENAME = beginfile1.awk, FNR = 0, ERRNO = ""
+processing beginfile1.awk
+In ENDFILE:
+ FILENAME = beginfile1.awk, FNR = 2, ERRNO = ""
+In BEGINFILE:
+ FILENAME = ., FNR = 0, ERRNO = "Is a directory"
+In BEGINFILE:
+ FILENAME = file, FNR = 0, ERRNO = "No such file or directory"
+In BEGINFILE:
+ FILENAME = Makefile, FNR = 0, ERRNO = ""
+processing Makefile
+In ENDFILE:
+ FILENAME = Makefile, FNR = 2, ERRNO = ""
diff --git a/test/concat4.awk b/test/concat4.awk
index e6cf24fb..91820d8b 100644
--- a/test/concat4.awk
+++ b/test/concat4.awk
@@ -1,7 +1,9 @@
{
a = $0
+ print a
print index(a,"b")
getline
a = a $0
+ print a
print index(a,"b")
}
diff --git a/test/concat4.ok b/test/concat4.ok
index 4f1d7cd3..38db1f81 100644
--- a/test/concat4.ok
+++ b/test/concat4.ok
@@ -1,2 +1,4 @@
+foo
0
+foobar
4
diff --git a/test/defref.ok b/test/defref.ok
index e0061a0d..962b3fd0 100644
--- a/test/defref.ok
+++ b/test/defref.ok
@@ -1,3 +1,3 @@
-gawk: defref.awk:2: warning: function `foo' called but never defined
+gawk: warning: function `foo' called but never defined
gawk: defref.awk:1: fatal: function `foo' not defined
EXIT CODE: 2
diff --git a/test/dumpvars.in b/test/dumpvars.in
new file mode 100644
index 00000000..b1e67221
--- /dev/null
+++ b/test/dumpvars.in
@@ -0,0 +1,3 @@
+A
+B
+C
diff --git a/test/dumpvars.ok b/test/dumpvars.ok
new file mode 100644
index 00000000..361c2507
--- /dev/null
+++ b/test/dumpvars.ok
@@ -0,0 +1,24 @@
+ARGC: 1
+ARGIND: 0
+ARGV: array, 1 elements
+BINMODE: 0
+CONVFMT: "%.6g"
+ERRNO: ""
+FIELDWIDTHS: ""
+FILENAME: "-"
+FNR: 3
+FPAT: " "
+FS: " "
+IGNORECASE: 0
+LINT: 0
+NF: 1
+NR: 3
+OFMT: "%.6g"
+OFS: " "
+ORS: "\n"
+RLENGTH: 0
+RS: "\n"
+RSTART: 0
+RT: "\n"
+SUBSEP: "\034"
+TEXTDOMAIN: "messages"
diff --git a/test/fmtspcl.tok b/test/fmtspcl.tok
index 6bfb077d..ba823b83 100644
--- a/test/fmtspcl.tok
+++ b/test/fmtspcl.tok
@@ -1,9 +1,9 @@
gawk: fmtspcl.awk:10: warning: sqrt: called with negative argument -1
-gawk: fmtspcl.awk:6: warning: [s]printf: value positive_nan is out of range for `%x' format
-gawk: fmtspcl.awk:6: warning: [s]printf: value positive_nan is out of range for `%d' format
-gawk: fmtspcl.awk:6: warning: [s]printf: value negative_nan is out of range for `%x' format
-gawk: fmtspcl.awk:6: warning: [s]printf: value negative_nan is out of range for `%d' format
-gawk: fmtspcl.awk:6: warning: [s]printf: value positive_infinity is out of range for `%x' format
-gawk: fmtspcl.awk:6: warning: [s]printf: value positive_infinity is out of range for `%d' format
-gawk: fmtspcl.awk:6: warning: [s]printf: value negative_infinity is out of range for `%x' format
-gawk: fmtspcl.awk:6: warning: [s]printf: value negative_infinity is out of range for `%d' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value positive_nan is out of range for `%x' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value positive_nan is out of range for `%d' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value negative_nan is out of range for `%x' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value negative_nan is out of range for `%d' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value positive_infinity is out of range for `%x' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value positive_infinity is out of range for `%d' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value negative_infinity is out of range for `%x' format
+gawk: fmtspcl.awk:3: warning: [s]printf: value negative_infinity is out of range for `%d' format
diff --git a/test/fnarray.ok b/test/fnarray.ok
index c680c349..04260b0f 100644
--- a/test/fnarray.ok
+++ b/test/fnarray.ok
@@ -1,5 +1,5 @@
gawk: fnarray.awk:5: Num = foo[c]
gawk: fnarray.awk:5: ^ use of non-array as array
-gawk: fnarray.awk:5: fatal: function `foo' called with space between name and `(',
+gawk: fnarray.awk:5: error: function `foo' called with space between name and `(',
or used as a variable or an array
-EXIT CODE: 2
+EXIT CODE: 1
diff --git a/test/fsbs.awk b/test/fsbs.awk
index d2ec52ee..1c6f9d68 100644
--- a/test/fsbs.awk
+++ b/test/fsbs.awk
@@ -1,2 +1,2 @@
BEGIN { FS = "\\" }
-{ print $1, $2 }
+{ print $1, $2}
diff --git a/test/funsmnam.ok b/test/funsmnam.ok
index c0234f3a..f6465258 100644
--- a/test/funsmnam.ok
+++ b/test/funsmnam.ok
@@ -1,2 +1,2 @@
-gawk: funsmnam.awk:6: fatal: function `foo': can't use function name as parameter name
-EXIT CODE: 2
+gawk: funsmnam.awk:6: error: function `foo': can't use function name as parameter name
+EXIT CODE: 1
diff --git a/test/inftest.ok b/test/inftest.ok
index 83a93d01..9086ca72 100644
--- a/test/inftest.ok
+++ b/test/inftest.ok
@@ -1,105 +1,105 @@
100000 100
100000000 100000
-1e+11 100000000
-1e+14 1e+11
-1e+17 1e+14
-1e+20 1e+17
-1e+23 1e+20
-1e+26 1e+23
-1e+29 1e+26
-1e+32 1e+29
-1e+35 1e+32
-1e+38 1e+35
-1e+41 1e+38
-1e+44 1e+41
-1e+47 1e+44
-1e+50 1e+47
-1e+53 1e+50
-1e+56 1e+53
-1e+59 1e+56
-1e+62 1e+59
-1e+65 1e+62
-1e+68 1e+65
-1e+71 1e+68
-1e+74 1e+71
-1e+77 1e+74
-1e+80 1e+77
-1e+83 1e+80
-1e+86 1e+83
-1e+89 1e+86
-1e+92 1e+89
-1e+95 1e+92
-1e+98 1e+95
-1e+101 1e+98
-1e+104 1e+101
-1e+107 1e+104
-1e+110 1e+107
-1e+113 1e+110
-1e+116 1e+113
-1e+119 1e+116
-1e+122 1e+119
-1e+125 1e+122
-1e+128 1e+125
-1e+131 1e+128
-1e+134 1e+131
-1e+137 1e+134
-1e+140 1e+137
-1e+143 1e+140
-1e+146 1e+143
-1e+149 1e+146
-1e+152 1e+149
-1e+155 1e+152
-1e+158 1e+155
-1e+161 1e+158
-1e+164 1e+161
-1e+167 1e+164
-1e+170 1e+167
-1e+173 1e+170
-1e+176 1e+173
-1e+179 1e+176
-1e+182 1e+179
-1e+185 1e+182
-1e+188 1e+185
-1e+191 1e+188
-1e+194 1e+191
-1e+197 1e+194
-1e+200 1e+197
-1e+203 1e+200
-1e+206 1e+203
-1e+209 1e+206
-1e+212 1e+209
-1e+215 1e+212
-1e+218 1e+215
-1e+221 1e+218
-1e+224 1e+221
-1e+227 1e+224
-1e+230 1e+227
-1e+233 1e+230
-1e+236 1e+233
-1e+239 1e+236
-1e+242 1e+239
-1e+245 1e+242
-1e+248 1e+245
-1e+251 1e+248
-1e+254 1e+251
-1e+257 1e+254
-1e+260 1e+257
-1e+263 1e+260
-1e+266 1e+263
-1e+269 1e+266
-1e+272 1e+269
-1e+275 1e+272
-1e+278 1e+275
-1e+281 1e+278
-1e+284 1e+281
-1e+287 1e+284
-1e+290 1e+287
-1e+293 1e+290
-1e+296 1e+293
-1e+299 1e+296
-1e+302 1e+299
-1e+305 1e+302
-1e+308 1e+305
-Inf 1e+308
+100000000000 100000000
+100000000000000 100000000000
+100000000000000000 100000000000000
+100000000000000000000 100000000000000000
+99999999999999991611392 100000000000000000000
+99999999999999987584860160 99999999999999991611392
+99999999999999991433150857216 99999999999999987584860160
+99999999999999987351763694911488 99999999999999991433150857216
+99999999999999978416622034208423936 99999999999999987351763694911488
+99999999999999978859343891977453174784 99999999999999978416622034208423936
+99999999999999981277195531206711524196352 99999999999999978859343891977453174784
+99999999999999989014320776740338242315878400 99999999999999981277195531206711524196352
+99999999999999984102174700855949311516153479168 99999999999999989014320776740338242315878400
+99999999999999986860582406952576489172979654066176 99999999999999984102174700855949311516153479168
+99999999999999978054446934877508831185257879708893184 99999999999999986860582406952576489172979654066176
+99999999999999987412212025203316576428059584082518999040 99999999999999978054446934877508831185257879708893184
+99999999999999986018415450295152630082077192041996404916224 99999999999999987412212025203316576428059584082518999040
+99999999999999980666236602647803076113504806606389643480924160 99999999999999986018415450295152630082077192041996404916224
+99999999999999975825012428989187159563798798233702140870647611392 99999999999999980666236602647803076113504806606389643480924160
+99999999999999971335279399108653394842078992129280704487622839369728 99999999999999975825012428989187159563798798233702140870647611392
+99999999999999967408259575639813195298814735056613421464603838774247424 99999999999999971335279399108653394842078992129280704487622839369728
+99999999999999970056411870256069142542038397972347690757785041907511984128 99999999999999967408259575639813195298814735056613421464603838774247424
+99999999999999972567252564410741448076354167255414257198727219693125789286400 99999999999999970056411870256069142542038397972347690757785041907511984128
+99999999999999973698536947569070602057895480263592729374358127316211945338568704 99999999999999972567252564410741448076354167255414257198727219693125789286400
+99999999999999976120719655945885896110010116988012672708945321528841504187721187328 99999999999999973698536947569070602057895480263592729374358127316211945338568704
+99999999999999973856084135905232153357980849678363696123425190035433415775017926393856 99999999999999976120719655945885896110010116988012672708945321528841504187721187328
+99999999999999971205813538737655658983034598563985922382199344722004978592608624454926336 99999999999999973856084135905232153357980849678363696123425190035433415775017926393856
+99999999999999975389707388132869751436283080323216967861681212523470671424572109115849965568 99999999999999971205813538737655658983034598563985922382199344722004978592608624454926336
+99999999999999972379113067962648670423437470097331363676661611216816006398674924910108594929664 99999999999999975389707388132869751436283080323216967861681212523470671424572109115849965568
+99999999999999969414835583487354067580020253874920922632950003776417566988560774307532476147302400 99999999999999972379113067962648670423437470097331363676661611216816006398674924910108594929664
+99999999999999966622249050912868528133293762816112494334490172638967005189080435307857566164815183872 99999999999999969414835583487354067580020253874920922632950003776417566988560774307532476147302400
+99999999999999968362880378347121775677131631329985434686086700429684016230704354433915805708681998237696 99999999999999966622249050912868528133293762816112494334490172638967005189080435307857566164815183872
+99999999999999964288808425678149603140240254511229112583149913097811514958423455725153206182008585870901248 99999999999999968362880378347121775677131631329985434686086700429684016230704354433915805708681998237696
+99999999999999968982139315152805545902739120606436395645733092104128636424091051037647720836736356917448802304 99999999999999964288808425678149603140240254511229112583149913097811514958423455725153206182008585870901248
+99999999999999967380149038212122984106472840979272309693704700336639058963809845170982926501255944400227237101568 99999999999999968982139315152805545902739120606436395645733092104128636424091051037647720836736356917448802304
+99999999999999966559930016418493512466784505810164297686266163751684395304145867767250551801489973191409795717922816 99999999999999967380149038212122984106472840979272309693704700336639058963809845170982926501255944400227237101568
+99999999999999958580839372410066012355896381285081556877904079853245427222934695583742010722166605272033725937822466048 99999999999999966559930016418493512466784505810164297686266163751684395304145867767250551801489973191409795717922816
+99999999999999964744616902883383199809977537409440210268672488243000947267704701436097240209969526960208587421285248663552 99999999999999958580839372410066012355896381285081556877904079853245427222934695583742010722166605272033725937822466048
+99999999999999973698435499708622381138622312668787627138462205955970454339251530402644148459414217665561018763215928972804096 99999999999999964744616902883383199809977537409440210268672488243000947267704701436097240209969526960208587421285248663552
+99999999999999969038927015485337257005892808638742964825108028921863830855986242882741442632031065833582205967834822157445103616 99999999999999973698435499708622381138622312668787627138462205955970454339251530402644148459414217665561018763215928972804096
+99999999999999971501552402759992207773332814897718827642591733325954247602754580648099053350606729046973846898142049707859353010176 99999999999999969038927015485337257005892808638742964825108028921863830855986242882741442632031065833582205967834822157445103616
+99999999999999971974376477116725958320681296099442193303548604571539607618134101499047714608573256383945041956761037397538888893857792 99999999999999971501552402759992207773332814897718827642591733325954247602754580648099053350606729046973846898142049707859353010176
+99999999999999961968158199529955173403994504587771180275938657358298495399329094904038179293313627194069297996226940583414097499461255168 99999999999999971974376477116725958320681296099442193303548604571539607618134101499047714608573256383945041956761037397538888893857792
+99999999999999963620798121505576670783782774669698779846950364769001543610951083090052657384091991757042324095515152702392127562019650928640 99999999999999961968158199529955173403994504587771180275938657358298495399329094904038179293313627194069297996226940583414097499461255168
+99999999999999959051579265227378354828144165547185352553017196119889755915458610153359828358707969413334501536203103835841670045058198329622528 99999999999999963620798121505576670783782774669698779846950364769001543610951083090052657384091991757042324095515152702392127562019650928640
+99999999999999949000651624039424488856392748028506927595932797882554670922470130425357587563315085893427279408697133232798530309970250449591205888 99999999999999959051579265227378354828144165547185352553017196119889755915458610153359828358707969413334501536203103835841670045058198329622528
+99999999999999948113397321920763733791300209102720142496272933762293366867916664628678769065514886520635469455372468241633342802321107464319475384320 99999999999999949000651624039424488856392748028506927595932797882554670922470130425357587563315085893427279408697133232798530309970250449591205888
+99999999999999946478010192255648230055321641354709940200579872215827731234563716472240370810369559036705605349404445729917669188222207113866621719937024 99999999999999948113397321920763733791300209102720142496272933762293366867916664628678769065514886520635469455372468241633342802321107464319475384320
+99999999999999941174994859794900356607455139003828857556412504641155163420811223250296124735018310448815699341785471398594311548904172910798168237564493824 99999999999999946478010192255648230055321641354709940200579872215827731234563716472240370810369559036705605349404445729917669188222207113866621719937024
+99999999999999946510014354963832392659989467263634555857239408609611720064878292922562279944578696396604449694432883048689164539589319460636017298848184532992 99999999999999941174994859794900356607455139003828857556412504641155163420811223250296124735018310448815699341785471398594311548904172910798168237564493824
+99999999999999941339618318502970259434219055418702861961123734820753251454399578543040337524341888072347466495524305815225809869759600290050307580026961994448896 99999999999999946510014354963832392659989467263634555857239408609611720064878292922562279944578696396604449694432883048689164539589319460636017298848184532992
+99999999999999936244924684387270937819452376396255450979411565991520333252255420434433659770484396036007906295905408882388258279623991724679211271428480374583328768 99999999999999941339618318502970259434219055418702861961123734820753251454399578543040337524341888072347466495524305815225809869759600290050307580026961994448896
+99999999999999938393087270819114040015608114939367394621582908707281601350665380747521463661052072678153904384780012012657644738335288324478035879665769565830174998528 99999999999999936244924684387270937819452376396255450979411565991520333252255420434433659770484396036007906295905408882388258279623991724679211271428480374583328768
+99999999999999936402865781218259783047588779268187110073864544713098209344824228945072115447009943309125688250630284464918540788778765150873943899767450589406430224187392 99999999999999938393087270819114040015608114939367394621582908707281601350665380747521463661052072678153904384780012012657644738335288324478035879665769565830174998528
+99999999999999932755942024273873371963453979756196963399477041511967210604015516252752299267005165619015879149232552133229875362054559318652887774917983563976477694532517888 99999999999999936402865781218259783047588779268187110073864544713098209344824228945072115447009943309125688250630284464918540788778765150873943899767450589406430224187392
+99999999999999930449370010469988507729535311264848842396946780663816593047475793966409789645392732105835839886983821660858314734516991018179899807013191242951604188717858684928 99999999999999932755942024273873371963453979756196963399477041511967210604015516252752299267005165619015879149232552133229875362054559318652887774917983563976477694532517888
+99999999999999926062929060790372034489260266271016529998992090319447875774239110669868148490692058544771170935690235939685426866834118273051840402906249046168301887374323926171648 99999999999999930449370010469988507729535311264848842396946780663816593047475793966409789645392732105835839886983821660858314734516991018179899807013191242951604188717858684928
+99999999999999932742916262928110023686347842483162394048718371574133692602240984883924588271717248394482781662747380635887994975485943351991473842104185224408145227922919218275680256 99999999999999926062929060790372034489260266271016529998992090319447875774239110669868148490692058544771170935690235939685426866834118273051840402906249046168301887374323926171648
+99999999999999937578305619730709881245839649374381910536023685232697991459255307073630546336657965129832648296622676548394350483652119629822535399195325784877482862571061024201468018688 99999999999999932742916262928110023686347842483162394048718371574133692602240984883924588271717248394482781662747380635887994975485943351991473842104185224408145227922919218275680256
+99999999999999940476708761993653639767353567573372418760219182512524240452181745662269903053828283531977973233064610020242062507278752512846344394977566526684664367671371585724203629805568 99999999999999937578305619730709881245839649374381910536023685232697991459255307073630546336657965129832648296622676548394350483652119629822535399195325784877482862571061024201468018688
+99999999999999943939334382617117116614388861848433079252058069929489999249064530962831054545274423916407588090467239874609462471504703263765454875272083466230310539097875936556698439887355904 99999999999999940476708761993653639767353567573372418760219182512524240452181745662269903053828283531977973233064610020242062507278752512846344394977566526684664367671371585724203629805568
+99999999999999945838831865930559938199048223279323498721866831026796929789068801756281743363439163784437548240813825394719579023308653389983938338747932758781065010280415466156238449989365268480 99999999999999943939334382617117116614388861848433079252058069929489999249064530962831054545274423916407588090467239874609462471504703263765454875272083466230310539097875936556698439887355904
+99999999999999945320142419820435818384997240317928354845311051996492317289611635544950141936825645484474167122425851108694843196896054742184544454321460845295205656016170005273590724564176578019328 99999999999999945838831865930559938199048223279323498721866831026796929789068801756281743363439163784437548240813825394719579023308653389983938338747932758781065010280415466156238449989365268480
+99999999999999945984064910841394691746982498508514139007302449155282221288916808295454591762890948908427294953962458194806505054704181011367768626387344894557105629474404195203379813108418101808988160 99999999999999945320142419820435818384997240317928354845311051996492317289611635544950141936825645484474167122425851108694843196896054742184544454321460845295205656016170005273590724564176578019328
+99999999999999946663921541646856578069655402895673981989181639845883082984205305191971148384781819614555297853455943850984846797099702311011390178582810161001291202295636005691483839777721422169600163840 99999999999999945984064910841394691746982498508514139007302449155282221288916808295454591762890948908427294953962458194806505054704181011367768626387344894557105629474404195203379813108418101808988160
+99999999999999950423256767348738624679507494994913049741780812688629607814472577630949099881189578271160702686495122135388605295849976889520759913602854898331059745767919424966503865648301062435640300273664 99999999999999946663921541646856578069655402895673981989181639845883082984205305191971148384781819614555297853455943850984846797099702311011390178582810161001291202295636005691483839777721422169600163840
+99999999999999952561900806859142633417556685166924608285481675461392075273469070396234334510257103195807332991512965781627187908472355316406090251747591460011994739387707325709626369254675257786987577889259520 99999999999999950423256767348738624679507494994913049741780812688629607814472577630949099881189578271160702686495122135388605295849976889520759913602854898331059745767919424966503865648301062435640300273664
+99999999999999953583887505206514362393179124843789865061564861085069499723208194405671971965000837773131802726604159332043065252957502554000360109335689571620590875005483303878073176311374606605551396952498765824 99999999999999952561900806859142633417556685166924608285481675461392075273469070396234334510257103195807332991512965781627187908472355316406090251747591460011994739387707325709626369254675257786987577889259520
+99999999999999952387871071940561618997707835439092695988754367280903005281456350993484382532249312964925794716623151108470655652097170243947180298855446753006645226008223187712942284395877311531026424700205065568256 99999999999999953583887505206514362393179124843789865061564861085069499723208194405671971965000837773131802726604159332043065252957502554000360109335689571620590875005483303878073176311374606605551396952498765824
+99999999999999949479159106237764547059921659606869180803679246349170090799115867815044165031797604631368783236349339108742555502804842065897846999767496218137529407646886585199343955257387889909781692182626786546286592 99999999999999952387871071940561618997707835439092695988754367280903005281456350993484382532249312964925794716623151108470655652097170243947180298855446753006645226008223187712942284395877311531026424700205065568256
+99999999999999944462702596124645891625322848571590225772913900944379346496098343983932109923650153122211091016053956392579903624277946816512554707950971843053782716275082490927470794772649923189521302964942310388818509824 99999999999999949479159106237764547059921659606869180803679246349170090799115867815044165031797604631368783236349339108742555502804842065897846999767496218137529407646886585199343955257387889909781692182626786546286592
+99999999999999935312685921678317464112614617243241411796797910926041028887394380515983721406389201569507460406235178318299226597844889881633781567677631382901028751212911822975574150048487871891766353031885825877596727934976 99999999999999944462702596124645891625322848571590225772913900944379346496098343983932109923650153122211091016053956392579903624277946816512554707950971843053782716275082490927470794772649923189521302964942310388818509824
+99999999999999925121172612428343793833196719162992122293014542956141676109475130820315172455795108724278546368407554066019724438999593062658631582946511398090887633074892676187328287237126462895417822131010561164466052696899584 99999999999999935312685921678317464112614617243241411796797910926041028887394380515983721406389201569507460406235178318299226597844889881633781567677631382901028751212911822975574150048487871891766353031885825877596727934976
+99999999999999923774577821631960175979503309145679183912127553433409168077915219634719740955742418263179913081344910551912084411817969328125656926899457609130167051788011178598791027428244645758351900112623945543014980252539551744 99999999999999925121172612428343793833196719162992122293014542956141676109475130820315172455795108724278546368407554066019724438999593062658631582946511398090887633074892676187328287237126462895417822131010561164466052696899584
+99999999999999931186235550175255608646231837880969596760529543766528892283620970800236995932032426561066790693337700453560535121425626362995149433782441663569973131191006941326100105416330167280762734901823877923481682986297169281024 99999999999999923774577821631960175979503309145679183912127553433409168077915219634719740955742418263179913081344910551912084411817969328125656926899457609130167051788011178598791027428244645758351900112623945543014980252539551744
+99999999999999926244211122435874988985291364022870835895660198026268224087667591790522792799935051725787428951685205754489270499428632351279379918495257505223505226338851255072206945321576956278656608039592704406906303898336741140987904 99999999999999931186235550175255608646231837880969596760529543766528892283620970800236995932032426561066790693337700453560535121425626362995149433782441663569973131191006941326100105416330167280762734901823877923481682986297169281024
+99999999999999929678212096225067465275407716143698317730906554837786494102684339719558490519152427611330116881884882071101074945341972190277308907403380897537393781938977720492054992564559758894977208190720194118995253024599530065721556992 99999999999999926244211122435874988985291364022870835895660198026268224087667591790522792799935051725787428951685205754489270499428632351279379918495257505223505226338851255072206945321576956278656608039592704406906303898336741140987904
+99999999999999934027464697975758399456742447587676871566873309064753633557492919833469807883112792522366919110954619485992994007787162184258685917355227282413257687305369471221698329872724925324405572508442926352243067328514674943868432023552 99999999999999929678212096225067465275407716143698317730906554837786494102684339719558490519152427611330116881884882071101074945341972190277308907403380897537393781938977720492054992564559758894977208190720194118995253024599530065721556992
+99999999999999931658510089362616103392015444928828978413665885485809829939554629388445771191253529932525597045759188042988033837604250187536914609806987549374489262254739070824275575934660494247950974071555650923069789750211957733643751155302400 99999999999999934027464697975758399456742447587676871566873309064753633557492919833469807883112792522366919110954619485992994007787162184258685917355227282413257687305369471221698329872724925324405572508442926352243067328514674943868432023552
+99999999999999930008959616293112859796224738437420013453224492299319680604311838985766633961978088205967287665322305220594819971902484905979610812934997258464934032523484110419542163912507469600794108087982303296227853106888209685820101373122838528 99999999999999931658510089362616103392015444928828978413665885485809829939554629388445771191253529932525597045759188042988033837604250187536914609806987549374489262254739070824275575934660494247950974071555650923069789750211957733643751155302400
+99999999999999928518542247684432282053204429513417560406613915867290933910821882480757719383056277328324015189821686388126598502656654628054893970584775442678418248483950216783265386932491560272539433881647796263975373880920399684962968393459422986240 99999999999999930008959616293112859796224738437420013453224492299319680604311838985766633961978088205967287665322305220594819971902484905979610812934997258464934032523484110419542163912507469600794108087982303296227853106888209685820101373122838528
+99999999999999928518542247684432282053204429513417560406613915867290933910821882480757719383056277328324015189821686388126598502656654628054893970584775442678418248483950216783265386932491560272539433881647796263975373880920399684962968393459422986240000 99999999999999928518542247684432282053204429513417560406613915867290933910821882480757719383056277328324015189821686388126598502656654628054893970584775442678418248483950216783265386932491560272539433881647796263975373880920399684962968393459422986240
+99999999999999922996592795455802961330827165322375947146110930199429488582670882113664381815329718099637973843065789366637766292469752383803230100767176235502514017647481584860713016397448254045302728360926807035301219893389307418875317674924228479494914048 99999999999999928518542247684432282053204429513417560406613915867290933910821882480757719383056277328324015189821686388126598502656654628054893970584775442678418248483950216783265386932491560272539433881647796263975373880920399684962968393459422986240000
+99999999999999924596916259346967987109991595095477818460852927555247447077772756937033318891561415264781702052238819144940944834893730090816542497755823854789719470206880795923550835480811748076441516979762172970252823766002091894481097203918579189374244618240 99999999999999922996592795455802961330827165322375947146110930199429488582670882113664381815329718099637973843065789366637766292469752383803230100767176235502514017647481584860713016397448254045302728360926807035301219893389307418875317674924228479494914048
+99999999999999917714245105843845444238961215527321290310410545327345571182038613696688194314104132096931555770227452674414634559636686768493688540787048173759306259839416668984497943167082032947319814887875031157212965830669028421795760605619675656325219701751808 99999999999999924596916259346967987109991595095477818460852927555247447077772756937033318891561415264781702052238819144940944834893730090816542497755823854789719470206880795923550835480811748076441516979762172970252823766002091894481097203918579189374244618240
+99999999999999917154891513686131358215156841822734601038501577120887513966385299198425225459555222734718972453340179716809956645203098485790624854125458785078739344965108473271355866839363046574921352749613726933677028169892754057031491980488082226337743391078481920 99999999999999917714245105843845444238961215527321290310410545327345571182038613696688194314104132096931555770227452674414634559636686768493688540787048173759306259839416668984497943167082032947319814887875031157212965830669028421795760605619675656325219701751808
+99999999999999916696669050990531978944456298883937185186953750366157073495322103961448201373908756185194424200146125709940204497699102964600275082012284757871618928300075199343149877911695652938652532565950066513756388038184830097416603122780280888492002797374893195264 99999999999999917154891513686131358215156841822734601038501577120887513966385299198425225459555222734718972453340179716809956645203098485790624854125458785078739344965108473271355866839363046574921352749613726933677028169892754057031491980488082226337743391078481920
+99999999999999916462059150090385096757857620899272908270961263067735087974137748000115965042057765311837855494510770058422891398177057257750815998690339655941573274967578163091908411580729947396882896631914272378757020290750373030093780027633886603514983613398655768199168 99999999999999916696669050990531978944456298883937185186953750366157073495322103961448201373908756185194424200146125709940204497699102964600275082012284757871618928300075199343149877911695652938652532565950066513756388038184830097416603122780280888492002797374893195264
+99999999999999919104705073829639577707705129718531323452700639997160332884758333548562275084027326509326245394787416117113906151193380099703123113228729284081607514104824779425892288332727654619376075792893457515389898597852097436418059371362871829496127701706994146657435648 99999999999999916462059150090385096757857620899272908270961263067735087974137748000115965042057765311837855494510770058422891398177057257750815998690339655941573274967578163091908411580729947396882896631914272378757020290750373030093780027633886603514983613398655768199168
+99999999999999917628667205152005074893535757519847350463918209828579541545589890129502808820585418873201821072305623991241397547326808505070852666708377840873210208172166305720801657535975480694376249177888356289983316387049097913467480072465518626911750494564591328725835972608 99999999999999919104705073829639577707705129718531323452700639997160332884758333548562275084027326509326245394787416117113906151193380099703123113228729284081607514104824779425892288332727654619376075792893457515389898597852097436418059371362871829496127701706994146657435648
+99999999999999922666876463571664177832567214624688644932295571470668642649951510333225786999800463604506522759710141114219560248524706214749002457497844100357873012422307229300844343988889567691708990690439101806037783666590002951805457412701817558399758028277326280599029531279360 99999999999999917628667205152005074893535757519847350463918209828579541545589890129502808820585418873201821072305623991241397547326808505070852666708377840873210208172166305720801657535975480694376249177888356289983316387049097913467480072465518626911750494564591328725835972608
+99999999999999925375417760898072911572590525964251324838495241089455743403656317354747260068946471652055930386858809519532620516688696023471975785026261161456827735987182989817475292225976180861475072527586382595468665276071193500415954030812851863967710878401292590726058388421083136 99999999999999922666876463571664177832567214624688644932295571470668642649951510333225786999800463604506522759710141114219560248524706214749002457497844100357873012422307229300844343988889567691708990690439101806037783666590002951805457412701817558399758028277326280599029531279360
+99999999999999922998092370787579302987061493839926595503682273926908893827833126734714698563684604017178278892401463993497843047031616968501411767264176243829402332903954893729735214230453302102183242983667397856859617189120845681749826713430824039194924833949628446523134774381262143488 99999999999999925375417760898072911572590525964251324838495241089455743403656317354747260068946471652055930386858809519532620516688696023471975785026261161456827735987182989817475292225976180861475072527586382595468665276071193500415954030812851863967710878401292590726058388421083136
+99999999999999919617007371519321726332086870374220313783059387295731152208884588964001722200645503380907841211395461467581715090185993423654387386446988805425952870741141601516060436636820763422301529854538175117504526576569239895202445639820828910629184681840594996990087856635738954137600 99999999999999922998092370787579302987061493839926595503682273926908893827833126734714698563684604017178278892401463993497843047031616968501411767264176243829402332903954893729735214230453302102183242983667397856859617189120845681749826713430824039194924833949628446523134774381262143488
+99999999999999921555856753499711351089115518454394923972933375405513716362854438463239371366266645249770760995191543556043059505759547789211465047382796770104026930323785255803070101100113406402892899431306036605160309737430832717440175842671744517153922714665999138290318281147731771838693376 99999999999999919617007371519321726332086870374220313783059387295731152208884588964001722200645503380907841211395461467581715090185993423654387386446988805425952870741141601516060436636820763422301529854538175117504526576569239895202445639820828910629184681840594996990087856635738954137600
+99999999999999925526620287795549302591510189722592525641795303054348407750184690237678076857458743797202020712405919673211892868854187129872360096979331481764722604349039459782865893920936739227144024324526616931879353650875374817383047298110419679316586205892426819673190190548293062490532610048 99999999999999921555856753499711351089115518454394923972933375405513716362854438463239371366266645249770760995191543556043059505759547789211465047382796770104026930323785255803070101100113406402892899431306036605160309737430832717440175842671744517153922714665999138290318281147731771838693376
+99999999999999930899630601631288884967321950615787908928575328581457293010297853781604279487826109145954719575470858327758062813887390534835216941233385308743309664972926291225241001006485111871616403608610236482548322786324903784620029930384009841602978861449101533681556294240023997498278499319808 99999999999999925526620287795549302591510189722592525641795303054348407750184690237678076857458743797202020712405919673211892868854187129872360096979331481764722604349039459782865893920936739227144024324526616931879353650875374817383047298110419679316586205892426819673190190548293062490532610048
+99999999999999931494437365022402110086546949875748132981079409245215076632606597507980542351987858564022045373933398563677552329964579755017051039451347591859641897413884141538429337185469061448690967542329331230644001099265478667047129413135161876865818437588564766886374336421681562627784638845681664 99999999999999930899630601631288884967321950615787908928575328581457293010297853781604279487826109145954719575470858327758062813887390534835216941233385308743309664972926291225241001006485111871616403608610236482548322786324903784620029930384009841602978861449101533681556294240023997498278499319808
+99999999999999935453471182153651736480108544950043384274546570143186884422693595750740947975848462690678165888500066373957674548974351204547338797190104548281949236540899593223010902792786229833699265085163625873968835950197945084481903570326829823575278656372832047097643225182794316129777503529896771584 99999999999999931494437365022402110086546949875748132981079409245215076632606597507980542351987858564022045373933398563677552329964579755017051039451347591859641897413884141538429337185469061448690967542329331230644001099265478667047129413135161876865818437588564766886374336421681562627784638845681664
+99999999999999941222697076902451192049310918572154864313272869839431340328494218420806572909572715350322284890650139835338184957968282769155167357390336223856117715957990417585527301167018263517206741135275385698826195289895225377703777542160595791457125916730459689891664596620526624002220028805109925281792 99999999999999935453471182153651736480108544950043384274546570143186884422693595750740947975848462690678165888500066373957674548974351204547338797190104548281949236540899593223010902792786229833699265085163625873968835950197945084481903570326829823575278656372832047097643225182794316129777503529896771584
+Inf 99999999999999941222697076902451192049310918572154864313272869839431340328494218420806572909572715350322284890650139835338184957968282769155167357390336223856117715957990417585527301167018263517206741135275385698826195289895225377703777542160595791457125916730459689891664596620526624002220028805109925281792
Inf Inf
loop terminated
diff --git a/test/nofile.ok b/test/nofile.ok
index 2dee4572..eff8c043 100644
--- a/test/nofile.ok
+++ b/test/nofile.ok
@@ -1,2 +1,2 @@
-gawk: cmd. line:1: fatal: cannot open file `no/such/file' for reading (No such file or directory)
+gawk: fatal: cannot open file `no/such/file' for reading (No such file or directory)
EXIT CODE: 2
diff --git a/test/paramres.ok b/test/paramres.ok
index 6c3d00a3..fdd7483c 100644
--- a/test/paramres.ok
+++ b/test/paramres.ok
@@ -1,2 +1,2 @@
-gawk: paramres.awk:7: fatal: function `foo': can't use special variable `FS' as a function parameter
-EXIT CODE: 2
+gawk: paramres.awk:6: error: function `foo': can't use special variable `FS' as a function parameter
+EXIT CODE: 1
diff --git a/test/parseme.ok b/test/parseme.ok
index 5e6552a3..b13fcaca 100644
--- a/test/parseme.ok
+++ b/test/parseme.ok
@@ -1,4 +1,5 @@
gawk: parseme.awk:1: BEGIN { toupper(substr*line,1,12)) }
gawk: parseme.awk:1: ^ syntax error
-gawk: parseme.awk:1: fatal: 0 is invalid as number of arguments for toupper
-EXIT CODE: 2
+gawk: parseme.awk:1: BEGIN { toupper(substr*line,1,12)) }
+gawk: parseme.awk:1: ^ 2 is invalid as number of arguments for toupper
+EXIT CODE: 1
diff --git a/test/psx96sub.awk b/test/posix2008sub.awk
index 3c7c9b77..3c7c9b77 100644
--- a/test/psx96sub.awk
+++ b/test/posix2008sub.awk
diff --git a/test/psx96sub.ok b/test/posix2008sub.ok
index d6b89ee4..4d4406a4 100644
--- a/test/psx96sub.ok
+++ b/test/posix2008sub.ok
@@ -1,2 +1,2 @@
orig = "here is some text", repl = "<FOO&BAR \q \ \\ \& \\& \\\&>"
-result is "here is <FOOsomeBAR \q \ \\ & \some \&> text"
+result is "here is <FOOsomeBAR \q \ \ & \some \&> text"
diff --git a/test/range1.awk b/test/range1.awk
new file mode 100755
index 00000000..aca5db50
--- /dev/null
+++ b/test/range1.awk
@@ -0,0 +1 @@
+/foo/,/bar/ { print }
diff --git a/test/range1.in b/test/range1.in
new file mode 100644
index 00000000..c4960197
--- /dev/null
+++ b/test/range1.in
@@ -0,0 +1,2 @@
+foobar
+junk
diff --git a/test/range1.ok b/test/range1.ok
new file mode 100644
index 00000000..323fae03
--- /dev/null
+++ b/test/range1.ok
@@ -0,0 +1 @@
+foobar
diff --git a/test/reg/func2.good b/test/reg/func2.good
index a6515c97..55ea9acd 100644
--- a/test/reg/func2.good
+++ b/test/reg/func2.good
@@ -1,2 +1,2 @@
-gawk: reg/func2.awk:2: fatal: function `dummy' called with space between name and `(',
+gawk: reg/func2.awk:2: error: function `dummy' called with space between name and `(',
or used as a variable or an array
diff --git a/test/sclifin.ok b/test/sclifin.ok
index 5bc93016..a3ceeba0 100644
--- a/test/sclifin.ok
+++ b/test/sclifin.ok
@@ -1,2 +1,2 @@
-gawk: sclifin.awk:7: fatal: attempt to use scalar `j' as array
+gawk: sclifin.awk:3: fatal: attempt to use scalar `j' as array
EXIT CODE: 2
diff --git a/test/shadow.ok b/test/shadow.ok
index f543a883..552c63e6 100644
--- a/test/shadow.ok
+++ b/test/shadow.ok
@@ -1,7 +1,7 @@
-gawk: shadow.awk:22: warning: function `bar': parameter `A' shadows global variable
-gawk: shadow.awk:22: warning: function `bar': parameter `Z' shadows global variable
-gawk: shadow.awk:22: warning: function `baz': parameter `C' shadows global variable
-gawk: shadow.awk:22: warning: function `baz': parameter `D' shadows global variable
+gawk: shadow.awk:6: warning: function `bar': parameter `A' shadows global variable
+gawk: shadow.awk:6: warning: function `bar': parameter `Z' shadows global variable
+gawk: shadow.awk:11: warning: function `baz': parameter `C' shadows global variable
+gawk: shadow.awk:11: warning: function `baz': parameter `D' shadows global variable
foo
bar
baz
diff --git a/test/switch2.ok b/test/switch2.ok
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/switch2.ok
diff --git a/test/uninit3.ok b/test/uninit3.ok
index a98ddb04..97876723 100644
--- a/test/uninit3.ok
+++ b/test/uninit3.ok
@@ -1,3 +1,3 @@
-gawk: uninit3.awk:8: warning: function `f': parameter `x' shadows global variable
-gawk: uninit3.awk:2: warning: reference to uninitialized variable `x'
+gawk: uninit3.awk:1: warning: function `f': parameter `x' shadows global variable
+gawk: uninit3.awk:2: warning: reference to uninitialized argument `x'
diff --git a/test/uninit5.ok b/test/uninit5.ok
index 88663131..1d2a583c 100644
--- a/test/uninit5.ok
+++ b/test/uninit5.ok
@@ -1,10 +1,9 @@
-gawk: uninit5.awk:75: warning: `length(array)' is a gawk extension
-gawk: uninit5.awk:75: warning: length: untyped parameter argument will be forced to scalar
+gawk: uninit5.awk:75: warning: reference to uninitialized argument `a'
length: 0
-gawk: uninit5.awk:77: warning: length: untyped parameter argument will be forced to scalar
+gawk: uninit5.awk:77: warning: reference to uninitialized argument `a'
-gawk: uninit5.awk:97: warning: length: untyped parameter argument will be forced to scalar
+gawk: uninit5.awk:97: warning: reference to uninitialized argument `a'
length: 0
diff --git a/test/unterm.ok b/test/unterm.ok
index a8e7e598..760d3703 100644
--- a/test/unterm.ok
+++ b/test/unterm.ok
@@ -1,3 +1,5 @@
gawk: unterm.awk:1: BEGIN{x=".........................................................................................................................................................................................................................................................}
gawk: unterm.awk:1: ^ unterminated string
+gawk: unterm.awk:1: BEGIN{x=".........................................................................................................................................................................................................................................................}
+gawk: unterm.awk:1: ^ syntax error
EXIT CODE: 1