From: Bruno Haible Date: Tue, 28 Dec 2021 23:05:45 +0000 (+0100) Subject: uniwbrk: Add unit tests of regional indicators. X-Git-Tag: v1.0~2464 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5e34769f5fed04bdd30fb75c55b28067a693a299;p=thirdparty%2Fgnulib.git uniwbrk: Add unit tests of regional indicators. * tests/uniwbrk/test-u8-wordbreaks.c (main): Add test of regional indicators. * tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise. * tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise. --- diff --git a/ChangeLog b/ChangeLog index fd2db814aa..75efed1960 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2021-12-28 Bruno Haible + + uniwbrk: Add unit tests of regional indicators. + * tests/uniwbrk/test-u8-wordbreaks.c (main): Add test of regional + indicators. + * tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise. + * tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise. + 2021-12-28 Bruno Haible unigbrk: Simplify code for regional indicators. diff --git a/tests/uniwbrk/test-u16-wordbreaks.c b/tests/uniwbrk/test-u16-wordbreaks.c index e26b80729b..eb6b13c61a 100644 --- a/tests/uniwbrk/test-u16-wordbreaks.c +++ b/tests/uniwbrk/test-u16-wordbreaks.c @@ -90,5 +90,20 @@ main () free (p); } + /* Test regional indicators. */ + { + static const uint16_t input[10] = + { '.', 0xD83C, 0xDDE9, 0xD83C, 0xDDEA, 0xD83C, 0xDDEB, 0xD83C, 0xDDF7, '.' }; + char *p = (char *) malloc (SIZEOF (input)); + size_t i; + + u16_wordbreaks (input, SIZEOF (input), p); + for (i = 0; i < 10; i++) + { + ASSERT (p[i] == (i == 1 || i == 5 || i == 9 ? 1 : 0)); + } + free (p); + } + return 0; } diff --git a/tests/uniwbrk/test-u32-wordbreaks.c b/tests/uniwbrk/test-u32-wordbreaks.c index d760ac936e..5855486ff6 100644 --- a/tests/uniwbrk/test-u32-wordbreaks.c +++ b/tests/uniwbrk/test-u32-wordbreaks.c @@ -90,5 +90,20 @@ main () free (p); } + /* Test regional indicators. */ + { + static const uint32_t input[6] = + { '.', 0x1F1E9, 0x1F1EA, 0x1F1EB, 0x1F1F7, '.' }; + char *p = (char *) malloc (SIZEOF (input)); + size_t i; + + u32_wordbreaks (input, SIZEOF (input), p); + for (i = 0; i < 6; i++) + { + ASSERT (p[i] == (i == 1 || i == 3 || i == 5 ? 1 : 0)); + } + free (p); + } + return 0; } diff --git a/tests/uniwbrk/test-u8-wordbreaks.c b/tests/uniwbrk/test-u8-wordbreaks.c index 684953db39..2c36840ba8 100644 --- a/tests/uniwbrk/test-u8-wordbreaks.c +++ b/tests/uniwbrk/test-u8-wordbreaks.c @@ -81,5 +81,20 @@ main () free (p); } + /* Test regional indicators. */ + { + static const uint8_t input[18] = + ".\360\237\207\251\360\237\207\252\360\237\207\253\360\237\207\267."; + char *p = (char *) malloc (SIZEOF (input)); + size_t i; + + u8_wordbreaks (input, SIZEOF (input), p); + for (i = 0; i < 18; i++) + { + ASSERT (p[i] == (i == 1 || i == 9 || i == 17 ? 1 : 0)); + } + free (p); + } + return 0; }