From 3d44c0b219bbe042bd517942e6eaad68145e3440 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 4 Feb 2009 21:25:31 +0000 Subject: Test of fgetwc on unbuffered stream. --- libio/tst-fgetwc.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 libio/tst-fgetwc.c (limited to 'libio') diff --git a/libio/tst-fgetwc.c b/libio/tst-fgetwc.c new file mode 100644 index 0000000..9ccfeb1 --- /dev/null +++ b/libio/tst-fgetwc.c @@ -0,0 +1,52 @@ +#include +#include +#include + + +static int +do_test (void) +{ + if (setlocale (LC_ALL, "de_DE.utf8") == NULL) + { + puts ("setlocale failed"); + return 1; + } + + if (setvbuf (stdin, NULL, _IONBF, 0) != 0) + { + puts ("setvbuf failed"); + return 1; + } + + wchar_t buf[100]; + size_t nbuf = 0; + wint_t c; + while ((c = fgetwc (stdin)) != WEOF) + buf[nbuf++] = c; + + if (ferror (stdin)) + { + puts ("error on stdin"); + return 1; + } + + const wchar_t expected[] = + { + 0x00000439, 0x00000446, 0x00000443, 0x0000043a, + 0x00000435, 0x0000043d, 0x0000000a, 0x00000071, + 0x00000077, 0x00000065, 0x00000072, 0x00000074, + 0x00000079, 0x0000000a + }; + + if (nbuf != sizeof (expected) / sizeof (expected[0]) + || wmemcmp (expected, buf, nbuf) != 0) + { + puts ("incorrect result"); + return 1; + } + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" -- cgit v1.1