aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog14
-rw-r--r--test/Makefile.am21
-rw-r--r--test/Makefile.in21
-rw-r--r--test/mpfrrndeval.awk35
-rw-r--r--test/mpfrrndeval.ok18
-rw-r--r--test/pty2.awk9
-rw-r--r--test/pty2.ok2
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