diff options
Diffstat (limited to 'tests/unigbrk/test-u8-grapheme-prev.c')
| -rw-r--r-- | tests/unigbrk/test-u8-grapheme-prev.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/tests/unigbrk/test-u8-grapheme-prev.c b/tests/unigbrk/test-u8-grapheme-prev.c index 31e9c77f..0612836d 100644 --- a/tests/unigbrk/test-u8-grapheme-prev.c +++ b/tests/unigbrk/test-u8-grapheme-prev.c @@ -1,5 +1,5 @@ /* Previous grapheme cluster test. - Copyright (C) 2010-2024 Free Software Foundation, Inc. + Copyright (C) 2010-2026 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published @@ -34,14 +34,12 @@ test_u8_grapheme_prev (const char *input, size_t n, size_t len) const uint8_t *prev = u8_grapheme_prev (end, s); if (prev != end - len) { - size_t i; - if (prev == NULL) fputs ("u8_grapheme_prev returned NULL", stderr); else fprintf (stderr, "u8_grapheme_prev skipped %tu bytes", end - prev); fprintf (stderr, ", expected %zu:\n", len); - for (i = 0; i < n; i++) + for (size_t i = 0; i < n; i++) fprintf (stderr, " %02x", s[i]); putc ('\n', stderr); fflush (stderr); @@ -77,5 +75,16 @@ main (void) test_u8_grapheme_prev ("e"ACUTE"x", 4, 1); test_u8_grapheme_prev ("e"ACUTE "e"ACUTE, 6, 3); + /* CR LF handling. */ + test_u8_grapheme_prev ("c\r\n", 3, 2); + + /* Emoji modifier / ZWJ sequence. */ + test_u8_grapheme_prev ("\342\255\220\314\205\315\207\342\200\215\342\230\200", + 13, 13); + + /* Regional indicators. */ + test_u8_grapheme_prev ("\360\237\207\251\360\237\207\252\360\237\207\253\360\237\207\267", + 16, 8); + return test_exit_status; } |
