diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 14 | ||||
-rw-r--r-- | test/Makefile.am | 21 | ||||
-rw-r--r-- | test/Makefile.in | 21 | ||||
-rw-r--r-- | test/mpfrrndeval.awk | 35 | ||||
-rw-r--r-- | test/mpfrrndeval.ok | 18 | ||||
-rw-r--r-- | test/pty2.awk | 9 | ||||
-rw-r--r-- | test/pty2.ok | 2 |
7 files changed, 116 insertions, 4 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index 26fd2d48..7ad48010 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,17 @@ +2018-01-04 Arnold D. Robbins <arnold@skeeve.com> + + Thanks to Andrew Schorr for the basics of this test. + + * Makefile.am (pty2): New test. + * pty2.awk, pty2.ok: New files. + +2018-01-02 Arnold D. Robbins <arnold@skeeve.com> + + Thanks to Nethox <nethox@gmail.com> for this test. + + * Makefile.am (mpfrrndeval): New test. + * mpfrrndeval.awk, mpfrrndeval.ok: New files. + 2017-12-28 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (EXTRA_DIST): Add numstr1 files. diff --git a/test/Makefile.am b/test/Makefile.am index 0fa74b2c..f49cbdc9 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -666,6 +666,8 @@ EXTRA_DIST = \ mpfrrem.ok \ mpfrrnd.awk \ mpfrrnd.ok \ + mpfrrndeval.awk \ + mpfrrndeval.ok \ mpfrsort.awk \ mpfrsort.ok \ mpfrsqrt.awk \ @@ -880,6 +882,8 @@ EXTRA_DIST = \ prtoeval.ok \ pty1.awk \ pty1.ok \ + pty2.awk \ + pty2.ok \ rand-mpfr.ok \ rand.awk \ rand.ok \ @@ -1269,7 +1273,7 @@ GAWK_EXT_TESTS = \ nastyparm negtime next nondec nondec2 nonfatal1 nonfatal2 nonfatal3 \ patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 printhuge \ procinfs profile0 profile1 profile2 profile3 profile4 profile5 profile6 \ - profile7 profile8 profile9 profile10 pty1 \ + profile7 profile8 profile9 profile10 pty1 pty2 \ rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin \ rsstart1 rsstart2 rsstart3 rstest6 \ shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit split_after_fpat \ @@ -1287,7 +1291,7 @@ INET_TESTS = inetdayu inetdayt inetechu inetecht MACHINE_TESTS = double1 double2 fmtspcl intformat -MPFR_TESTS = mpfrnr mpfrnegzero mpfrmemok1 mpfrrem mpfrrnd mpfrieee +MPFR_TESTS = mpfrnr mpfrnegzero mpfrmemok1 mpfrrem mpfrrnd mpfrrndeval mpfrieee mpfrexprange mpfrsort mpfrsqrt mpfrbigint mpfrstrtonum mpgforcenum LOCALE_CHARSET_TESTS = \ @@ -2075,6 +2079,11 @@ mpfrrnd: @$(AWK) -M -vPREC=53 -f "$(srcdir)"/$@.awk > _$@ 2>&1 @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +mpfrrndeval: + @echo $@ + @$(AWK) -M -f "$(srcdir)"/$@.awk > _$@ 2>&1 + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + mpfrnegzero: @echo $@ @$(AWK) -M -f "$(srcdir)"/$@.awk > _$@ 2>&1 @@ -2399,6 +2408,14 @@ pty1: $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ;; \ esac +pty2: + @echo $@ + @-case `uname` in \ + *[Oo][Ss]/390*) : ;; \ + *) AWKPATH="$(srcdir)" $(AWK) -f $@.awk | od -c >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \ + $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ;; \ + esac + rscompat: @echo $@ @AWKPATH="$(srcdir)" $(AWK) --traditional -f $@.awk "$(srcdir)/$@.in" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Makefile.in b/test/Makefile.in index 493bf9fa..47ca0371 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -924,6 +924,8 @@ EXTRA_DIST = \ mpfrrem.ok \ mpfrrnd.awk \ mpfrrnd.ok \ + mpfrrndeval.awk \ + mpfrrndeval.ok \ mpfrsort.awk \ mpfrsort.ok \ mpfrsqrt.awk \ @@ -1138,6 +1140,8 @@ EXTRA_DIST = \ prtoeval.ok \ pty1.awk \ pty1.ok \ + pty2.awk \ + pty2.ok \ rand-mpfr.ok \ rand.awk \ rand.ok \ @@ -1526,7 +1530,7 @@ GAWK_EXT_TESTS = \ nastyparm negtime next nondec nondec2 nonfatal1 nonfatal2 nonfatal3 \ patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 printhuge \ procinfs profile0 profile1 profile2 profile3 profile4 profile5 profile6 \ - profile7 profile8 profile9 profile10 pty1 \ + profile7 profile8 profile9 profile10 pty1 pty2 \ rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin \ rsstart1 rsstart2 rsstart3 rstest6 \ shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit split_after_fpat \ @@ -1540,7 +1544,7 @@ ARRAYDEBUG_TESTS = arrdbg EXTRA_TESTS = inftest regtest ignrcas3 INET_TESTS = inetdayu inetdayt inetechu inetecht MACHINE_TESTS = double1 double2 fmtspcl intformat -MPFR_TESTS = mpfrnr mpfrnegzero mpfrmemok1 mpfrrem mpfrrnd mpfrieee +MPFR_TESTS = mpfrnr mpfrnegzero mpfrmemok1 mpfrrem mpfrrnd mpfrrndeval mpfrieee LOCALE_CHARSET_TESTS = \ asort asorti backbigs1 backsmalls1 backsmalls2 \ fmttest fnarydel fnparydl jarebug lc_num1 mbfw1 \ @@ -2514,6 +2518,11 @@ mpfrrnd: @$(AWK) -M -vPREC=53 -f "$(srcdir)"/$@.awk > _$@ 2>&1 @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +mpfrrndeval: + @echo $@ + @$(AWK) -M -f "$(srcdir)"/$@.awk > _$@ 2>&1 + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + mpfrnegzero: @echo $@ @$(AWK) -M -f "$(srcdir)"/$@.awk > _$@ 2>&1 @@ -2837,6 +2846,14 @@ pty1: $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ;; \ esac +pty2: + @echo $@ + @-case `uname` in \ + *[Oo][Ss]/390*) : ;; \ + *) AWKPATH="$(srcdir)" $(AWK) -f $@.awk | od -c >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \ + $(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ ;; \ + esac + rscompat: @echo $@ @AWKPATH="$(srcdir)" $(AWK) --traditional -f $@.awk "$(srcdir)/$@.in" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/mpfrrndeval.awk b/test/mpfrrndeval.awk new file mode 100644 index 00000000..12010052 --- /dev/null +++ b/test/mpfrrndeval.awk @@ -0,0 +1,35 @@ +# Tests side effects (like caching) on the evaluation (formatting and +# rounding) of MPFR variables vs literals. +BEGIN { + pi = 3.1416 + e = 2.7183 + golden = 1.6180 + + # Evaluated as number with (default) OFMT. + print pi + print e + print golden + printf "\n" + + # Evaluated as number with (custom) OFMT. + OFMT = "%.f" + ROUNDMODE = "U"; print "Variable pi U:", pi + ROUNDMODE = "D"; print "Variable pi D:", pi + ROUNDMODE = "U"; print "Literal pi U:", 3.1416 + ROUNDMODE = "D"; print "Literal pi D:", 3.1416 + printf "\n" + + # Evaluated as string with (custom) CONVFMT. Absent comma. + CONVFMT = "%.f" + ROUNDMODE = "D"; print "Variable e D: " e + ROUNDMODE = "U"; print "Variable e U: " e + ROUNDMODE = "D"; print "Literal e D: " 2.7183 + ROUNDMODE = "U"; print "Literal e U: " 2.7183 + printf "\n" + + # Evaluated as number with (hardcoded) printf conversion. + ROUNDMODE = "N"; printf "Variable golden N: %.f\n", golden + ROUNDMODE = "Z"; printf "Variable golden Z: %.f\n", golden + ROUNDMODE = "N"; printf "Literal golden N: %.f\n", 1.6180 + ROUNDMODE = "Z"; printf "Literal golden Z: %.f\n", 1.6180 +} diff --git a/test/mpfrrndeval.ok b/test/mpfrrndeval.ok new file mode 100644 index 00000000..034b21e0 --- /dev/null +++ b/test/mpfrrndeval.ok @@ -0,0 +1,18 @@ +3.1416 +2.7183 +1.618 + +Variable pi U: 4 +Variable pi D: 3 +Literal pi U: 4 +Literal pi D: 3 + +Variable e D: 2 +Variable e U: 3 +Literal e D: 2 +Literal e U: 3 + +Variable golden N: 2 +Variable golden Z: 1 +Literal golden N: 2 +Literal golden Z: 1 diff --git a/test/pty2.awk b/test/pty2.awk new file mode 100644 index 00000000..c2eedbd0 --- /dev/null +++ b/test/pty2.awk @@ -0,0 +1,9 @@ +BEGIN { + cmd = "tr '[A-Z]' '[a-z]' 2> /dev/null" + PROCINFO[cmd, "pty"] = 1 + input = "ABCD" + print input |& cmd + cmd |& getline x + print x +# close(cmd) +} diff --git a/test/pty2.ok b/test/pty2.ok new file mode 100644 index 00000000..fb0f6221 --- /dev/null +++ b/test/pty2.ok @@ -0,0 +1,2 @@ +0000000 a b c d \n +0000005 |