diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2018-03-26 10:45:01 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2018-03-26 10:45:01 +0300 |
commit | e32b1e252bba65f8311e7cb038b085fe42cf42ed (patch) | |
tree | fddea0eb5f0a49d87d1e343248aaabbb74574a11 /test | |
parent | 9b03de3b6c449d014674dd2bfd5947c55d1f0711 (diff) | |
download | egawk-e32b1e252bba65f8311e7cb038b085fe42cf42ed.tar.gz egawk-e32b1e252bba65f8311e7cb038b085fe42cf42ed.tar.bz2 egawk-e32b1e252bba65f8311e7cb038b085fe42cf42ed.zip |
Remove the tail recursion optimization.
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 4 | ||||
-rw-r--r-- | test/Makefile.in | 9 | ||||
-rw-r--r-- | test/Maketests | 5 | ||||
-rw-r--r-- | test/tailrecurse.awk | 15 | ||||
-rw-r--r-- | test/tailrecurse.ok | 5 |
6 files changed, 41 insertions, 2 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index 603df4e7..6a347b60 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2018-03-26 Arnold D. Robbins <arnold@skeeve.com> + + * Makefile.am (EXTRA_DIST): Add tailrecurse.awk, tailrecurse.ok. + * tailrecurse.awk, tailrecurse.ok: New files. + 2018-03-13 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am: Update copyright year. diff --git a/test/Makefile.am b/test/Makefile.am index e502f86a..e96c314e 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1135,6 +1135,8 @@ EXTRA_DIST = \ synerr1.ok \ synerr2.awk \ synerr2.ok \ + tailrecurse.awk \ + tailrecurse.ok \ testext.ok \ time.awk \ time.ok \ @@ -1254,7 +1256,7 @@ BASIC_TESTS = \ sigpipe1 sortempty sortglos splitargv splitarr \ splitdef splitvar splitwht status-close strcat1 strnum1 strnum2 strtod \ subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 \ - tradanch tweakfld \ + tailrecurse tradanch tweakfld \ uninit2 uninit3 uninit4 uninit5 uninitialized unterm uparrfs uplus \ wideidx wideidx2 widesub widesub2 widesub3 widesub4 wjposer1 \ zero2 zeroe0 zeroflag diff --git a/test/Makefile.in b/test/Makefile.in index b3cde532..4b0f839f 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1393,6 +1393,8 @@ EXTRA_DIST = \ synerr1.ok \ synerr2.awk \ synerr2.ok \ + tailrecurse.awk \ + tailrecurse.ok \ testext.ok \ time.awk \ time.ok \ @@ -1511,7 +1513,7 @@ BASIC_TESTS = \ sigpipe1 sortempty sortglos splitargv splitarr \ splitdef splitvar splitwht status-close strcat1 strnum1 strnum2 strtod \ subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 \ - tradanch tweakfld \ + tailrecurse tradanch tweakfld \ uninit2 uninit3 uninit4 uninit5 uninitialized unterm uparrfs uplus \ wideidx wideidx2 widesub widesub2 widesub3 widesub4 wjposer1 \ zero2 zeroe0 zeroflag @@ -3925,6 +3927,11 @@ synerr2: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +tailrecurse: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + uninit2: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index e449dd30..4a90e3e9 100644 --- a/test/Maketests +++ b/test/Maketests @@ -1002,6 +1002,11 @@ synerr2: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +tailrecurse: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + uninit2: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/tailrecurse.awk b/test/tailrecurse.awk new file mode 100644 index 00000000..b287d168 --- /dev/null +++ b/test/tailrecurse.awk @@ -0,0 +1,15 @@ +BEGIN { + abc(2) +} + + +function abc(c, A, B) +{ + print "abc(" c ", " length(A) ")" + if (! c--) { + return + } + B[""] + print length(B) + return abc(c, B) +} diff --git a/test/tailrecurse.ok b/test/tailrecurse.ok new file mode 100644 index 00000000..73ce1ede --- /dev/null +++ b/test/tailrecurse.ok @@ -0,0 +1,5 @@ +abc(2, 0) +1 +abc(1, 1) +1 +abc(0, 1) |