* stdio-common/tst-obprintf.c (main): Add another check to see
	obstack_printf handling all possible beginnings of the block
	inside an obstack chunk.
This commit is contained in:
Ulrich Drepper 2000-03-27 18:36:21 +00:00
parent 670066c3bd
commit 22d5fbfe74
4 changed files with 50 additions and 40 deletions

View file

@ -1,10 +1,15 @@
2000-03-27 Ulrich Drepper <drepper@redhat.com>
* stdio-common/tst-obprintf.c (main): Add another check to see
obstack_printf handling all possible beginnings of the block
inside an obstack chunk.
* locale/programs/localedef.c: Use __malloc_initialize_hook to
install mcheck handler.
* libio/obprintf.c (_IO_obstack_vprintf): Fix one more memory
handling problem.
2000-03-27 Roland McGrath <roland@baalperazim.frob.com>
* stdio-common/tmpfile.c: Use <shlib-compat.h> macros.

View file

@ -1,3 +1,7 @@
2000-03-27 Ulrich Drepper <drepper@redhat.com>
* tst-fmon.data: Update test after last strfmon change.
2000-03-15 Andreas Jaeger <aj@suse.de>
* locales/sl_SI: Fix entries for june and july.

View file

@ -1,5 +1,5 @@
# Test data for test-strfmon, which checks it's implementation in glibc
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 1997.
#
@ -22,7 +22,7 @@
# for strfmon. Fields are separated by TABs. Lines that start with a
# '#' are comments and are ignored.
#
# Field Deskription
# Field Description
# #1 locale which is to be checked
# #2 format string which is fed into strfmon
# #3 double value that is used for formatting
@ -30,39 +30,38 @@
#
# First the implementation without any locale-dependent data
# - no currency symbol is printed, formatting is somewhat standard
C %n 1.23 1.23
C %n 1.23 1.23
C %n -1.23 -1.23
C %n 0 0.00
C %n 0 0.00
C %% 0 %
C *%n* 1.23 * 1.23*
C *%n* 1.23 *1.23*
C %9n 1.23 1.23
C %#9n 1.23 1.23
C %=*#9n 1.23 ********1.23
C %#9n 1.23 1.23
C %=*#9n 1.23 ********1.23
#
# check both the german locale and strfmon with that data
#
de_DE.ISO-8859-1 %n 1.23 DM1,23
de_DE.ISO-8859-1 %n 1.23 DM1,23
de_DE.ISO-8859-1 %n -1.23 -DM1,23
de_DE.ISO-8859-1 %n 1234.56 DM1.234,56
de_DE.ISO-8859-1 %n 1234.56 DM1.234,56
de_DE.ISO-8859-1 %11n 123.45 DM123,45
de_DE.ISO-8859-1 %11n -123.45 -DM123,45
de_DE.ISO-8859-1 %11n 3456.781 DM3.456,78
de_DE.ISO-8859-1 %^n 1234.56 DM1234,56
de_DE.ISO-8859-1 %+n 1234.56 DM1.234,56
de_DE.ISO-8859-1 %^n 1234.56 DM1234,56
de_DE.ISO-8859-1 %+n 1234.56 DM1.234,56
de_DE.ISO-8859-1 %+n -1234.56 -DM1.234,56
# The following line ends with a blank
de_DE.ISO-8859-1 %(n 1234.56 DM1.234,56
de_DE.ISO-8859-1 %(n 1234.56 DM1.234,56
de_DE.ISO-8859-1 %(n -1234.56 (DM1.234,56)
de_DE.ISO-8859-1 %^n 1234.56 DM1234,56
de_DE.ISO-8859-1 %i 1.23 DEM 1,23
de_DE.ISO-8859-1 %^n 1234.56 DM1234,56
de_DE.ISO-8859-1 %i 1.23 DEM 1,23
de_DE.ISO-8859-1 %i -1.23 -DEM 1,23
de_DE.ISO-8859-1 %i 1234.56 DEM 1.234,56
de_DE.ISO-8859-1 %^i 1234.56 DEM 1234,56
de_DE.ISO-8859-1 %+i 1234.56 DEM 1.234,56
de_DE.ISO-8859-1 %i 1234.56 DEM 1.234,56
de_DE.ISO-8859-1 %^i 1234.56 DEM 1234,56
de_DE.ISO-8859-1 %+i 1234.56 DEM 1.234,56
de_DE.ISO-8859-1 %+i -1234.56 -DEM 1.234,56
de_DE.ISO-8859-1 %(i 1234.56 DEM 1.234,56
de_DE.ISO-8859-1 %(i 1234.56 DEM 1.234,56
de_DE.ISO-8859-1 %(i -1234.56 (DEM 1.234,56)
de_DE.ISO-8859-1 %^i 1234.56 DEM 1234,56
de_DE.ISO-8859-1 %^i 1234.56 DEM 1234,56
de_DE.ISO-8859-1 %#5n 123.45 DM 123,45
de_DE.ISO-8859-1 %#5n -123.45 -DM 123,45
de_DE.ISO-8859-1 %#5n 3456.781 DM 3.456,78
@ -81,26 +80,22 @@ de_DE.ISO-8859-1 %^#5.0n 3456.781 DM 3457
de_DE.ISO-8859-1 %^#5.4n 123.45 DM 123,4500
de_DE.ISO-8859-1 %^#5.4n -123.45 -DM 123,4500
de_DE.ISO-8859-1 %^#5.4n 3456.781 DM 3456,7810
# This line is followed by a blank!
de_DE.ISO-8859-1 %(#5n 123.45 DM 123,45
de_DE.ISO-8859-1 %(#5n 123.45 DM 123,45
de_DE.ISO-8859-1 %(#5n -123.45 (DM 123,45)
# This line is followed by a blank!
de_DE.ISO-8859-1 %(#5n 3456.781 DM 3.456,78
# This line is followed by a blank!
de_DE.ISO-8859-1 %!(#5n 123.45 123,45
de_DE.ISO-8859-1 %(#5n 3456.781 DM 3.456,78
de_DE.ISO-8859-1 %!(#5n 123.45 123,45
de_DE.ISO-8859-1 %!(#5n -123.45 ( 123,45)
# This line is followed by a blank!
de_DE.ISO-8859-1 %!(#5n 3456.781 3.456,78
de_DE.ISO-8859-1 %!(#5n 3456.781 3.456,78
#
# check both the en_US locale and strfmon with that data
# a lot of this checks are created from a strfmon(3) man-page.
#
en_US.ISO-8859-1 %n 123.45 $123.45
en_US.ISO-8859-1 %n 123.45 $123.45
en_US.ISO-8859-1 %n -123.45 -$123.45
en_US.ISO-8859-1 %n 3456.781 $3,456.78
en_US.ISO-8859-1 %i 123.45 USD 123.45
en_US.ISO-8859-1 %n 3456.781 $3,456.78
en_US.ISO-8859-1 %i 123.45 USD 123.45
en_US.ISO-8859-1 %i -123.45 -USD 123.45
en_US.ISO-8859-1 %i 3456.781 USD 3,456.78
en_US.ISO-8859-1 %i 3456.781 USD 3,456.78
en_US.ISO-8859-1 %11n 123.45 $123.45
en_US.ISO-8859-1 %11n -123.45 -$123.45
en_US.ISO-8859-1 %11n 3456.781 $3,456.78
@ -119,16 +114,12 @@ en_US.ISO-8859-1 %^#5.0n 3456.781 $ 3457
en_US.ISO-8859-1 %^#5.4n 123.45 $ 123.4500
en_US.ISO-8859-1 %^#5.4n -123.45 -$ 123.4500
en_US.ISO-8859-1 %^#5.4n 3456.781 $ 3456.7810
# This line is followed by a blank!
en_US.ISO-8859-1 %(#5n 123.45 $ 123.45
en_US.ISO-8859-1 %(#5n 123.45 $ 123.45
en_US.ISO-8859-1 %(#5n -123.45 ($ 123.45)
# This line is followed by a blank!
en_US.ISO-8859-1 %(#5n 3456.781 $ 3,456.78
# This line is followed by a blank!
en_US.ISO-8859-1 %!(#5n 123.45 123.45
en_US.ISO-8859-1 %(#5n 3456.781 $ 3,456.78
en_US.ISO-8859-1 %!(#5n 123.45 123.45
en_US.ISO-8859-1 %!(#5n -123.45 ( 123.45)
# This line is followed by a blank!
en_US.ISO-8859-1 %!(#5n 3456.781 3,456.78
en_US.ISO-8859-1 %!(#5n 3456.781 3,456.78
en_US.ISO-8859-1 %#5n 123.45 $ 123.45
en_US.ISO-8859-1 %#5n -123.45 -$ 123.45
en_US.ISO-8859-1 %#5n 3456.781 $ 3,456.78

View file

@ -25,6 +25,16 @@ main (void)
obstack_finish (&ob);
}
/* Another loop where we finish all objects, each of size 1. This will
manage to call `obstack_print' with all possible positions inside
an obstack chunk. */
for (n = 0; n < 40000; ++n)
{
mcheck_check_all ();
obstack_printf (&ob, "%c", 'a' + n % 26);
obstack_finish (&ob);
}
/* And a final check. */
mcheck_check_all ();