1#include <errno.h>
2#include <iconv.h>
3#include <stdio.h>
4#include <stdlib.h>
5#include <string.h>
6
7
8static int
9do_test (void)
10{
11 iconv_t cd = iconv_open (tocode: "ISO-8859-1", fromcode: "UNICODE");
12 if (cd == (iconv_t) -1)
13 {
14 printf (format: "iconv_open failed: %m\n");
15 exit (EXIT_FAILURE);
16 }
17
18 char instr[] = "a";
19 char *inptr = instr;
20 size_t inlen = strlen (s: instr);
21 char buf[200];
22 char *outptr = buf;
23 size_t outlen = sizeof (outptr);
24
25 errno = 0;
26 size_t n = iconv (cd: cd, inbuf: &inptr, inbytesleft: &inlen, outbuf: &outptr, outbytesleft: &outlen);
27 if (n != (size_t) -1)
28 {
29 printf (format: "n (= %zu) != (size_t) -1\n", n);
30 exit (EXIT_FAILURE);
31 }
32 if (errno != EINVAL)
33 {
34 printf (format: "errno = %m, not EINVAL\n");
35 exit (EXIT_FAILURE);
36 }
37
38 iconv_close (cd: cd);
39
40 return 0;
41}
42
43#define TEST_FUNCTION do_test ()
44#include "../test-skeleton.c"
45

source code of glibc/iconvdata/tst-iconv4.c