(tests): Add tst-iconv2.
[kopensolaris-gnu/glibc.git] / iconv / tst-iconv1.c
1 /* Test case by yaoz@nih.gov.  */
2
3 #include <iconv.h>
4 #include <stdio.h>
5 #include <string.h>
6
7 int
8 main (void)
9 {
10   char utf8[5];
11   wchar_t ucs4[5];
12   iconv_t cd;
13   char *inbuf;
14   char *outbuf;
15   size_t inbytes;
16   size_t outbytes;
17   size_t n;
18
19   strcpy (utf8, "abcd");
20
21   /* From UTF8 to UCS4. */
22   cd = iconv_open ("UCS4", "UTF8");
23   if (cd == (iconv_t) -1)
24     {
25       perror ("iconv_open");
26       return 1;
27     }
28
29   inbuf = utf8;
30   inbytes = 4;
31   outbuf = (char *) ucs4;
32 #ifdef OK
33   outbytes = 5 * sizeof (wchar_t);    /* Ok. */
34 #else
35   outbytes = 4 * sizeof (wchar_t);    /* "Argument list too long" error. */
36 #endif
37   n = iconv (cd, &inbuf, &inbytes, &outbuf, &outbytes);
38   if (n == (size_t) -1)
39     {
40       perror ("iconv");
41       iconv_close (cd);
42       return 1;
43     }
44   iconv_close (cd);
45
46   return 0;
47 }