aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--stdio-common/tst-printf.c12
-rw-r--r--stdio-common/tst-printf.sh140
3 files changed, 156 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index a4303149e5..8d0bc1ab06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2000-07-07 Ulrich Drepper <drepper@redhat.com>
+
+ * stdio-common/Makefile (tests): Remove tst-printf here...
+ (tests-srcs): ...and add it here.
+ (distribute): Add tst-unbputc.sh and tst-printf.sh.
+ Add rules to run tst-printf.sh.
+ * stdio-common/tst-printf.c: Move code around so that there is really
+ no further output where it's stated.
+ * stdio-common/tst-printf.sh: New file.
+
2000-07-07 Mark Kettenis <kettenis@gnu.org>
* hurd/vpprintf.c [USE_IN_LIBIO]: Include <libioP.h>.
diff --git a/stdio-common/tst-printf.c b/stdio-common/tst-printf.c
index 8dccd3fd48..5afa471fca 100644
--- a/stdio-common/tst-printf.c
+++ b/stdio-common/tst-printf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,95,96,97,98,99 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,95,96,97,98,99, 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
@@ -237,10 +237,6 @@ I am ready for my first lesson today.";
printf("%.17f\n",(1.0/x/10.0+1.0)*x-x);
}
- puts ("--- Should be no further output. ---");
- rfg1 ();
- rfg2 ();
-
{
char buf[200];
@@ -256,7 +252,7 @@ I am ready for my first lesson today.";
char buf[200];
sprintf (buf, "%07Lo", 040000000000ll);
- printf ("sprintf (buf, \"%%07Lo\", 040000000000ll) = %s\n", buf);
+ printf ("sprintf (buf, \"%%07Lo\", 040000000000ll) = %s", buf);
if (strcmp (buf, "40000000000") != 0)
{
@@ -266,6 +262,10 @@ I am ready for my first lesson today.";
puts ("");
}
+ puts ("--- Should be no further output. ---");
+ rfg1 ();
+ rfg2 ();
+
return result != 0;
}
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