#include #include #include 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"