| #include <errno.h> |
| #include <iconv.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| |
| |
| static int |
| do_test (void) |
| { |
| iconv_t cd = iconv_open ("ISO-8859-1", "UNICODE"); |
| if (cd == (iconv_t) -1) |
| { |
| printf ("iconv_open failed: %m\n"); |
| exit (EXIT_FAILURE); |
| } |
| |
| char instr[] = "a"; |
| char *inptr = instr; |
| size_t inlen = strlen (instr); |
| char buf[200]; |
| char *outptr = buf; |
| size_t outlen = sizeof (outptr); |
| |
| errno = 0; |
| size_t n = iconv (cd, &inptr, &inlen, &outptr, &outlen); |
| if (n != (size_t) -1) |
| { |
| printf ("n (= %zu) != (size_t) -1\n", n); |
| exit (EXIT_FAILURE); |
| } |
| if (errno != EINVAL) |
| { |
| printf ("errno = %m, not EINVAL\n"); |
| exit (EXIT_FAILURE); |
| } |
| |
| iconv_close (cd); |
| |
| return 0; |
| } |
| |
| #define TEST_FUNCTION do_test () |
| #include "../test-skeleton.c" |