diff options
author | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2016-07-08 15:26:00 -0400 |
---|---|---|
committer | Andrew J. Schorr <aschorr@telemetry-investments.com> | 2016-07-08 15:26:00 -0400 |
commit | c86137f472fdf876c2c223c8d99f673f477b7554 (patch) | |
tree | 7ed0e172eaa8d4f831a2d59287547f63f1e71dee /test | |
parent | 4a0f74139fb702a14c2e6782fb1965245e4f9d2f (diff) | |
download | egawk-c86137f472fdf876c2c223c8d99f673f477b7554.tar.gz egawk-c86137f472fdf876c2c223c8d99f673f477b7554.tar.bz2 egawk-c86137f472fdf876c2c223c8d99f673f477b7554.zip |
Optimization: support unterminated field strings inside gawk, but make terminated copies for the API.
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 7 | ||||
-rw-r--r-- | test/Makefile.am | 10 | ||||
-rw-r--r-- | test/Makefile.in | 20 | ||||
-rw-r--r-- | test/Maketests | 10 | ||||
-rw-r--r-- | test/apiterm.awk | 8 | ||||
-rw-r--r-- | test/apiterm.in | 1 | ||||
-rw-r--r-- | test/apiterm.ok | 3 | ||||
-rw-r--r-- | test/fldterm.awk | 10 | ||||
-rw-r--r-- | test/fldterm.in | 1 | ||||
-rw-r--r-- | test/fldterm.ok | 2 |
10 files changed, 68 insertions, 4 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index 6821488c..c585120a 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,10 @@ +2016-07-08 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * Makefile.am (apiterm, fldterm): New tests to make sure that we + are handling unterminated field string values properly. + * apiterm.awk, apiterm.in, apiterm.ok: New files. + * fldterm.awk, fldterm.in, fldterm.ok: New files. + 2016-07-06 Andrew J. Schorr <aschorr@telemetry-investments.com> * forcenum.awk: We no longer need to force the strnum conversion, diff --git a/test/Makefile.am b/test/Makefile.am index a13a01c9..f884ba34 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -47,6 +47,9 @@ EXTRA_DIST = \ anchgsub.awk \ anchgsub.in \ anchgsub.ok \ + apiterm.awk \ + apiterm.in \ + apiterm.ok \ argarray.awk \ argarray.in \ argarray.ok \ @@ -274,6 +277,9 @@ EXTRA_DIST = \ fldchgnf.awk \ fldchgnf.in \ fldchgnf.ok \ + fldterm.awk \ + fldterm.in \ + fldterm.ok \ fmtspcl-mpfr.ok \ fmtspcl.awk \ fmtspcl.tok \ @@ -1148,7 +1154,7 @@ BASIC_TESTS = \ concat3 concat4 convfmt \ datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \ eofsplit exit2 exitval1 exitval2 exitval3 \ - fcall_exit fcall_exit2 fldchg fldchgnf fnamedat fnarray fnarray2 \ + fcall_exit fcall_exit2 fldchg fldchgnf fldterm fnamedat fnarray fnarray2 \ fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fsnul1 fsrs fsspcoln \ fstabplus funsemnl funsmnam funstack \ getline getline2 getline3 getline4 getline5 getlnbuf getnr2tb getnr2tm \ @@ -1227,7 +1233,7 @@ LOCALE_CHARSET_TESTS = \ mbprintf1 mbprintf2 mbprintf3 mbprintf4 rebt8b2 rtlenmb sort1 sprintfc SHLIB_TESTS = \ - fnmatch filefuncs fork fork2 fts functab4 getfile inplace1 inplace2 inplace3 \ + apiterm fnmatch filefuncs fork fork2 fts functab4 getfile inplace1 inplace2 inplace3 \ ordchr ordchr2 readdir readfile readfile2 revout revtwoway rwarray testext time # List of the tests which should be run with --lint option: diff --git a/test/Makefile.in b/test/Makefile.in index 6db4c34c..45593f15 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -304,6 +304,9 @@ EXTRA_DIST = \ anchgsub.awk \ anchgsub.in \ anchgsub.ok \ + apiterm.awk \ + apiterm.in \ + apiterm.ok \ argarray.awk \ argarray.in \ argarray.ok \ @@ -531,6 +534,9 @@ EXTRA_DIST = \ fldchgnf.awk \ fldchgnf.in \ fldchgnf.ok \ + fldterm.awk \ + fldterm.in \ + fldterm.ok \ fmtspcl-mpfr.ok \ fmtspcl.awk \ fmtspcl.tok \ @@ -1404,7 +1410,7 @@ BASIC_TESTS = \ concat3 concat4 convfmt \ datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \ eofsplit exit2 exitval1 exitval2 exitval3 \ - fcall_exit fcall_exit2 fldchg fldchgnf fnamedat fnarray fnarray2 \ + fcall_exit fcall_exit2 fldchg fldchgnf fldterm fnamedat fnarray fnarray2 \ fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fsnul1 fsrs fsspcoln \ fstabplus funsemnl funsmnam funstack \ getline getline2 getline3 getline4 getline5 getlnbuf getnr2tb getnr2tm \ @@ -1480,7 +1486,7 @@ LOCALE_CHARSET_TESTS = \ mbprintf1 mbprintf2 mbprintf3 mbprintf4 rebt8b2 rtlenmb sort1 sprintfc SHLIB_TESTS = \ - fnmatch filefuncs fork fork2 fts functab4 getfile inplace1 inplace2 inplace3 \ + apiterm fnmatch filefuncs fork fork2 fts functab4 getfile inplace1 inplace2 inplace3 \ ordchr ordchr2 readdir readfile readfile2 revout revtwoway rwarray testext time @@ -3032,6 +3038,11 @@ fldchgnf: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +fldterm: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + fnamedat: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -4313,6 +4324,11 @@ sprintfc: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +apiterm: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + fnmatch: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index 2aafd2bb..4c85c44a 100644 --- a/test/Maketests +++ b/test/Maketests @@ -275,6 +275,11 @@ fldchgnf: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +fldterm: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + fnamedat: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1556,6 +1561,11 @@ sprintfc: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +apiterm: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + fnmatch: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/apiterm.awk b/test/apiterm.awk new file mode 100644 index 00000000..95e4b120 --- /dev/null +++ b/test/apiterm.awk @@ -0,0 +1,8 @@ +@load "filefuncs" + +{ + print $1 + # check whether API terminates field strings properly + print chdir($1) + print ERRNO +} diff --git a/test/apiterm.in b/test/apiterm.in new file mode 100644 index 00000000..c4732514 --- /dev/null +++ b/test/apiterm.in @@ -0,0 +1 @@ +. fubar diff --git a/test/apiterm.ok b/test/apiterm.ok new file mode 100644 index 00000000..ef4043be --- /dev/null +++ b/test/apiterm.ok @@ -0,0 +1,3 @@ +. +0 + diff --git a/test/fldterm.awk b/test/fldterm.awk new file mode 100644 index 00000000..26fe01fb --- /dev/null +++ b/test/fldterm.awk @@ -0,0 +1,10 @@ +BEGIN { + # choose a field separator that is numeric, so we can test whether + # force_number properly handles unterminated numeric field strings + FS = "3" +} + +{ + print $1+0 + print $1 +} diff --git a/test/fldterm.in b/test/fldterm.in new file mode 100644 index 00000000..14a41cae --- /dev/null +++ b/test/fldterm.in @@ -0,0 +1 @@ +5.53apple diff --git a/test/fldterm.ok b/test/fldterm.ok new file mode 100644 index 00000000..ecd7600e --- /dev/null +++ b/test/fldterm.ok @@ -0,0 +1,2 @@ +5.5 +5.5 |