Hello, When trying to compile an older gettext tarball with libunistring 0.9.5-alpha3 (with an update to Unicode 7.0.0), I encountered a test failure caused by a data mismatch:
FAIL: uniname/test-uninames.sh ============================== \u037F name lookup returned wrong name: GREEK CAPITAL LETTER YOT where \u037F is not defined in the test data bundled in the gettext tarball (based on Unicode 5.0.0), but in the system's libunistring. For the meantime I plan to go with the attached a patch, which skips the test when system's libunistring is used. However, I'm not really sure of the relationship between Gnulib modules and system's libunistring. For example, modules/unistr/u32-mbtouc-tests has a line: test_u32_mbtouc_LDADD = $(LDADD) $(LIBUNISTRING) This prefers system's libunistring to the corresponding Gnulib module. I think Gnulib tests should rather prefer Gnulib modules. Does anyone know what's the rationale behind this? Regards, -- Daiki Ueno
>From 1125daef9fc55de5af4fd9ebd71cc63a26c5051b Mon Sep 17 00:00:00 2001 From: Daiki Ueno <u...@gnu.org> Date: Thu, 27 Nov 2014 16:46:38 +0900 Subject: [PATCH] uniname/uniname-tests: skip if system's libunistring is used The test fails if the system's libunistring defines new characters not in the bundled UnicodeDataNames.txt. * tests/uniname/test-uninames.c (main): Skip the test if the system's libunistring is linked. --- ChangeLog | 8 ++++++++ tests/uniname/test-uninames.c | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index e051495..2db70d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2014-11-27 Daiki Ueno <u...@gnu.org> + + uniname/uniname-tests: skip if system's libunistring is used + The test fails if the system's libunistring defines new characters + not in the bundled UnicodeDataNames.txt. + * tests/uniname/test-uninames.c (main): Skip the test if the + system's libunistring is linked. + 2014-11-22 Daiki Ueno <u...@gnu.org> pipe-filter-gi, pipe-filter-ii: port to AIX diff --git a/tests/uniname/test-uninames.c b/tests/uniname/test-uninames.c index a11e82b..b154fb6 100644 --- a/tests/uniname/test-uninames.c +++ b/tests/uniname/test-uninames.c @@ -253,10 +253,15 @@ main (int argc, char *argv[]) set_program_name (argv[0]); +#if HAVE_LIBUNISTRING + fprintf (stderr, "Skipping test: system's libunistring is used\n"); + error = 77; +#else fill_names (argv[1]); error |= test_name_lookup (); error |= test_inverse_lookup (); +#endif return error; } -- 2.1.0