about summary refs log tree commit diff
path: root/stdio-common/tst-printf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'stdio-common/tst-printf.sh')
-rw-r--r--stdio-common/tst-printf.sh140
1 files changed, 140 insertions, 0 deletions
diff --git a/stdio-common/tst-printf.sh b/stdio-common/tst-printf.sh
new file mode 100644
index 0000000000..7023cfc733
--- /dev/null
+++ b/stdio-common/tst-printf.sh
@@ -0,0 +1,140 @@
+#! /bin/sh
+# Testing of printf.
+# Copyright (C) 2000 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+#
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with the GNU C Library; see the file COPYING.LIB.  If
+# not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+common_objpfx=$1; shift
+
+status=0
+
+LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}iconvdata \
+${common_objpfx}elf/ld.so --library-path $common_objpfx \
+  ${common_objpfx}stdio-common/tst-printf \
+  > ${common_objpfx}stdio-common/tst-printf.out || status=1
+
+cat <<'EOF' |
+%.4x:	`0012'
+%04x:	`0012'
+%4.4x:	`0012'
+%04.4x:	`0012'
+%4.3x:	` 012'
+%04.3x:	` 012'
+%.*x:	`0012'
+%0*x:	`0012'
+%*.*x:	`0012'
+%0*.*x:	`0012'
+bad format:	"%b"
+nil pointer (padded):	"     (nil)"
+decimal negative:	"-2345"
+octal negative:	"37777773327"
+hex negative:	"fffff6d7"
+long decimal number:	"-123456"
+long octal negative:	"37777773327"
+long unsigned decimal number:	"4294843840"
+zero-padded LDN:	"-000123456"
+left-adjusted ZLDN:	"-123456   "
+space-padded LDN:	"   -123456"
+left-adjusted SLDN:	"-123456   "
+zero-padded string:	"    Hi, Z."
+left-adjusted Z string:	"Hi, Z.    "
+space-padded string:	"    Hi, Z."
+left-adjusted S string:	"Hi, Z.    "
+null string:	"(null)"
+limited string:	"Good morning, Doctor C"
+e-style >= 1:	"1.234000e+01"
+e-style >= .1:	"1.234000e-01"
+e-style < .1:	"1.234000e-03"
+e-style big:	"1.000000000000000000000000000000000000000000000000000000000000e+20"
+e-style == .1:	"1.000000e-01"
+f-style >= 1:	"12.340000"
+f-style >= .1:	"0.123400"
+f-style < .1:	"0.001234"
+g-style >= 1:	"12.34"
+g-style >= .1:	"0.1234"
+g-style < .1:	"0.001234"
+g-style big:	"100000000000000000000"
+ 0.10000
+ 0.10000
+x0.5000x
+0x1
+something really insane: 1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+   4.94066e-324
+|      0.0000|  0.0000e+00|           0|
+|      1.0000|  1.0000e+00|           1|
+|     -1.0000| -1.0000e+00|          -1|
+|    100.0000|  1.0000e+02|         100|
+|   1000.0000|  1.0000e+03|        1000|
+|  10000.0000|  1.0000e+04|       1e+04|
+|  12345.0000|  1.2345e+04|   1.234e+04|
+| 100000.0000|  1.0000e+05|       1e+05|
+| 123456.0000|  1.2346e+05|   1.235e+05|
+snprintf ("%30s", "foo") == 30, "                   "
+snprintf ("%.999999u", 10)
+
+Formatted output test
+prefix  6d      6o      6x      6X      6u
+%-+#0 |-123   |0377   |0xff   |0XFF   |4294967295 |
+ %-+# |-123   |0377   |0xff   |0XFF   |4294967295 |
+ %-+0 |-123   |377    |ff     |FF     |4294967295 |
+  %-+ |-123   |377    |ff     |FF     |4294967295 |
+ %-#0 |-123   |0377   |0xff   |0XFF   |4294967295 |
+  %-# |-123   |0377   |0xff   |0XFF   |4294967295 |
+  %-0 |-123   |377    |ff     |FF     |4294967295 |
+   %- |-123   |377    |ff     |FF     |4294967295 |
+ %+#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 |
+  %+# |  -123 |  0377 |  0xff |  0XFF |4294967295 |
+  %+0 |-00123 |000377 |0000ff |0000FF |4294967295 |
+   %+ |  -123 |   377 |    ff |    FF |4294967295 |
+  %#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 |
+   %# |  -123 |  0377 |  0xff |  0XFF |4294967295 |
+   %0 |-00123 |000377 |0000ff |0000FF |4294967295 |
+    % |  -123 |   377 |    ff |    FF |4294967295 |
+    (null)
+(null)    
+1.234568e+06 should be 1.234568e+06
+1234567.800000 should be 1234567.800000
+1.23457e+06 should be 1.23457e+06
+123.456 should be 123.456
+1e+06 should be 1e+06
+10 should be 10
+0.02 should be 0.02
+0.10000000000000009
+Test ok.
+sprintf (buf, "%07Lo", 040000000000ll) = 40000000000
+--- Should be no further output. ---
+EOF
+cmp - ${common_objpfx}stdio-common/tst-printf.out || status=1
+
+exit $status