aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/ChangeLog6
-rw-r--r--test/fmtspcl.awk37
-rw-r--r--test/fmtspcl.tok1
3 files changed, 34 insertions, 10 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index 0b41abba..b8816a5f 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,9 @@
+2018-07-12 Arnold D. Robbins <arnold@skeeve.com>
+
+ * fmtspcl.awk: Improve the formatting, add testing of uppercase
+ formats, fix a bug.
+ * fmtspcl.tok: Adjust for code changes.
+
2018-06-22 Andrew J. Schorr <aschorr@telemetry-investments.com>
* Makefile.am (EXTRA_DIST): Add files for numrange.
diff --git a/test/fmtspcl.awk b/test/fmtspcl.awk
index 6f037a3a..eb99df65 100644
--- a/test/fmtspcl.awk
+++ b/test/fmtspcl.awk
@@ -1,26 +1,43 @@
-function display(x,str, i,res) {
+function display(x, str, i, res) {
for (i = 0; i < n; i++) {
if ((res = sprintf(formats[i],x)) != str)
printf "sprintf(%s,%s) = %s (!= %s)\n",
- formats[i],x,res,str
+ formats[i], x, res, str
}
}
BEGIN {
nan = sqrt(-1)
- nan_str = sprintf("%f",nan)
- nnan_str = sprintf("%f",-nan)
+ nan_str = sprintf("%f", nan)
+ nnan_str = sprintf("%f", -nan)
inf = -log(0)
- inf_str = sprintf("%f",inf)
+ inf_str = sprintf("%f", inf)
+ ninf_str = sprintf("%f", -inf)
n = 0
+ formats[n++] = "%a"
formats[n++] = "%f"
- formats[n++] = "%s"
formats[n++] = "%g"
formats[n++] = "%x"
formats[n++] = "%d"
- display(nan,nan_str)
- display(-nan,nnan_str)
- display(inf,inf)
- display(-inf,"-"inf_str)
+ formats[n++] = "%s"
+ display(nan, nan_str)
+ display(-nan, nnan_str)
+ display(inf, inf_str)
+ display(-inf, ninf_str)
+
+ # Now test uppercase floating-point format strings
+ for (j = 0; j < n; j++)
+ formats[j] = toupper(formats[j])
+
+ n -= 3 # interger and string formats don't count (%x, %d, %s)
+ nan_str = toupper(nan_str)
+ nnan_str = toupper(nnan_str)
+ inf_str = toupper(inf_str)
+ ninf_str = toupper(ninf_str)
+
+ display(nan, nan_str)
+ display(-nan, nnan_str)
+ display(inf, inf_str)
+ display(-inf, ninf_str)
}
diff --git a/test/fmtspcl.tok b/test/fmtspcl.tok
index ba823b83..6fa0d1da 100644
--- a/test/fmtspcl.tok
+++ b/test/fmtspcl.tok
@@ -1,4 +1,5 @@
gawk: fmtspcl.awk:10: warning: sqrt: called with negative argument -1
+gawk: fmtspcl.awk:3: warning: %a format is POSIX standard but not portable to other awks
gawk: fmtspcl.awk:3: warning: [s]printf: value positive_nan is out of range for `%x' format
gawk: fmtspcl.awk:3: warning: [s]printf: value positive_nan is out of range for `%d' format
gawk: fmtspcl.awk:3: warning: [s]printf: value negative_nan is out of range for `%x' format