diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2020-01-24 09:36:43 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2020-01-24 09:36:43 +0200 |
commit | c0dfb9269380ff5a90dbf6606f64989848304527 (patch) | |
tree | 2d21a4e0bc3d75b8a98cc6b0b3db8e7fafd90dbd /test | |
parent | 1ef484e65a03a8360434c404c9a3006671bab2f7 (diff) | |
download | egawk-c0dfb9269380ff5a90dbf6606f64989848304527.tar.gz egawk-c0dfb9269380ff5a90dbf6606f64989848304527.tar.bz2 egawk-c0dfb9269380ff5a90dbf6606f64989848304527.zip |
Fix assertion error in sorted loops for SYMTAB/FUNCTAB.
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 8 | ||||
-rw-r--r-- | test/Makefile.in | 76 | ||||
-rw-r--r-- | test/Maketests | 60 | ||||
-rw-r--r-- | test/symtab11.awk | 30 | ||||
-rw-r--r-- | test/symtab11.ok | 76 |
6 files changed, 125 insertions, 130 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index c188931b..b4ba26ff 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2020-01-23 Arnold D. Robbins <arnold@skeeve.com> + + * Makefile.am (EXTRA_DIST): New test, symtab11. + * symtab11.awk, symtab11.ok: New files. + 2020-01-19 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (EXTRA_DIST): New test, profile13. diff --git a/test/Makefile.am b/test/Makefile.am index bf77ea34..677b7551 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,7 +1,7 @@ # # test/Makefile.am --- automake input file for gawk # -# Copyright (C) 1988-2019 the Free Software Foundation, Inc. +# Copyright (C) 1988-2020 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. @@ -1226,6 +1226,8 @@ EXTRA_DIST = \ symtab10.awk \ symtab10.in \ symtab10.ok \ + symtab11.awk \ + symtab11.ok \ synerr1.awk \ synerr1.ok \ synerr2.awk \ @@ -1402,8 +1404,8 @@ GAWK_EXT_TESTS = \ sourcesplit split_after_fpat \ splitarg4 strftfld strftime strtonum strtonum1 \ stupid1 stupid2 stupid3 stupid4 \ - switch2 symtab1 symtab2 \ - symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ + switch2 symtab1 symtab2 symtab3 symtab4 symtab5 symtab6 symtab7 + symtab8 symtab9 symtab10 symtab11 \ timeout typedregex1 typedregex2 typedregex3 typedregex4 \ typedregex5 typedregex6 \ typeof1 typeof2 typeof3 typeof4 typeof5 \ diff --git a/test/Makefile.in b/test/Makefile.in index 0794b3b8..5543ea46 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -17,7 +17,7 @@ # # test/Makefile.am --- automake input file for gawk # -# Copyright (C) 1988-2019 the Free Software Foundation, Inc. +# Copyright (C) 1988-2020 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. @@ -1485,6 +1485,8 @@ EXTRA_DIST = \ symtab10.awk \ symtab10.in \ symtab10.ok \ + symtab11.awk \ + symtab11.ok \ synerr1.awk \ synerr1.ok \ synerr2.awk \ @@ -1661,12 +1663,7 @@ GAWK_EXT_TESTS = \ sourcesplit split_after_fpat \ splitarg4 strftfld strftime strtonum strtonum1 \ stupid1 stupid2 stupid3 stupid4 \ - switch2 symtab1 symtab2 \ - symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ - timeout typedregex1 typedregex2 typedregex3 typedregex4 \ - typedregex5 typedregex6 \ - typeof1 typeof2 typeof3 typeof4 typeof5 \ - watchpoint1 + switch2 symtab1 symtab2 symtab3 symtab4 symtab5 symtab6 symtab7 ARRAYDEBUG_TESTS = arrdbg EXTRA_TESTS = inftest regtest ignrcas3 @@ -2007,6 +2004,11 @@ uninstall-am: .PRECIOUS: Makefile + symtab8 symtab9 symtab10 symtab11 \ + timeout typedregex1 typedregex2 typedregex3 typedregex4 \ + typedregex5 typedregex6 \ + typeof1 typeof2 typeof3 typeof4 typeof5 \ + watchpoint1 # Message stuff is to make it a little easier to follow. # Make the pass-fail last and dependent on others to avoid @@ -4820,66 +4822,6 @@ symtab7: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ -symtab10: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --debug < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -timeout: - @echo $@ $(ZOS_FAIL) - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex1: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex2: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex3: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex5: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex6: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof1: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof2: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof3: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof4: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof5: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - double1: @echo $@ $(ZOS_FAIL) @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index d8c3299a..8f3fbe49 100644 --- a/test/Maketests +++ b/test/Maketests @@ -1971,66 +1971,6 @@ symtab7: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ -symtab10: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --debug < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -timeout: - @echo $@ $(ZOS_FAIL) - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex1: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex2: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex3: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex5: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typedregex6: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof1: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof2: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof3: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof4: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - -typeof5: - @echo $@ - @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ - @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ - double1: @echo $@ $(ZOS_FAIL) @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/symtab11.awk b/test/symtab11.awk new file mode 100644 index 00000000..ec7f096b --- /dev/null +++ b/test/symtab11.awk @@ -0,0 +1,30 @@ +BEGIN { + PROCINFO["sorted_in"] = "@val_type_asc" # okay with PROCINFO commented out, kaboom if not + IGNORECASE = 1 # yes + + printf("BEGIN -- Symtab is next\n") > "/dev/stdout" + for (i in SYMTAB) { + printf "[%s]\n", i # else {printf("[%s]\t(%s)\n",i,SYMTAB[i]);} + } + printf("BEGIN-- after Symtab loop\n") > "/dev/stdout" # never got here + + printf("BEGIN -- Functab is next\n") > "/dev/stdout" + for (i in FUNCTAB) { + printf "[%s]\n", i # else {printf("[%s]\t(%s)\n",i,FUNCTAB[i]);} + } + printf("BEGIN-- after Functab loop\n") > "/dev/stdout" # never got here + exit +} + +function foo() +{ + print "foo called" +} + +function bar() +{ + print "bar called" +} + +# e-o-begin +# --- No END, No Main ... --- diff --git a/test/symtab11.ok b/test/symtab11.ok new file mode 100644 index 00000000..c5e3e0fc --- /dev/null +++ b/test/symtab11.ok @@ -0,0 +1,76 @@ +BEGIN -- Symtab is next +[i] +[ROUNDMODE] +[ORS] +[OFS] +[LINT] +[FNR] +[ERRNO] +[NR] +[IGNORECASE] +[TEXTDOMAIN] +[NF] +[ARGIND] +[ARGC] +[FIELDWIDTHS] +[CONVFMT] +[SUBSEP] +[PREC] +[RS] +[FPAT] +[RT] +[RLENGTH] +[OFMT] +[FS] +[RSTART] +[FILENAME] +[BINMODE] +[ARGV] +[PROCINFO] +[ENVIRON] +BEGIN-- after Symtab loop +BEGIN -- Functab is next +[rand] +[dcgettext] +[gsub] +[match] +[int] +[log] +[sprintf] +[systime] +[strftime] +[length] +[and] +[srand] +[asort] +[atan2] +[cos] +[split] +[compl] +[bindtextdomain] +[exp] +[or] +[fflush] +[gensub] +[dcngettext] +[index] +[system] +[sqrt] +[rshift] +[tolower] +[sin] +[asorti] +[typeof] +[close] +[mktime] +[isarray] +[patsplit] +[sub] +[substr] +[xor] +[lshift] +[strtonum] +[toupper] +[bar] +[foo] +BEGIN-- after Functab loop |