Update BIG5-HKSCS charmap to HKSCS-2008
[platform/upstream/glibc.git] / iconvdata / bug-iconv8.c
1 // BZ 12601
2 #include <stdio.h>
3 #include <errno.h>
4 #include <iconv.h>
5
6 static int
7 do_test (void)
8 {
9    iconv_t cd;
10    char in[] = "\x83\xd9";
11    char out[256];
12    char *inbuf;
13    size_t inbytesleft;
14    char *outbuf;
15    size_t outbytesleft;
16    size_t ret;
17
18    inbuf = in;
19    inbytesleft = sizeof(in) - 1;
20    outbuf = out;
21    outbytesleft = sizeof(out);
22
23    cd = iconv_open("utf-8", "cp932");
24    ret = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
25    iconv_close(cd);
26
27    printf("result: %zd %d %zd %d\n", ret, errno, inbytesleft, inbuf[0]);
28
29    /*
30     * result: -1 84 0 0        (84=EILSEQ)
31     *
32     * Error is returnd but inbuf is consumed.
33     *
34     * \x83\xd9 is valid shift-jis sequence but no character is assigned
35     * to it.
36     */
37
38    return (ret != -1 || errno != EILSEQ
39            || inbytesleft != 2 || inbuf[0] != in[0]);
40 }
41
42 #define TEST_FUNCTION do_test ()
43 #include "../test-skeleton.c"