| #include <locale.h> |
| #include <stdio.h> |
| #include <wchar.h> |
| |
| |
| static int |
| do_test (void) |
| { |
| if (setlocale (LC_ALL, "de_DE.UTF-8") == 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" |