diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2011-07-15 17:20:16 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2011-07-15 17:20:16 +0000 |
commit | 7890be6e7d2658fd14c793c77be4d91a461abce8 (patch) | |
tree | 84abb89a995479358c4c27fe0b198059ee5c009f /newlib/testsuite | |
parent | c842ff73e769b4c35007c866778be0b3840160fe (diff) | |
download | cygnal-7890be6e7d2658fd14c793c77be4d91a461abce8.tar.gz cygnal-7890be6e7d2658fd14c793c77be4d91a461abce8.tar.bz2 cygnal-7890be6e7d2658fd14c793c77be4d91a461abce8.zip |
2011-07-15 Yufeng Zhang <yufeng.zhang@arm.com>
* libc/stdio/vfwprintf.c (wcvt): Add a new parameter len of type
int. *length is set to the value of (rev - digits) regardless
of whether _MB_CAPABLE is defined or not. Replace BUF with len
in calling _mbsnrtowcs_r and also in the loop where _MB_CAPABLE
is not defined.
(_VFWPRINTF_R): Call wcvt with an extra argument. Call wcvt
again with allocated new buffer if buf is not large enough for
the conversion.
* testsuite/newlib.stdio/stdio.exp: New.
* testsuite/newlib.stdio/swprintf.c: Likewise.
Diffstat (limited to 'newlib/testsuite')
-rw-r--r-- | newlib/testsuite/newlib.stdio/stdio.exp | 12 | ||||
-rw-r--r-- | newlib/testsuite/newlib.stdio/swprintf.c | 30 |
2 files changed, 42 insertions, 0 deletions
diff --git a/newlib/testsuite/newlib.stdio/stdio.exp b/newlib/testsuite/newlib.stdio/stdio.exp new file mode 100644 index 000000000..164cbf353 --- /dev/null +++ b/newlib/testsuite/newlib.stdio/stdio.exp @@ -0,0 +1,12 @@ +# Copyright (C) 2011 by ARM Ltd. All rights reserved. +# +# Permission to use, copy, modify, and distribute this software +# is freely granted, provided that this notice is preserved. +# + +load_lib passfail.exp + +set exclude_list { +} + +newlib_pass_fail_all -x $exclude_list diff --git a/newlib/testsuite/newlib.stdio/swprintf.c b/newlib/testsuite/newlib.stdio/swprintf.c new file mode 100644 index 000000000..b925da487 --- /dev/null +++ b/newlib/testsuite/newlib.stdio/swprintf.c @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2011 by ARM Ltd. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software + * is freely granted, provided that this notice is preserved. + */ + +#include <stdio.h> +#include <newlib.h> +#include <stdlib.h> +#include <wchar.h> +#include "check.h" + +int main() +{ +#if defined(INTEGER_ONLY) || defined(NO_FLOATING_POINT) + +#else + char cbuf[512]; + wchar_t wcbuf[512], wcbuf2[512]; + double val = 1E+308; + snprintf(cbuf, 512, "%.*f", 3, val); + swprintf(wcbuf, 512, L"%.*f", 3, val); + mbstowcs(wcbuf2, cbuf, 512); + + CHECK (wcscmp(wcbuf, wcbuf2) == 0); +#endif + + exit (0); +} |