# HG changeset patch # User Bruno Haible # Date 1238974352 -7200 # Node ID 61a3fa1a741ce983c2fb097d94bf36182cb46eb4 # Parent 9b74d1d0b26724337bba4211c1e0427f8e7201ca Avoid test failure with libiconv-1.13. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-04-05 Bruno Haible + + Avoid test failure with libiconv-1.13. + * tests/test-striconveh.c (main): Allow result of libiconv 1.13 as one + of the expected test results. + 2009-04-05 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Don't add the library to diff --git a/tests/test-striconveh.c b/tests/test-striconveh.c --- a/tests/test-striconveh.c +++ b/tests/test-striconveh.c @@ -1,5 +1,5 @@ /* Test of character set conversion with error handling. - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -392,15 +392,25 @@ case iconveh_question_mark: case iconveh_escape_sequence: { - static const char expected1[] = "?????"; /* glibc */ - static const char expected2[] = "?2D/YQNhB"; /* libiconv */ + /* glibc result */ + static const char expected1[] = "?????"; + /* libiconv <= 1.12 result */ + static const char expected2[] = "?2D/YQNhB"; + /* libiconv behaviour changed in version 1.13: the result is + '?' U+0FF6 U+1036; this is U+D83F U+D840 U+D841 shifted left + by 6 bits. */ + static const char expected3[] = "?\340\277\266\341\200\266"; ASSERT (retval == 0); - ASSERT (length == strlen (expected1) || length == strlen (expected2)); + ASSERT (length == strlen (expected1) + || length == strlen (expected2) + || length == strlen (expected3)); ASSERT (result != NULL); if (length == strlen (expected1)) ASSERT (memcmp (result, expected1, strlen (expected1)) == 0); + else if (length == strlen (expected2)) + ASSERT (memcmp (result, expected2, strlen (expected2)) == 0); else - ASSERT (memcmp (result, expected2, strlen (expected2)) == 0); + ASSERT (memcmp (result, expected3, strlen (expected3)) == 0); free (result); } break;