diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | stdio-common/tst-printf.c | 12 | ||||
-rw-r--r-- | stdio-common/tst-printf.sh | 140 |
3 files changed, 156 insertions, 6 deletions
@@ -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 |