diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | iconv/Makefile | 2 | ||||
-rw-r--r-- | iconv/tst-iconv4.c | 44 |
3 files changed, 48 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 176144b6fb..be42aaaf96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2002-11-20 Ulrich Drepper <drepper@redhat.com> + * iconv/Makefile (tests): Add tst-iconv4. + * iconv/tst-iconv4.c: New file. + * iconv/gconv_simple.c (internal_ucs4le_loop_unaligned): Return __GCONV_EMPTY_INPUT only if input is really empty. Otherwise __GCONV_INCOMPLETE_INPUT. diff --git a/iconv/Makefile b/iconv/Makefile index 15846c2c07..1a84c6c7a4 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -49,7 +49,7 @@ CFLAGS-charmap.c = -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ CFLAGS-linereader.c = -DNO_TRANSLITERATION CFLAGS-simple-hash.c = -I../locale -tests = tst-iconv1 tst-iconv2 tst-iconv3 +tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 distribute = gconv_builtin.h gconv_int.h loop.c skeleton.c iconv_prog.h \ iconv_charmap.c dummy-repertoire.c gconv_charset.h strtab.c \ diff --git a/iconv/tst-iconv4.c b/iconv/tst-iconv4.c new file mode 100644 index 0000000000..bd687f9315 --- /dev/null +++ b/iconv/tst-iconv4.c @@ -0,0 +1,44 @@ +#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) + { + puts ("n != (size_t) -1"); + 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" |