diff options
Diffstat (limited to 'libio/tst-fgetws.c')
-rw-r--r-- | libio/tst-fgetws.c | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/libio/tst-fgetws.c b/libio/tst-fgetws.c deleted file mode 100644 index 1e29332743..0000000000 --- a/libio/tst-fgetws.c +++ /dev/null @@ -1,185 +0,0 @@ -/* Taken from the Li18nux base test suite. */ - -#define _XOPEN_SOURCE 500 -#include <errno.h> -#include <locale.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <wchar.h> - -#define WIDE_STR_LEN 32 - -int -main (int argc, char *argv[]) -{ - size_t i; - FILE *fp; - wchar_t *ret, wcs[WIDE_STR_LEN]; - int result = 0; - const char il_str1[] = {0xe3, 0x81, '\0'}; - const char il_str2[] = {'0', '\n', 'A', 'B', 0xe3, 0x81, 'E', '\0'}; - char name1[] = "/tmp/tst-fgetws.out.XXXXXX"; - char name2[] = "/tmp/tst-fgetws.out.XXXXXX"; - int fd; - - puts ("This program runs on de_DE.UTF-8 locale."); - if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) - { - fprintf (stderr, "Err: Cannot run on the de_DE.UTF-8 locale"); - exit (EXIT_FAILURE); - } - - /* Make a file `il_str1'. */ - fd = mkstemp (name1); - if (fd == -1) - { - printf ("cannot open temp file: %m\n"); - exit (EXIT_FAILURE); - } - if ((fp = fdopen (fd, "w")) == NULL) - { - printf ("Can't open %s.\n", argv[1]); - exit (EXIT_FAILURE); - } - fwrite (il_str1, sizeof (char), sizeof (il_str1), fp); - fclose (fp); - - /* Make a file `il_str2'. */ - fd = mkstemp (name2); - if (fd == -1) - { - printf ("cannot open temp file: %m\n"); - exit (EXIT_FAILURE); - } - if ((fp = fdopen (fd, "w")) == NULL) - { - fprintf (stderr, "Can't open %s.\n", argv[1]); - exit (EXIT_FAILURE); - } - fwrite (il_str2, sizeof (char), sizeof (il_str2), fp); - fclose (fp); - - - /* Test for il_str1. */ - if ((fp = fopen (name1, "r")) == NULL) - { - fprintf (stderr, "Can't open %s.\n", argv[1]); - exit (EXIT_FAILURE); - } - - puts ("--"); - puts ("Read a byte sequence which is invalid as a wide character string."); - puts (" bytes: 0xe3, 0x81, '\\0'"); - - errno = 0; - ret = fgetws (wcs, WIDE_STR_LEN, fp); - - if (ret == NULL) - { - puts ("Return Value: NULL"); - - if (errno == EILSEQ) - puts ("errno = EILSEQ"); - else - { - printf ("errno = %d\n", errno); - result = 1; - } - } - else - { - printf ("Return Value: %p\n", ret); - for (i = 0; i < wcslen (wcs) + 1; i++) - printf (" wcs[%zd] = %04x", i, (unsigned int)wcs[i]); - printf ("\n"); - result = 1; - } - - /* Test for il_str2. */ - if ((fp = fopen (name2, "r")) == NULL) - { - fprintf (stderr, "Can't open %s.\n", argv[1]); - exit (EXIT_FAILURE); - } - - puts ("--"); - puts ("Read a byte sequence which is invalid as a wide character string."); - puts (" bytes: '0', '\\n', 'A', 'B', 0xe3, 0x81, 'c', '\\0'"); - - errno = 0; - ret = fgetws (wcs, WIDE_STR_LEN, fp); - - if (ret == NULL) - { - puts ("Return Value: NULL"); - - if (errno == EILSEQ) - puts ("errno = EILSEQ"); - else - printf ("errno = %d\n", errno); - - result = 1; - } - else - { - size_t i; - - printf ("Return Value: %p\n", ret); - for (i = 0; i < wcslen (wcs) + 1; i++) - printf (" wcs[%zd] = 0x%04x", i, (unsigned int)wcs[i]); - printf ("\n"); - - for (i = 0; il_str2[i] != '\n'; ++i) - if ((wchar_t) il_str2[i] != wcs[i]) - { - puts ("read string not correct"); - result = 1; - break; - } - if (il_str2[i] == '\n') - { - if (wcs[i] != L'\n') - { - puts ("newline missing"); - result = 1; - } - else if (wcs[i + 1] != L'\0') - { - puts ("read string not NUL-terminated"); - result = 1; - } - } - } - - puts ("\nsecond line"); - errno = 0; - ret = fgetws (wcs, WIDE_STR_LEN, fp); - - if (ret == NULL) - { - puts ("Return Value: NULL"); - - if (errno == EILSEQ) - puts ("errno = EILSEQ"); - else - { - printf ("errno = %d\n", errno); - result = 1; - } - } - else - { - printf ("Return Value: %p\n", ret); - for (i = 0; i < wcslen (wcs) + 1; i++) - printf (" wcs[%zd] = 0x%04x", i, (unsigned int)wcs[i]); - printf ("\n"); - } - - fclose (fp); - - unlink (name1); - unlink (name2); - - return result; -} |