diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-01-25 19:46:25 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-01-25 19:46:25 +0000 |
commit | 49891c106244888123557fca7fddda4fa1f96b1d (patch) | |
tree | be82ef12bd1f25781c3755052d73bbf800020b49 /localedata/tst-fmon.c | |
parent | 3f07c1da66f3e9b50c62dec07a4c5b68794485cf (diff) | |
download | glibc-49891c106244888123557fca7fddda4fa1f96b1d.zip glibc-49891c106244888123557fca7fddda4fa1f96b1d.tar.gz glibc-49891c106244888123557fca7fddda4fa1f96b1d.tar.bz2 |
Use most recent localedata from glibc-2.0.91.
1997-10-09 04:56 Ulrich Drepper <drepper@cygnus.com>
* locales/is_IS: Update from Debian version.
1997-08-29 03:16 Ulrich Drepper <drepper@cygnus.com>
* tst-fmon.c: New file. strfmon test program.
* tst-fmon.sh: New file. Script to run strfmon test.
* fmon-de_DE.exp: New file. Expected result of strfmon test for de_DE.
* fmon-en_US.exp: New file. Expected result of strfmon test for en_US.
* locales/cs_CZ: Update from author.
Diffstat (limited to 'localedata/tst-fmon.c')
-rw-r--r-- | localedata/tst-fmon.c | 123 |
1 files changed, 64 insertions, 59 deletions
diff --git a/localedata/tst-fmon.c b/localedata/tst-fmon.c index 4b71469..23f3cc0 100644 --- a/localedata/tst-fmon.c +++ b/localedata/tst-fmon.c @@ -1,65 +1,70 @@ -#include <monetary.h> +/* Testing the implementation of strfmon(3). + Copyright (C) 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 1997. + + 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. */ + #include <stdio.h> #include <locale.h> - -static int -check (const char *fmt, double n) -{ - int result; - char buf[1000]; - - result = strfmon (buf, sizeof buf, fmt, n) == -1; - - printf ("\"%s\"\n", buf); - return result; -} +#include <monetary.h> +#include <string.h> +#include <stdlib.h> + +/* + test-strfmon gets called with three parameters: + - the locale + - the format-string to be used + - the actual number to be formatted + - the expected string + If the test passes, test-strfmon terminates with returncode 0, + otherwise with 1 +*/ +#define EXIT_SUCCESS 0 +#define EXIT_FAILURE 1 +#define EXIT_SETLOCALE 2 +#define EXIT_STRFMON 3 int -main (void) +main (int argc, char *argv[]) { - int result = 0; - - setlocale (LC_ALL, ""); - - result |= check ("%n", 123.45); - result |= check ("%n", -123.45); - result |= check ("%n", 3456.781); - - result |= check ("%11n", 123.45); - result |= check ("%11n", -123.45); - result |= check ("%11n", 3456.781); - - result |= check ("%#5n", 123.45); - result |= check ("%#5n", -123.45); - result |= check ("%#5n", 3456.781); - - result |= check ("%=*#5n", 123.45); - result |= check ("%=*#5n", -123.45); - result |= check ("%=*#5n", 3456.781); - - result |= check ("%=0#5n", 123.45); - result |= check ("%=0#5n", -123.45); - result |= check ("%=0#5n", 3456.781); - - result |= check ("%^#5n", 123.45); - result |= check ("%^#5n", -123.45); - result |= check ("%^#5n", 3456.781); - - result |= check ("%^#5.0n", 123.45); - result |= check ("%^#5.0n", -123.45); - result |= check ("%^#5.0n", 3456.781); - - result |= check ("%^#5.4n", 123.45); - result |= check ("%^#5.4n", -123.45); - result |= check ("%^#5.4n", 3456.781); - - result |= check ("%(#5n", 123.45); - result |= check ("%(#5n", -123.45); - result |= check ("%(#5n", 3456.781); - - result |= check ("%!(#5n", 123.45); - result |= check ("%!(#5n", -123.45); - result |= check ("%!(#5n", 3456.781); - - return result; + char *s = malloc (201); + double monval; + + if (setlocale (LC_MONETARY, argv[1]) == NULL) + { + perror ("setlocale"); + exit (EXIT_SETLOCALE); + } + /* This is locale-dependent! see setlocale(3) for details */ + monval = strtod (argv[3], NULL); + + if (strfmon (s, 200, argv[2], (double) atof (argv[3])) == -1) + { + perror ("strfmon"); + exit (EXIT_STRFMON); + } + + if (strcmp (s, argv[4]) != 0) + { + printf ("format: \"%s\", expected: \"%s\", got: \"%s\" => %s\n", + argv[2], argv[4], s, + strcmp (s, argv[4]) != 0 ? "false" : "correct"); + exit (EXIT_FAILURE); + } + + exit (EXIT_SUCCESS); } |