summaryrefslogtreecommitdiff
path: root/tests/unistr
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2024-03-03 19:11:45 +0100
committerJörg Frings-Fürst <debian@jff.email>2024-03-03 19:11:45 +0100
commit7cf710f6587e71a193a55d84dd6d8ae1a8a69ce0 (patch)
treedb628840acea83dbccaf5676b89579a80e02ef51 /tests/unistr
parentd83e85a2e6064c36f6ad3c848e39d8b8c101c4f7 (diff)
parent00893e79fc62966067af1a106567db96bd170338 (diff)
Update upstream source from tag 'upstream/1.2'
Update to upstream version '1.2' with Debian dir 16dafe941db3036235f48227f29c6a73587c376d
Diffstat (limited to 'tests/unistr')
-rw-r--r--tests/unistr/test-chr.h19
-rw-r--r--tests/unistr/test-cmp.h2
-rw-r--r--tests/unistr/test-cmp2.h2
-rw-r--r--tests/unistr/test-cpy-alloc.h2
-rw-r--r--tests/unistr/test-cpy.h2
-rw-r--r--tests/unistr/test-move.h2
-rw-r--r--tests/unistr/test-pcpy.h44
-rw-r--r--tests/unistr/test-set.h2
-rw-r--r--tests/unistr/test-stpcpy.h2
-rw-r--r--tests/unistr/test-stpncpy.h2
-rw-r--r--tests/unistr/test-strcat.h2
-rw-r--r--tests/unistr/test-strchr.h7
-rw-r--r--tests/unistr/test-strcmp.h2
-rw-r--r--tests/unistr/test-strcpy.h2
-rw-r--r--tests/unistr/test-strdup.h2
-rw-r--r--tests/unistr/test-strncat.h2
-rw-r--r--tests/unistr/test-strncmp.h2
-rw-r--r--tests/unistr/test-strncpy.h2
-rw-r--r--tests/unistr/test-strnlen.h2
-rw-r--r--tests/unistr/test-u-strstr.h40
-rw-r--r--tests/unistr/test-u-strtok.h12
-rw-r--r--tests/unistr/test-u16-check.c2
-rw-r--r--tests/unistr/test-u16-chr.c2
-rw-r--r--tests/unistr/test-u16-cmp.c2
-rw-r--r--tests/unistr/test-u16-cmp2.c2
-rw-r--r--tests/unistr/test-u16-cpy-alloc.c2
-rw-r--r--tests/unistr/test-u16-cpy.c2
-rw-r--r--tests/unistr/test-u16-mblen.c2
-rw-r--r--tests/unistr/test-u16-mbsnlen.c2
-rw-r--r--tests/unistr/test-u16-mbtouc-unsafe.c2
-rw-r--r--tests/unistr/test-u16-mbtouc.c2
-rw-r--r--tests/unistr/test-u16-mbtouc.h2
-rw-r--r--tests/unistr/test-u16-mbtoucr.c2
-rw-r--r--tests/unistr/test-u16-move.c2
-rw-r--r--tests/unistr/test-u16-next.c2
-rw-r--r--tests/unistr/test-u16-pcpy.c28
-rw-r--r--tests/unistr/test-u16-prev.c2
-rw-r--r--tests/unistr/test-u16-set.c2
-rw-r--r--tests/unistr/test-u16-stpcpy.c2
-rw-r--r--tests/unistr/test-u16-stpncpy.c2
-rw-r--r--tests/unistr/test-u16-strcat.c2
-rw-r--r--tests/unistr/test-u16-strchr.c2
-rw-r--r--tests/unistr/test-u16-strcmp.c2
-rw-r--r--tests/unistr/test-u16-strcmp.h2
-rw-r--r--tests/unistr/test-u16-strcoll.c2
-rw-r--r--tests/unistr/test-u16-strcpy.c2
-rw-r--r--tests/unistr/test-u16-strdup.c2
-rw-r--r--tests/unistr/test-u16-strlen.c2
-rw-r--r--tests/unistr/test-u16-strmblen.c2
-rw-r--r--tests/unistr/test-u16-strmbtouc.c2
-rw-r--r--tests/unistr/test-u16-strncat.c2
-rw-r--r--tests/unistr/test-u16-strncmp.c2
-rw-r--r--tests/unistr/test-u16-strncpy.c2
-rw-r--r--tests/unistr/test-u16-strnlen.c2
-rw-r--r--tests/unistr/test-u16-strstr.c3
-rw-r--r--tests/unistr/test-u16-strtok.c2
-rw-r--r--tests/unistr/test-u16-to-u32.c2
-rw-r--r--tests/unistr/test-u16-to-u8.c2
-rw-r--r--tests/unistr/test-u16-uctomb.c2
-rw-r--r--tests/unistr/test-u32-check.c2
-rw-r--r--tests/unistr/test-u32-chr.c2
-rw-r--r--tests/unistr/test-u32-cmp.c2
-rw-r--r--tests/unistr/test-u32-cmp2.c2
-rw-r--r--tests/unistr/test-u32-cpy-alloc.c2
-rw-r--r--tests/unistr/test-u32-cpy.c2
-rw-r--r--tests/unistr/test-u32-mblen.c2
-rw-r--r--tests/unistr/test-u32-mbsnlen.c2
-rw-r--r--tests/unistr/test-u32-mbtouc-unsafe.c2
-rw-r--r--tests/unistr/test-u32-mbtouc.c2
-rw-r--r--tests/unistr/test-u32-mbtouc.h2
-rw-r--r--tests/unistr/test-u32-mbtoucr.c2
-rw-r--r--tests/unistr/test-u32-move.c2
-rw-r--r--tests/unistr/test-u32-next.c2
-rw-r--r--tests/unistr/test-u32-pcpy.c28
-rw-r--r--tests/unistr/test-u32-prev.c2
-rw-r--r--tests/unistr/test-u32-set.c2
-rw-r--r--tests/unistr/test-u32-stpcpy.c2
-rw-r--r--tests/unistr/test-u32-stpncpy.c2
-rw-r--r--tests/unistr/test-u32-strcat.c2
-rw-r--r--tests/unistr/test-u32-strchr.c2
-rw-r--r--tests/unistr/test-u32-strcmp.c2
-rw-r--r--tests/unistr/test-u32-strcmp.h2
-rw-r--r--tests/unistr/test-u32-strcoll.c2
-rw-r--r--tests/unistr/test-u32-strcpy.c2
-rw-r--r--tests/unistr/test-u32-strdup.c2
-rw-r--r--tests/unistr/test-u32-strlen.c2
-rw-r--r--tests/unistr/test-u32-strmblen.c2
-rw-r--r--tests/unistr/test-u32-strmbtouc.c2
-rw-r--r--tests/unistr/test-u32-strncat.c2
-rw-r--r--tests/unistr/test-u32-strncmp.c2
-rw-r--r--tests/unistr/test-u32-strncpy.c2
-rw-r--r--tests/unistr/test-u32-strnlen.c2
-rw-r--r--tests/unistr/test-u32-strstr.c3
-rw-r--r--tests/unistr/test-u32-strtok.c2
-rw-r--r--tests/unistr/test-u32-to-u16.c2
-rw-r--r--tests/unistr/test-u32-to-u8.c2
-rw-r--r--tests/unistr/test-u32-uctomb.c2
-rw-r--r--tests/unistr/test-u8-check.c2
-rw-r--r--tests/unistr/test-u8-chr.c2
-rw-r--r--tests/unistr/test-u8-cmp.c2
-rw-r--r--tests/unistr/test-u8-cmp2.c2
-rw-r--r--tests/unistr/test-u8-cpy-alloc.c2
-rw-r--r--tests/unistr/test-u8-cpy.c2
-rw-r--r--tests/unistr/test-u8-mblen.c2
-rw-r--r--tests/unistr/test-u8-mbsnlen.c32
-rw-r--r--tests/unistr/test-u8-mbtouc-unsafe.c2
-rw-r--r--tests/unistr/test-u8-mbtouc.c85
-rw-r--r--tests/unistr/test-u8-mbtouc.h2
-rw-r--r--tests/unistr/test-u8-mbtoucr.c2
-rw-r--r--tests/unistr/test-u8-move.c2
-rw-r--r--tests/unistr/test-u8-next.c2
-rw-r--r--tests/unistr/test-u8-pcpy.c28
-rw-r--r--tests/unistr/test-u8-prev.c2
-rw-r--r--tests/unistr/test-u8-set.c2
-rw-r--r--tests/unistr/test-u8-stpcpy.c2
-rw-r--r--tests/unistr/test-u8-stpncpy.c2
-rw-r--r--tests/unistr/test-u8-strcat.c2
-rw-r--r--tests/unistr/test-u8-strchr.c2
-rw-r--r--tests/unistr/test-u8-strcmp.c2
-rw-r--r--tests/unistr/test-u8-strcmp.h2
-rw-r--r--tests/unistr/test-u8-strcoll.c2
-rw-r--r--tests/unistr/test-u8-strcpy.c2
-rw-r--r--tests/unistr/test-u8-strdup.c2
-rw-r--r--tests/unistr/test-u8-strlen.c2
-rw-r--r--tests/unistr/test-u8-strmblen.c2
-rw-r--r--tests/unistr/test-u8-strmbtouc.c2
-rw-r--r--tests/unistr/test-u8-strncat.c2
-rw-r--r--tests/unistr/test-u8-strncmp.c2
-rw-r--r--tests/unistr/test-u8-strncpy.c2
-rw-r--r--tests/unistr/test-u8-strnlen.c2
-rw-r--r--tests/unistr/test-u8-strstr.c3
-rw-r--r--tests/unistr/test-u8-strtok.c2
-rw-r--r--tests/unistr/test-u8-to-u16.c2
-rw-r--r--tests/unistr/test-u8-to-u32.c2
-rw-r--r--tests/unistr/test-u8-uctomb.c2
135 files changed, 424 insertions, 152 deletions
diff --git a/tests/unistr/test-chr.h b/tests/unistr/test-chr.h
index f8f87015..f7bfc2ba 100644
--- a/tests/unistr/test-chr.h
+++ b/tests/unistr/test-chr.h
@@ -1,5 +1,5 @@
/* Test of uN_chr() functions.
- Copyright (C) 2008-2022 Free Software Foundation, Inc.
+ Copyright (C) 2008-2024 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
@@ -20,7 +20,6 @@ int
main (void)
{
size_t size = 0x100000;
- size_t i;
size_t length;
UNIT *input;
uint32_t *input32 = (uint32_t *) malloc (size * sizeof (uint32_t));
@@ -29,7 +28,7 @@ main (void)
input32[0] = 'a';
input32[1] = 'b';
u32_set (input32 + 2, 'c', 1024);
- for (i = 1026; i < size - 2; i += 63)
+ for (size_t i = 1026; i < size - 2; i += 63)
{
size_t last = i + 63 < size - 2 ? i + 63 : size - 2;
ucs4_t uc = 'd' | (i - 1026);
@@ -48,9 +47,11 @@ main (void)
ASSERT (U_CHR (input, length, 'a') == input);
ASSERT (U_CHR (input, 0, 'a') == NULL);
- void *page_boundary = zerosize_ptr ();
- if (page_boundary)
- ASSERT (U_CHR (page_boundary, 0, 'a') == NULL);
+ {
+ void *page_boundary = zerosize_ptr ();
+ if (page_boundary != NULL)
+ ASSERT (U_CHR (page_boundary, 0, 'a') == NULL);
+ }
ASSERT (U_CHR (input, length, 'b') == input + 1);
ASSERT (U_CHR (input, length, 'c') == input + 2);
@@ -59,7 +60,7 @@ main (void)
{
UNIT *exp = input + 1026;
UNIT *prev = input + 1;
- for (i = 1026; i < size - 2; i += 63)
+ for (size_t i = 1026; i < size - 2; i += 63)
{
UNIT c[6];
size_t n;
@@ -108,14 +109,14 @@ main (void)
/* Check that uN_chr() does not read past the first occurrence of the
byte being searched. */
{
- char *page_boundary = (char *) zerosize_ptr ();
+ UNIT *page_boundary = zerosize_ptr ();
size_t n;
if (page_boundary != NULL)
{
for (n = 1; n <= 500 / sizeof (UNIT); n++)
{
- UNIT *mem = (UNIT *) (page_boundary - n * sizeof (UNIT));
+ UNIT *mem = page_boundary - n;
U_SET (mem, 'X', n);
ASSERT (U_CHR (mem, n, 'U') == NULL);
diff --git a/tests/unistr/test-cmp.h b/tests/unistr/test-cmp.h
index c7c92434..3eb1be32 100644
--- a/tests/unistr/test-cmp.h
+++ b/tests/unistr/test-cmp.h
@@ -1,5 +1,5 @@
/* Test of uN_cmp() functions.
- Copyright (C) 2008-2022 Free Software Foundation, Inc.
+ Copyright (C) 2008-2024 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
diff --git a/tests/unistr/test-cmp2.h b/tests/unistr/test-cmp2.h
index 8fe88c54..3b9f7568 100644
--- a/tests/unistr/test-cmp2.h
+++ b/tests/unistr/test-cmp2.h
@@ -1,5 +1,5 @@
/* Test of uN_cmp2() functions.
- Copyright (C) 2008-2022 Free Software Foundation, Inc.
+ Copyright (C) 2008-2024 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
diff --git a/tests/unistr/test-cpy-alloc.h b/tests/unistr/test-cpy-alloc.h
index 5fa46a74..37b07350 100644
--- a/tests/unistr/test-cpy-alloc.h
+++ b/tests/unistr/test-cpy-alloc.h
@@ -1,5 +1,5 @@
/* Test of uN_cpy_alloc() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-cpy.h b/tests/unistr/test-cpy.h
index 12379bb2..05f1f5a8 100644
--- a/tests/unistr/test-cpy.h
+++ b/tests/unistr/test-cpy.h
@@ -1,5 +1,5 @@
/* Test of uN_cpy() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-move.h b/tests/unistr/test-move.h
index fd13b4cc..80784937 100644
--- a/tests/unistr/test-move.h
+++ b/tests/unistr/test-move.h
@@ -1,5 +1,5 @@
/* Test of uN_move() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-pcpy.h b/tests/unistr/test-pcpy.h
new file mode 100644
index 00000000..92ae0d0e
--- /dev/null
+++ b/tests/unistr/test-pcpy.h
@@ -0,0 +1,44 @@
+/* Test of uN_pcpy() functions.
+ Copyright (C) 2010-2024 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
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023. */
+
+int
+main ()
+{
+ /* Test small copying operations. */
+ {
+ static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
+ size_t n;
+
+ for (n = 0; n <= SIZEOF (src); n++)
+ {
+ UNIT dest[1 + SIZEOF (src) + 1] =
+ { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
+ UNIT *ret;
+ size_t i;
+
+ ret = U_PCPY (dest + 1, src, n);
+ ASSERT (ret == dest + 1 + n);
+ ASSERT (dest[0] == MAGIC);
+ for (i = 0; i < n; i++)
+ ASSERT (dest[1 + i] == src[i]);
+ ASSERT (dest[1 + n] == MAGIC);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unistr/test-set.h b/tests/unistr/test-set.h
index 24330260..c1966675 100644
--- a/tests/unistr/test-set.h
+++ b/tests/unistr/test-set.h
@@ -1,5 +1,5 @@
/* Test of uN_set() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-stpcpy.h b/tests/unistr/test-stpcpy.h
index 5b1d6615..e3fe8e5b 100644
--- a/tests/unistr/test-stpcpy.h
+++ b/tests/unistr/test-stpcpy.h
@@ -1,5 +1,5 @@
/* Test of uN_stpcpy() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-stpncpy.h b/tests/unistr/test-stpncpy.h
index 34503bd2..3fc03d51 100644
--- a/tests/unistr/test-stpncpy.h
+++ b/tests/unistr/test-stpncpy.h
@@ -1,5 +1,5 @@
/* Test of uN_stpncpy() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strcat.h b/tests/unistr/test-strcat.h
index 906528ff..12440c43 100644
--- a/tests/unistr/test-strcat.h
+++ b/tests/unistr/test-strcat.h
@@ -1,5 +1,5 @@
/* Test of uN_strcat() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strchr.h b/tests/unistr/test-strchr.h
index 52768a4b..ad102c2e 100644
--- a/tests/unistr/test-strchr.h
+++ b/tests/unistr/test-strchr.h
@@ -1,5 +1,5 @@
/* Test of uN_strchr() functions.
- Copyright (C) 2008-2022 Free Software Foundation, Inc.
+ Copyright (C) 2008-2024 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
@@ -22,7 +22,6 @@ test_strchr (void)
{
size_t size = 0x100000;
size_t length;
- size_t i;
UNIT *input;
uint32_t *input32 = (uint32_t *) malloc ((size + 1) * sizeof (uint32_t));
ASSERT (input32);
@@ -30,7 +29,7 @@ test_strchr (void)
input32[0] = 'a';
input32[1] = 'b';
u32_set (input32 + 2, 'c', 1024);
- for (i = 1026; i < size - 2; i += 63)
+ for (size_t i = 1026; i < size - 2; i += 63)
{
size_t last = i + 63 < size - 2 ? i + 63 : size - 2;
ucs4_t uc = 'd' | (i - 1026);
@@ -54,7 +53,7 @@ test_strchr (void)
UNIT *exp = input + 1026;
UNIT *prev = input + 2;
- for (i = 1026; i < size - 2; i += 63)
+ for (size_t i = 1026; i < size - 2; i += 63)
{
UNIT c[6];
size_t n;
diff --git a/tests/unistr/test-strcmp.h b/tests/unistr/test-strcmp.h
index aeba3549..ea8c1321 100644
--- a/tests/unistr/test-strcmp.h
+++ b/tests/unistr/test-strcmp.h
@@ -1,5 +1,5 @@
/* Test of uN_strcmp() and uN_strcoll() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strcpy.h b/tests/unistr/test-strcpy.h
index 1f145032..9ff1f992 100644
--- a/tests/unistr/test-strcpy.h
+++ b/tests/unistr/test-strcpy.h
@@ -1,5 +1,5 @@
/* Test of uN_strcpy() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strdup.h b/tests/unistr/test-strdup.h
index 298a0459..af19c4d6 100644
--- a/tests/unistr/test-strdup.h
+++ b/tests/unistr/test-strdup.h
@@ -1,5 +1,5 @@
/* Test of uN_strdup() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strncat.h b/tests/unistr/test-strncat.h
index c66583ec..c505fc26 100644
--- a/tests/unistr/test-strncat.h
+++ b/tests/unistr/test-strncat.h
@@ -1,5 +1,5 @@
/* Test of uN_strncat() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strncmp.h b/tests/unistr/test-strncmp.h
index 8fdc4d99..64fecebb 100644
--- a/tests/unistr/test-strncmp.h
+++ b/tests/unistr/test-strncmp.h
@@ -1,5 +1,5 @@
/* Test of uN_strncmp() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strncpy.h b/tests/unistr/test-strncpy.h
index f2774fb0..c3ad19c6 100644
--- a/tests/unistr/test-strncpy.h
+++ b/tests/unistr/test-strncpy.h
@@ -1,5 +1,5 @@
/* Test of uN_strncpy() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-strnlen.h b/tests/unistr/test-strnlen.h
index ba3c0cfd..abc83fb9 100644
--- a/tests/unistr/test-strnlen.h
+++ b/tests/unistr/test-strnlen.h
@@ -1,5 +1,5 @@
/* Test of uN_strnlen() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u-strstr.h b/tests/unistr/test-u-strstr.h
index d53183e1..36783cdf 100644
--- a/tests/unistr/test-u-strstr.h
+++ b/tests/unistr/test-u-strstr.h
@@ -1,5 +1,5 @@
/* Test of uN_strstr() functions.
- Copyright (C) 2004, 2007-2022 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007-2024 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
@@ -207,4 +207,42 @@ test_u_strstr (void)
free (needle);
free (haystack);
}
+
+ /* Test case from Yves Bastide.
+ <https://www.openwall.com/lists/musl/2014/04/18/2> */
+ {
+ const UNIT input[] =
+ { 'p', 'l', 'a', 'y', 'i', 'n', 'g', ' ', 'p', 'l', 'a', 'y', ' ', 'p',
+ 'l', 'a', 'y', ' ', 'p', 'l', 'a', 'y', ' ', 'a', 'l', 'w', 'a', 'y',
+ 's', 0
+ };
+ const UNIT needle[] =
+ { 'p', 'l', 'a', 'y', ' ', 'p', 'l', 'a', 'y', ' ', 'p', 'l', 'a', 'y',
+ 0
+ };
+ const UNIT *result = U_STRSTR (input, needle);
+ ASSERT (result == input + 8);
+ }
+
+ /* Test long needles. */
+ {
+ size_t m = 1024;
+ UNIT *haystack = (UNIT *) malloc ((2 * m + 1) * sizeof (UNIT));
+ UNIT *needle = (UNIT *) malloc ((m + 1) * sizeof (UNIT));
+ if (haystack != NULL && needle != NULL)
+ {
+ const UNIT *p;
+ haystack[0] = 'x';
+ U_SET (haystack + 1, ' ', m - 1);
+ U_SET (haystack + m, 'x', m);
+ haystack[2 * m] = '\0';
+ U_SET (needle, 'x', m);
+ needle[m] = '\0';
+ p = U_STRSTR (haystack, needle);
+ ASSERT (p);
+ ASSERT (p - haystack == m);
+ }
+ free (needle);
+ free (haystack);
+ }
}
diff --git a/tests/unistr/test-u-strtok.h b/tests/unistr/test-u-strtok.h
index 15389ac1..74272d3b 100644
--- a/tests/unistr/test-u-strtok.h
+++ b/tests/unistr/test-u-strtok.h
@@ -1,5 +1,5 @@
/* Test of uN_strtok() functions.
- Copyright (C) 2015-2022 Free Software Foundation, Inc.
+ Copyright (C) 2015-2024 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
@@ -50,10 +50,12 @@ test_u_strtok (void)
'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B', 'D', 'E', 0
};
ucs4_t u_delim[] = { 0x3000, 0x3001, 0 };
- size_t input_len = 6 * SIZEOF (u_input);
- UNIT *input = (UNIT *) malloc (input_len);
- size_t delim_len = 6 * SIZEOF (u_delim);
- UNIT *delim = (UNIT *) malloc (delim_len);
+ /* Convert ucs4_t[] to UNIT[].
+ Every ucs4_t yields at most 4 / sizeof (UNIT) units. */
+ size_t input_len = SIZEOF (u_input) * (4 / sizeof (UNIT));
+ UNIT *input = (UNIT *) malloc (input_len * sizeof (UNIT));
+ size_t delim_len = SIZEOF (u_delim) * (4 / sizeof (UNIT));
+ UNIT *delim = (UNIT *) malloc (delim_len * sizeof (UNIT));
UNIT *state;
const UNIT *result;
UNIT *ptr, *first_ptr, *second_ptr;
diff --git a/tests/unistr/test-u16-check.c b/tests/unistr/test-u16-check.c
index eb7b9988..0d83d6ac 100644
--- a/tests/unistr/test-u16-check.c
+++ b/tests/unistr/test-u16-check.c
@@ -1,5 +1,5 @@
/* Test of u16_check() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-chr.c b/tests/unistr/test-u16-chr.c
index 6e6e1069..5f0b16e5 100644
--- a/tests/unistr/test-u16-chr.c
+++ b/tests/unistr/test-u16-chr.c
@@ -1,5 +1,5 @@
/* Test of u16_chr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-cmp.c b/tests/unistr/test-u16-cmp.c
index 393fa9d7..03d6b4cd 100644
--- a/tests/unistr/test-u16-cmp.c
+++ b/tests/unistr/test-u16-cmp.c
@@ -1,5 +1,5 @@
/* Test of u16_cmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-cmp2.c b/tests/unistr/test-u16-cmp2.c
index e25fe1a6..2eb0dbd0 100644
--- a/tests/unistr/test-u16-cmp2.c
+++ b/tests/unistr/test-u16-cmp2.c
@@ -1,5 +1,5 @@
/* Test of u16_cmp2() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-cpy-alloc.c b/tests/unistr/test-u16-cpy-alloc.c
index 80e8999d..bbc16456 100644
--- a/tests/unistr/test-u16-cpy-alloc.c
+++ b/tests/unistr/test-u16-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Test of u16_cpy_alloc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-cpy.c b/tests/unistr/test-u16-cpy.c
index be7f11aa..cf9993fa 100644
--- a/tests/unistr/test-u16-cpy.c
+++ b/tests/unistr/test-u16-cpy.c
@@ -1,5 +1,5 @@
/* Test of u16_cpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-mblen.c b/tests/unistr/test-u16-mblen.c
index 603cfe1f..a81a79a3 100644
--- a/tests/unistr/test-u16-mblen.c
+++ b/tests/unistr/test-u16-mblen.c
@@ -1,5 +1,5 @@
/* Test of u16_mblen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-mbsnlen.c b/tests/unistr/test-u16-mbsnlen.c
index 02bf2030..f3a249f9 100644
--- a/tests/unistr/test-u16-mbsnlen.c
+++ b/tests/unistr/test-u16-mbsnlen.c
@@ -1,5 +1,5 @@
/* Test of u16_mbsnlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-mbtouc-unsafe.c b/tests/unistr/test-u16-mbtouc-unsafe.c
index 06d4e428..7fd02f27 100644
--- a/tests/unistr/test-u16-mbtouc-unsafe.c
+++ b/tests/unistr/test-u16-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Test of u16_mbtouc_unsafe() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-mbtouc.c b/tests/unistr/test-u16-mbtouc.c
index 57a2b663..b7a3e47c 100644
--- a/tests/unistr/test-u16-mbtouc.c
+++ b/tests/unistr/test-u16-mbtouc.c
@@ -1,5 +1,5 @@
/* Test of u16_mbtouc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-mbtouc.h b/tests/unistr/test-u16-mbtouc.h
index a44a998d..5c33948a 100644
--- a/tests/unistr/test-u16-mbtouc.h
+++ b/tests/unistr/test-u16-mbtouc.h
@@ -1,5 +1,5 @@
/* Test of u16_mbtouc() and u16_mbtouc_unsafe() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-mbtoucr.c b/tests/unistr/test-u16-mbtoucr.c
index dfdab67d..167a77e0 100644
--- a/tests/unistr/test-u16-mbtoucr.c
+++ b/tests/unistr/test-u16-mbtoucr.c
@@ -1,5 +1,5 @@
/* Test of u16_mbtoucr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-move.c b/tests/unistr/test-u16-move.c
index 8e050d44..887912b3 100644
--- a/tests/unistr/test-u16-move.c
+++ b/tests/unistr/test-u16-move.c
@@ -1,5 +1,5 @@
/* Test of u16_move() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-next.c b/tests/unistr/test-u16-next.c
index e2022898..4d116e25 100644
--- a/tests/unistr/test-u16-next.c
+++ b/tests/unistr/test-u16-next.c
@@ -1,5 +1,5 @@
/* Test of u16_next() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-pcpy.c b/tests/unistr/test-u16-pcpy.c
new file mode 100644
index 00000000..b20741e2
--- /dev/null
+++ b/tests/unistr/test-u16-pcpy.c
@@ -0,0 +1,28 @@
+/* Test of u16_pcpy() function.
+ Copyright (C) 2010-2024 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
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023. */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include "macros.h"
+
+#define UNIT uint16_t
+#define U_PCPY u16_pcpy
+#define MAGIC 0xBADE
+#include "test-pcpy.h"
diff --git a/tests/unistr/test-u16-prev.c b/tests/unistr/test-u16-prev.c
index c7400dc5..bf05ea05 100644
--- a/tests/unistr/test-u16-prev.c
+++ b/tests/unistr/test-u16-prev.c
@@ -1,5 +1,5 @@
/* Test of u16_prev() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-set.c b/tests/unistr/test-u16-set.c
index a5270d10..7a6597dd 100644
--- a/tests/unistr/test-u16-set.c
+++ b/tests/unistr/test-u16-set.c
@@ -1,5 +1,5 @@
/* Test of u16_set() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-stpcpy.c b/tests/unistr/test-u16-stpcpy.c
index 5f18e011..616041d2 100644
--- a/tests/unistr/test-u16-stpcpy.c
+++ b/tests/unistr/test-u16-stpcpy.c
@@ -1,5 +1,5 @@
/* Test of u16_stpcpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-stpncpy.c b/tests/unistr/test-u16-stpncpy.c
index 104ea16c..35dd20d5 100644
--- a/tests/unistr/test-u16-stpncpy.c
+++ b/tests/unistr/test-u16-stpncpy.c
@@ -1,5 +1,5 @@
/* Test of u16_stpncpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strcat.c b/tests/unistr/test-u16-strcat.c
index de5448b2..8ec36d4c 100644
--- a/tests/unistr/test-u16-strcat.c
+++ b/tests/unistr/test-u16-strcat.c
@@ -1,5 +1,5 @@
/* Test of u16_strcat() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strchr.c b/tests/unistr/test-u16-strchr.c
index f4ec6881..e23df8c2 100644
--- a/tests/unistr/test-u16-strchr.c
+++ b/tests/unistr/test-u16-strchr.c
@@ -1,5 +1,5 @@
/* Test of u16_strchr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strcmp.c b/tests/unistr/test-u16-strcmp.c
index 7ab3e831..4ee85078 100644
--- a/tests/unistr/test-u16-strcmp.c
+++ b/tests/unistr/test-u16-strcmp.c
@@ -1,5 +1,5 @@
/* Test of u16_strcmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strcmp.h b/tests/unistr/test-u16-strcmp.h
index 84b8d511..3a0f3b18 100644
--- a/tests/unistr/test-u16-strcmp.h
+++ b/tests/unistr/test-u16-strcmp.h
@@ -1,5 +1,5 @@
/* Test of u16_strcmp() and u16_strcoll() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strcoll.c b/tests/unistr/test-u16-strcoll.c
index 9ea43bca..b49f4b66 100644
--- a/tests/unistr/test-u16-strcoll.c
+++ b/tests/unistr/test-u16-strcoll.c
@@ -1,5 +1,5 @@
/* Test of u16_strcoll() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strcpy.c b/tests/unistr/test-u16-strcpy.c
index 7f0e01e6..9d2f475d 100644
--- a/tests/unistr/test-u16-strcpy.c
+++ b/tests/unistr/test-u16-strcpy.c
@@ -1,5 +1,5 @@
/* Test of u16_strcpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strdup.c b/tests/unistr/test-u16-strdup.c
index 798831e1..936bddcb 100644
--- a/tests/unistr/test-u16-strdup.c
+++ b/tests/unistr/test-u16-strdup.c
@@ -1,5 +1,5 @@
/* Test of u16_strdup() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strlen.c b/tests/unistr/test-u16-strlen.c
index 68198a41..e9348b81 100644
--- a/tests/unistr/test-u16-strlen.c
+++ b/tests/unistr/test-u16-strlen.c
@@ -1,5 +1,5 @@
/* Test of u16_strlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strmblen.c b/tests/unistr/test-u16-strmblen.c
index f31d824c..88dd0f27 100644
--- a/tests/unistr/test-u16-strmblen.c
+++ b/tests/unistr/test-u16-strmblen.c
@@ -1,5 +1,5 @@
/* Test of u16_strmblen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strmbtouc.c b/tests/unistr/test-u16-strmbtouc.c
index bb7a5ca9..c4c76ca5 100644
--- a/tests/unistr/test-u16-strmbtouc.c
+++ b/tests/unistr/test-u16-strmbtouc.c
@@ -1,5 +1,5 @@
/* Test of u16_strmbtouc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strncat.c b/tests/unistr/test-u16-strncat.c
index 9eda6e15..6079cb71 100644
--- a/tests/unistr/test-u16-strncat.c
+++ b/tests/unistr/test-u16-strncat.c
@@ -1,5 +1,5 @@
/* Test of u16_strncat() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strncmp.c b/tests/unistr/test-u16-strncmp.c
index 3d03a7a2..45bc9fab 100644
--- a/tests/unistr/test-u16-strncmp.c
+++ b/tests/unistr/test-u16-strncmp.c
@@ -1,5 +1,5 @@
/* Test of u16_strncmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strncpy.c b/tests/unistr/test-u16-strncpy.c
index 184c6311..837dac9c 100644
--- a/tests/unistr/test-u16-strncpy.c
+++ b/tests/unistr/test-u16-strncpy.c
@@ -1,5 +1,5 @@
/* Test of u16_strncpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strnlen.c b/tests/unistr/test-u16-strnlen.c
index 9258b965..48604fee 100644
--- a/tests/unistr/test-u16-strnlen.c
+++ b/tests/unistr/test-u16-strnlen.c
@@ -1,5 +1,5 @@
/* Test of u16_strnlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-strstr.c b/tests/unistr/test-u16-strstr.c
index bbad6c61..4906a96f 100644
--- a/tests/unistr/test-u16-strstr.c
+++ b/tests/unistr/test-u16-strstr.c
@@ -1,5 +1,5 @@
/* Test of u16_strstr() function.
- Copyright (C) 2011-2022 Free Software Foundation, Inc.
+ Copyright (C) 2011-2024 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
@@ -29,6 +29,7 @@
#define UNIT uint16_t
#define U_STRSTR u16_strstr
+#define U_SET u16_set
#include "test-u-strstr.h"
int
diff --git a/tests/unistr/test-u16-strtok.c b/tests/unistr/test-u16-strtok.c
index e226393d..ef9ffbb5 100644
--- a/tests/unistr/test-u16-strtok.c
+++ b/tests/unistr/test-u16-strtok.c
@@ -1,5 +1,5 @@
/* Test of u16_strtok() function.
- Copyright (C) 2015-2022 Free Software Foundation, Inc.
+ Copyright (C) 2015-2024 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
diff --git a/tests/unistr/test-u16-to-u32.c b/tests/unistr/test-u16-to-u32.c
index de19d5a6..5b340451 100644
--- a/tests/unistr/test-u16-to-u32.c
+++ b/tests/unistr/test-u16-to-u32.c
@@ -1,5 +1,5 @@
/* Test of u16_to_u32() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-to-u8.c b/tests/unistr/test-u16-to-u8.c
index acbad8ac..71b9a02e 100644
--- a/tests/unistr/test-u16-to-u8.c
+++ b/tests/unistr/test-u16-to-u8.c
@@ -1,5 +1,5 @@
/* Test of u16_to_u8() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u16-uctomb.c b/tests/unistr/test-u16-uctomb.c
index 3408cba3..14338d63 100644
--- a/tests/unistr/test-u16-uctomb.c
+++ b/tests/unistr/test-u16-uctomb.c
@@ -1,5 +1,5 @@
/* Test of u16_uctomb() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-check.c b/tests/unistr/test-u32-check.c
index 9b43b03e..fab64b23 100644
--- a/tests/unistr/test-u32-check.c
+++ b/tests/unistr/test-u32-check.c
@@ -1,5 +1,5 @@
/* Test of u32_check() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-chr.c b/tests/unistr/test-u32-chr.c
index 7cd3912d..474681ff 100644
--- a/tests/unistr/test-u32-chr.c
+++ b/tests/unistr/test-u32-chr.c
@@ -1,5 +1,5 @@
/* Test of u32_chr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-cmp.c b/tests/unistr/test-u32-cmp.c
index d76024a2..57579eda 100644
--- a/tests/unistr/test-u32-cmp.c
+++ b/tests/unistr/test-u32-cmp.c
@@ -1,5 +1,5 @@
/* Test of u32_cmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-cmp2.c b/tests/unistr/test-u32-cmp2.c
index b3d249da..0fbb8c0a 100644
--- a/tests/unistr/test-u32-cmp2.c
+++ b/tests/unistr/test-u32-cmp2.c
@@ -1,5 +1,5 @@
/* Test of u32_cmp2() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-cpy-alloc.c b/tests/unistr/test-u32-cpy-alloc.c
index f9123115..f3f9d106 100644
--- a/tests/unistr/test-u32-cpy-alloc.c
+++ b/tests/unistr/test-u32-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Test of u32_cpy_alloc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-cpy.c b/tests/unistr/test-u32-cpy.c
index b4f8f90a..0ba5f8b4 100644
--- a/tests/unistr/test-u32-cpy.c
+++ b/tests/unistr/test-u32-cpy.c
@@ -1,5 +1,5 @@
/* Test of u32_cpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-mblen.c b/tests/unistr/test-u32-mblen.c
index 6cfb22a2..5e8e0e29 100644
--- a/tests/unistr/test-u32-mblen.c
+++ b/tests/unistr/test-u32-mblen.c
@@ -1,5 +1,5 @@
/* Test of u32_mblen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-mbsnlen.c b/tests/unistr/test-u32-mbsnlen.c
index 4ef6e316..e8f5c5da 100644
--- a/tests/unistr/test-u32-mbsnlen.c
+++ b/tests/unistr/test-u32-mbsnlen.c
@@ -1,5 +1,5 @@
/* Test of u32_mbsnlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-mbtouc-unsafe.c b/tests/unistr/test-u32-mbtouc-unsafe.c
index cfe0c4ca..111768db 100644
--- a/tests/unistr/test-u32-mbtouc-unsafe.c
+++ b/tests/unistr/test-u32-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Test of u32_mbtouc_unsafe() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-mbtouc.c b/tests/unistr/test-u32-mbtouc.c
index b45e61e2..0804d8e4 100644
--- a/tests/unistr/test-u32-mbtouc.c
+++ b/tests/unistr/test-u32-mbtouc.c
@@ -1,5 +1,5 @@
/* Test of u32_mbtouc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-mbtouc.h b/tests/unistr/test-u32-mbtouc.h
index 1b226a16..37e6342f 100644
--- a/tests/unistr/test-u32-mbtouc.h
+++ b/tests/unistr/test-u32-mbtouc.h
@@ -1,5 +1,5 @@
/* Test of u32_mbtouc() and u32_mbtouc_unsafe() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-mbtoucr.c b/tests/unistr/test-u32-mbtoucr.c
index 30c3ca29..7d74a87a 100644
--- a/tests/unistr/test-u32-mbtoucr.c
+++ b/tests/unistr/test-u32-mbtoucr.c
@@ -1,5 +1,5 @@
/* Test of u32_mbtoucr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-move.c b/tests/unistr/test-u32-move.c
index 26b730bd..82c9a379 100644
--- a/tests/unistr/test-u32-move.c
+++ b/tests/unistr/test-u32-move.c
@@ -1,5 +1,5 @@
/* Test of u32_move() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-next.c b/tests/unistr/test-u32-next.c
index 42103347..320d520e 100644
--- a/tests/unistr/test-u32-next.c
+++ b/tests/unistr/test-u32-next.c
@@ -1,5 +1,5 @@
/* Test of u32_next() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-pcpy.c b/tests/unistr/test-u32-pcpy.c
new file mode 100644
index 00000000..af77cc25
--- /dev/null
+++ b/tests/unistr/test-u32-pcpy.c
@@ -0,0 +1,28 @@
+/* Test of u32_pcpy() function.
+ Copyright (C) 2010-2024 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
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023. */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include "macros.h"
+
+#define UNIT uint32_t
+#define U_PCPY u32_pcpy
+#define MAGIC 0xBADFACE
+#include "test-pcpy.h"
diff --git a/tests/unistr/test-u32-prev.c b/tests/unistr/test-u32-prev.c
index 5dd61f27..7e648dd1 100644
--- a/tests/unistr/test-u32-prev.c
+++ b/tests/unistr/test-u32-prev.c
@@ -1,5 +1,5 @@
/* Test of u32_prev() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-set.c b/tests/unistr/test-u32-set.c
index 6551c9d5..99e644dc 100644
--- a/tests/unistr/test-u32-set.c
+++ b/tests/unistr/test-u32-set.c
@@ -1,5 +1,5 @@
/* Test of u32_set() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-stpcpy.c b/tests/unistr/test-u32-stpcpy.c
index 9bb5adfc..c6ac1751 100644
--- a/tests/unistr/test-u32-stpcpy.c
+++ b/tests/unistr/test-u32-stpcpy.c
@@ -1,5 +1,5 @@
/* Test of u32_stpcpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-stpncpy.c b/tests/unistr/test-u32-stpncpy.c
index 667fb221..a417fe0c 100644
--- a/tests/unistr/test-u32-stpncpy.c
+++ b/tests/unistr/test-u32-stpncpy.c
@@ -1,5 +1,5 @@
/* Test of u32_stpncpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strcat.c b/tests/unistr/test-u32-strcat.c
index cf6ed7fe..64e1b5cc 100644
--- a/tests/unistr/test-u32-strcat.c
+++ b/tests/unistr/test-u32-strcat.c
@@ -1,5 +1,5 @@
/* Test of u32_strcat() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strchr.c b/tests/unistr/test-u32-strchr.c
index 1359e1a4..075d1d66 100644
--- a/tests/unistr/test-u32-strchr.c
+++ b/tests/unistr/test-u32-strchr.c
@@ -1,5 +1,5 @@
/* Test of u32_strchr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strcmp.c b/tests/unistr/test-u32-strcmp.c
index e59bb93e..71fd0b1e 100644
--- a/tests/unistr/test-u32-strcmp.c
+++ b/tests/unistr/test-u32-strcmp.c
@@ -1,5 +1,5 @@
/* Test of u32_strcmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strcmp.h b/tests/unistr/test-u32-strcmp.h
index d32b8e04..4b149103 100644
--- a/tests/unistr/test-u32-strcmp.h
+++ b/tests/unistr/test-u32-strcmp.h
@@ -1,5 +1,5 @@
/* Test of u32_strcmp() and u32_strcoll() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strcoll.c b/tests/unistr/test-u32-strcoll.c
index 73fa65ae..bd3180e1 100644
--- a/tests/unistr/test-u32-strcoll.c
+++ b/tests/unistr/test-u32-strcoll.c
@@ -1,5 +1,5 @@
/* Test of u32_strcoll() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strcpy.c b/tests/unistr/test-u32-strcpy.c
index caf5d4af..22a6e70e 100644
--- a/tests/unistr/test-u32-strcpy.c
+++ b/tests/unistr/test-u32-strcpy.c
@@ -1,5 +1,5 @@
/* Test of u32_strcpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strdup.c b/tests/unistr/test-u32-strdup.c
index 753e50c1..f81701fe 100644
--- a/tests/unistr/test-u32-strdup.c
+++ b/tests/unistr/test-u32-strdup.c
@@ -1,5 +1,5 @@
/* Test of u32_strdup() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strlen.c b/tests/unistr/test-u32-strlen.c
index 6eeb00c0..6186fbdb 100644
--- a/tests/unistr/test-u32-strlen.c
+++ b/tests/unistr/test-u32-strlen.c
@@ -1,5 +1,5 @@
/* Test of u32_strlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strmblen.c b/tests/unistr/test-u32-strmblen.c
index e1ced4e1..62a5a0b0 100644
--- a/tests/unistr/test-u32-strmblen.c
+++ b/tests/unistr/test-u32-strmblen.c
@@ -1,5 +1,5 @@
/* Test of u32_strmblen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strmbtouc.c b/tests/unistr/test-u32-strmbtouc.c
index 29f18316..19003098 100644
--- a/tests/unistr/test-u32-strmbtouc.c
+++ b/tests/unistr/test-u32-strmbtouc.c
@@ -1,5 +1,5 @@
/* Test of u32_strmbtouc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strncat.c b/tests/unistr/test-u32-strncat.c
index eac5119c..10b736d3 100644
--- a/tests/unistr/test-u32-strncat.c
+++ b/tests/unistr/test-u32-strncat.c
@@ -1,5 +1,5 @@
/* Test of u32_strncat() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strncmp.c b/tests/unistr/test-u32-strncmp.c
index 33b8d69e..e304a595 100644
--- a/tests/unistr/test-u32-strncmp.c
+++ b/tests/unistr/test-u32-strncmp.c
@@ -1,5 +1,5 @@
/* Test of u32_strncmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strncpy.c b/tests/unistr/test-u32-strncpy.c
index d65074dd..e78f0b25 100644
--- a/tests/unistr/test-u32-strncpy.c
+++ b/tests/unistr/test-u32-strncpy.c
@@ -1,5 +1,5 @@
/* Test of u32_strncpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strnlen.c b/tests/unistr/test-u32-strnlen.c
index 8138efe6..31b69409 100644
--- a/tests/unistr/test-u32-strnlen.c
+++ b/tests/unistr/test-u32-strnlen.c
@@ -1,5 +1,5 @@
/* Test of u32_strnlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-strstr.c b/tests/unistr/test-u32-strstr.c
index 6d29a69d..21caa784 100644
--- a/tests/unistr/test-u32-strstr.c
+++ b/tests/unistr/test-u32-strstr.c
@@ -1,5 +1,5 @@
/* Test of u32_strstr() function.
- Copyright (C) 2011-2022 Free Software Foundation, Inc.
+ Copyright (C) 2011-2024 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
@@ -29,6 +29,7 @@
#define UNIT uint32_t
#define U_STRSTR u32_strstr
+#define U_SET u32_set
#include "test-u-strstr.h"
int
diff --git a/tests/unistr/test-u32-strtok.c b/tests/unistr/test-u32-strtok.c
index 442bc1a2..90aed3d6 100644
--- a/tests/unistr/test-u32-strtok.c
+++ b/tests/unistr/test-u32-strtok.c
@@ -1,5 +1,5 @@
/* Test of u32_strtok() function.
- Copyright (C) 2015-2022 Free Software Foundation, Inc.
+ Copyright (C) 2015-2024 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
diff --git a/tests/unistr/test-u32-to-u16.c b/tests/unistr/test-u32-to-u16.c
index ac850089..fbf1a03a 100644
--- a/tests/unistr/test-u32-to-u16.c
+++ b/tests/unistr/test-u32-to-u16.c
@@ -1,5 +1,5 @@
/* Test of u32_to_u16() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-to-u8.c b/tests/unistr/test-u32-to-u8.c
index 1a02f795..83144921 100644
--- a/tests/unistr/test-u32-to-u8.c
+++ b/tests/unistr/test-u32-to-u8.c
@@ -1,5 +1,5 @@
/* Test of u32_to_u8() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u32-uctomb.c b/tests/unistr/test-u32-uctomb.c
index d3b1bb65..913398c8 100644
--- a/tests/unistr/test-u32-uctomb.c
+++ b/tests/unistr/test-u32-uctomb.c
@@ -1,5 +1,5 @@
/* Test of u32_uctomb() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-check.c b/tests/unistr/test-u8-check.c
index 8e361cc8..d05c0fcb 100644
--- a/tests/unistr/test-u8-check.c
+++ b/tests/unistr/test-u8-check.c
@@ -1,5 +1,5 @@
/* Test of u8_check() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-chr.c b/tests/unistr/test-u8-chr.c
index a0a46d95..c0827063 100644
--- a/tests/unistr/test-u8-chr.c
+++ b/tests/unistr/test-u8-chr.c
@@ -1,5 +1,5 @@
/* Test of u8_chr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-cmp.c b/tests/unistr/test-u8-cmp.c
index 528e691e..47b0f215 100644
--- a/tests/unistr/test-u8-cmp.c
+++ b/tests/unistr/test-u8-cmp.c
@@ -1,5 +1,5 @@
/* Test of u8_cmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-cmp2.c b/tests/unistr/test-u8-cmp2.c
index 9a3b99cf..b5063784 100644
--- a/tests/unistr/test-u8-cmp2.c
+++ b/tests/unistr/test-u8-cmp2.c
@@ -1,5 +1,5 @@
/* Test of u8_cmp2() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-cpy-alloc.c b/tests/unistr/test-u8-cpy-alloc.c
index 726148e8..d0e11542 100644
--- a/tests/unistr/test-u8-cpy-alloc.c
+++ b/tests/unistr/test-u8-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Test of u8_cpy_alloc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-cpy.c b/tests/unistr/test-u8-cpy.c
index 58cc5f81..33987177 100644
--- a/tests/unistr/test-u8-cpy.c
+++ b/tests/unistr/test-u8-cpy.c
@@ -1,5 +1,5 @@
/* Test of u8_cpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-mblen.c b/tests/unistr/test-u8-mblen.c
index 54dbd4b5..69ac7e55 100644
--- a/tests/unistr/test-u8-mblen.c
+++ b/tests/unistr/test-u8-mblen.c
@@ -1,5 +1,5 @@
/* Test of u8_mblen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-mbsnlen.c b/tests/unistr/test-u8-mbsnlen.c
index 7b8f0292..ca31d856 100644
--- a/tests/unistr/test-u8-mbsnlen.c
+++ b/tests/unistr/test-u8-mbsnlen.c
@@ -1,5 +1,5 @@
/* Test of u8_mbsnlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
@@ -61,9 +61,18 @@ main ()
that a "malformed sequence" is interpreted in the same way as
"a character that is outside the adopted subset".
Reference:
+ ISO 10646-1 amendment 2
+ <https://www.cl.cam.ac.uk/~mgk25/ucs/ISO-10646-UTF-8.html>
Markus Kuhn: UTF-8 decoder capability and stress test
<https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt>
<https://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html>
+ These old specifications (from ca. 2000) were a bit ambiguous, and the
+ definition of UTF-8 has changed a bit as well. The newer specification
+ we obey is the Unicode Standard, version 15.
+ Reference:
+ Unicode Standard 15.0.0, section 3.9
+ <https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf>
+ pages 124..129, especially table 3-7.
*/
/* 3.1. Test that each unexpected continuation byte is signalled as a
malformed sequence of its own. */
@@ -97,9 +106,14 @@ main ()
}
/* 3.3.2. 3-byte sequence with last byte missing. */
{
- static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+ static const uint8_t input[] = { '"', 0xE0, 0xA0, '"' };
ASSERT (u8_mbsnlen (input, 4) == 3);
}
+ {
+ /* Outdated example: 0xE0 0x80 is an ill-formed sequence. */
+ static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+ ASSERT (u8_mbsnlen (input, 4) == 4);
+ }
/* 3.3.7. 3-byte sequence with last byte missing. */
{
static const uint8_t input[] = { '"', 0xEF, 0xBF, '"' };
@@ -107,14 +121,24 @@ main ()
}
/* 3.3.3. 4-byte sequence with last byte missing. */
{
- static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+ static const uint8_t input[] = { '"', 0xF0, 0x90, 0x80, '"' };
ASSERT (u8_mbsnlen (input, 5) == 3);
}
+ {
+ /* Outdated example: 0xF0 0x80 is an ill-formed sequence. */
+ static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+ ASSERT (u8_mbsnlen (input, 5) == 5);
+ }
/* 3.3.8. 4-byte sequence with last byte missing. */
{
- static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+ static const uint8_t input[] = { '"', 0xF3, 0xBF, 0xBF, '"' };
ASSERT (u8_mbsnlen (input, 5) == 3);
}
+ {
+ /* Outdated example: 0xF7 is an invalid first byte. */
+ static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+ ASSERT (u8_mbsnlen (input, 5) == 5);
+ }
return 0;
}
diff --git a/tests/unistr/test-u8-mbtouc-unsafe.c b/tests/unistr/test-u8-mbtouc-unsafe.c
index 1e29f8bc..8b471ea4 100644
--- a/tests/unistr/test-u8-mbtouc-unsafe.c
+++ b/tests/unistr/test-u8-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Test of u8_mbtouc_unsafe() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-mbtouc.c b/tests/unistr/test-u8-mbtouc.c
index 39bcaef9..c063c9ab 100644
--- a/tests/unistr/test-u8-mbtouc.c
+++ b/tests/unistr/test-u8-mbtouc.c
@@ -1,5 +1,5 @@
/* Test of u8_mbtouc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
@@ -34,9 +34,18 @@ test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
that a "malformed sequence" is interpreted in the same way as
"a character that is outside the adopted subset".
Reference:
+ ISO 10646-1 amendment 2
+ <https://www.cl.cam.ac.uk/~mgk25/ucs/ISO-10646-UTF-8.html>
Markus Kuhn: UTF-8 decoder capability and stress test
<https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt>
<https://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html>
+ These old specifications (from ca. 2000) were a bit ambiguous, and the
+ definition of UTF-8 has changed a bit as well. The newer specification
+ we obey is the Unicode Standard, version 15.
+ Reference:
+ Unicode Standard 15.0.0, section 3.9
+ <https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf>
+ pages 124..129, especially table 3-7.
*/
/* 3.1. Test that each unexpected continuation byte is signalled as a
malformed sequence of its own. */
@@ -118,7 +127,7 @@ test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
}
/* 3.3.2. 3-byte sequence with last byte missing. */
{
- static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+ static const uint8_t input[] = { '"', 0xE0, 0xA0, '"' };
uc = 0xBADFACE;
ret = my_u8_mbtouc (&uc, input, 4);
ASSERT (ret == 1);
@@ -132,6 +141,26 @@ test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
ASSERT (ret == 1);
ASSERT (uc == 0x0022);
}
+ {
+ /* Outdated example: 0xE0 0x80 is an ill-formed sequence. */
+ static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input, 4);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0x0022);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 1, 3);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 2, 2);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 3, 1);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0x0022);
+ }
/* 3.3.7. 3-byte sequence with last byte missing. */
{
static const uint8_t input[] = { '"', 0xEF, 0xBF, '"' };
@@ -150,7 +179,7 @@ test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
}
/* 3.3.3. 4-byte sequence with last byte missing. */
{
- static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+ static const uint8_t input[] = { '"', 0xF0, 0x90, 0x80, '"' };
uc = 0xBADFACE;
ret = my_u8_mbtouc (&uc, input, 5);
ASSERT (ret == 1);
@@ -164,9 +193,33 @@ test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
ASSERT (ret == 1);
ASSERT (uc == 0x0022);
}
+ {
+ /* Outdated example: 0xF0 0x80 is an ill-formed sequence. */
+ static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input, 5);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0x0022);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 1, 4);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 2, 3);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 3, 2);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 4, 1);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0x0022);
+ }
/* 3.3.8. 4-byte sequence with last byte missing. */
{
- static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+ static const uint8_t input[] = { '"', 0xF3, 0xBF, 0xBF, '"' };
uc = 0xBADFACE;
ret = my_u8_mbtouc (&uc, input, 5);
ASSERT (ret == 1);
@@ -180,6 +233,30 @@ test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
ASSERT (ret == 1);
ASSERT (uc == 0x0022);
}
+ {
+ /* Outdated example: 0xF7 is an invalid first byte. */
+ static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input, 5);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0x0022);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 1, 4);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 2, 3);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 3, 2);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0xFFFD);
+ uc = 0xBADFACE;
+ ret = my_u8_mbtouc (&uc, input + 4, 1);
+ ASSERT (ret == 1);
+ ASSERT (uc == 0x0022);
+ }
}
int
diff --git a/tests/unistr/test-u8-mbtouc.h b/tests/unistr/test-u8-mbtouc.h
index fcfe3df8..dfe70be3 100644
--- a/tests/unistr/test-u8-mbtouc.h
+++ b/tests/unistr/test-u8-mbtouc.h
@@ -1,5 +1,5 @@
/* Test of u8_mbtouc() and u8_mbtouc_unsafe() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-mbtoucr.c b/tests/unistr/test-u8-mbtoucr.c
index e6102603..6a4a74a2 100644
--- a/tests/unistr/test-u8-mbtoucr.c
+++ b/tests/unistr/test-u8-mbtoucr.c
@@ -1,5 +1,5 @@
/* Test of u8_mbtoucr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-move.c b/tests/unistr/test-u8-move.c
index baf074ec..a0c7ad79 100644
--- a/tests/unistr/test-u8-move.c
+++ b/tests/unistr/test-u8-move.c
@@ -1,5 +1,5 @@
/* Test of u8_move() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-next.c b/tests/unistr/test-u8-next.c
index e3e43121..cdc1f763 100644
--- a/tests/unistr/test-u8-next.c
+++ b/tests/unistr/test-u8-next.c
@@ -1,5 +1,5 @@
/* Test of u8_next() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-pcpy.c b/tests/unistr/test-u8-pcpy.c
new file mode 100644
index 00000000..dbd83ad5
--- /dev/null
+++ b/tests/unistr/test-u8-pcpy.c
@@ -0,0 +1,28 @@
+/* Test of u8_pcpy() function.
+ Copyright (C) 2010-2024 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
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2023. */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include "macros.h"
+
+#define UNIT uint8_t
+#define U_PCPY u8_pcpy
+#define MAGIC 0xBA
+#include "test-pcpy.h"
diff --git a/tests/unistr/test-u8-prev.c b/tests/unistr/test-u8-prev.c
index 8b21ce29..5bbb5ce1 100644
--- a/tests/unistr/test-u8-prev.c
+++ b/tests/unistr/test-u8-prev.c
@@ -1,5 +1,5 @@
/* Test of u8_prev() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-set.c b/tests/unistr/test-u8-set.c
index 223a5127..d06e0e0b 100644
--- a/tests/unistr/test-u8-set.c
+++ b/tests/unistr/test-u8-set.c
@@ -1,5 +1,5 @@
/* Test of u8_set() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-stpcpy.c b/tests/unistr/test-u8-stpcpy.c
index daeb6ae9..6cdb850c 100644
--- a/tests/unistr/test-u8-stpcpy.c
+++ b/tests/unistr/test-u8-stpcpy.c
@@ -1,5 +1,5 @@
/* Test of u8_stpcpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-stpncpy.c b/tests/unistr/test-u8-stpncpy.c
index a7987c31..873b1abd 100644
--- a/tests/unistr/test-u8-stpncpy.c
+++ b/tests/unistr/test-u8-stpncpy.c
@@ -1,5 +1,5 @@
/* Test of u8_stpncpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strcat.c b/tests/unistr/test-u8-strcat.c
index 9dde531d..2a999f66 100644
--- a/tests/unistr/test-u8-strcat.c
+++ b/tests/unistr/test-u8-strcat.c
@@ -1,5 +1,5 @@
/* Test of u8_strcat() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strchr.c b/tests/unistr/test-u8-strchr.c
index cfd40779..69e21a66 100644
--- a/tests/unistr/test-u8-strchr.c
+++ b/tests/unistr/test-u8-strchr.c
@@ -1,5 +1,5 @@
/* Test of u8_strchr() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strcmp.c b/tests/unistr/test-u8-strcmp.c
index 447c6162..a0d3d7fc 100644
--- a/tests/unistr/test-u8-strcmp.c
+++ b/tests/unistr/test-u8-strcmp.c
@@ -1,5 +1,5 @@
/* Test of u8_strcmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strcmp.h b/tests/unistr/test-u8-strcmp.h
index 7eaf2887..177d4bfc 100644
--- a/tests/unistr/test-u8-strcmp.h
+++ b/tests/unistr/test-u8-strcmp.h
@@ -1,5 +1,5 @@
/* Test of u8_strcmp() and u8_strcoll() functions.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strcoll.c b/tests/unistr/test-u8-strcoll.c
index 7949e1a6..b86ea403 100644
--- a/tests/unistr/test-u8-strcoll.c
+++ b/tests/unistr/test-u8-strcoll.c
@@ -1,5 +1,5 @@
/* Test of u8_strcoll() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strcpy.c b/tests/unistr/test-u8-strcpy.c
index dd9b40bf..9cf181b1 100644
--- a/tests/unistr/test-u8-strcpy.c
+++ b/tests/unistr/test-u8-strcpy.c
@@ -1,5 +1,5 @@
/* Test of u8_strcpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strdup.c b/tests/unistr/test-u8-strdup.c
index 84a35053..fdb76026 100644
--- a/tests/unistr/test-u8-strdup.c
+++ b/tests/unistr/test-u8-strdup.c
@@ -1,5 +1,5 @@
/* Test of u8_strdup() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strlen.c b/tests/unistr/test-u8-strlen.c
index 91a59663..a13a24fd 100644
--- a/tests/unistr/test-u8-strlen.c
+++ b/tests/unistr/test-u8-strlen.c
@@ -1,5 +1,5 @@
/* Test of u8_strlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strmblen.c b/tests/unistr/test-u8-strmblen.c
index 735dd905..2fdef5cf 100644
--- a/tests/unistr/test-u8-strmblen.c
+++ b/tests/unistr/test-u8-strmblen.c
@@ -1,5 +1,5 @@
/* Test of u8_strmblen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strmbtouc.c b/tests/unistr/test-u8-strmbtouc.c
index 74a96c1b..a9db79fa 100644
--- a/tests/unistr/test-u8-strmbtouc.c
+++ b/tests/unistr/test-u8-strmbtouc.c
@@ -1,5 +1,5 @@
/* Test of u8_strmbtouc() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strncat.c b/tests/unistr/test-u8-strncat.c
index d0c854c4..166952a2 100644
--- a/tests/unistr/test-u8-strncat.c
+++ b/tests/unistr/test-u8-strncat.c
@@ -1,5 +1,5 @@
/* Test of u8_strncat() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strncmp.c b/tests/unistr/test-u8-strncmp.c
index ada859ef..78aac0c9 100644
--- a/tests/unistr/test-u8-strncmp.c
+++ b/tests/unistr/test-u8-strncmp.c
@@ -1,5 +1,5 @@
/* Test of u8_strncmp() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strncpy.c b/tests/unistr/test-u8-strncpy.c
index 824b85df..22bb35a4 100644
--- a/tests/unistr/test-u8-strncpy.c
+++ b/tests/unistr/test-u8-strncpy.c
@@ -1,5 +1,5 @@
/* Test of u8_strncpy() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strnlen.c b/tests/unistr/test-u8-strnlen.c
index 1a740d0d..c409fc90 100644
--- a/tests/unistr/test-u8-strnlen.c
+++ b/tests/unistr/test-u8-strnlen.c
@@ -1,5 +1,5 @@
/* Test of u8_strnlen() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-strstr.c b/tests/unistr/test-u8-strstr.c
index b3610e46..791e1c97 100644
--- a/tests/unistr/test-u8-strstr.c
+++ b/tests/unistr/test-u8-strstr.c
@@ -1,5 +1,5 @@
/* Test of u8_strstr() function.
- Copyright (C) 2011-2022 Free Software Foundation, Inc.
+ Copyright (C) 2011-2024 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
@@ -29,6 +29,7 @@
#define UNIT uint8_t
#define U_STRSTR u8_strstr
+#define U_SET u8_set
#include "test-u-strstr.h"
int
diff --git a/tests/unistr/test-u8-strtok.c b/tests/unistr/test-u8-strtok.c
index 11c364e8..8d425c40 100644
--- a/tests/unistr/test-u8-strtok.c
+++ b/tests/unistr/test-u8-strtok.c
@@ -1,5 +1,5 @@
/* Test of u8_strtok() function.
- Copyright (C) 2015-2022 Free Software Foundation, Inc.
+ Copyright (C) 2015-2024 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
diff --git a/tests/unistr/test-u8-to-u16.c b/tests/unistr/test-u8-to-u16.c
index 377cf38d..ec104ace 100644
--- a/tests/unistr/test-u8-to-u16.c
+++ b/tests/unistr/test-u8-to-u16.c
@@ -1,5 +1,5 @@
/* Test of u8_to_u16() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-to-u32.c b/tests/unistr/test-u8-to-u32.c
index 384c9dc9..5ab9752c 100644
--- a/tests/unistr/test-u8-to-u32.c
+++ b/tests/unistr/test-u8-to-u32.c
@@ -1,5 +1,5 @@
/* Test of u8_to_u32() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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
diff --git a/tests/unistr/test-u8-uctomb.c b/tests/unistr/test-u8-uctomb.c
index cf37cb9b..2948eb09 100644
--- a/tests/unistr/test-u8-uctomb.c
+++ b/tests/unistr/test-u8-uctomb.c
@@ -1,5 +1,5 @@
/* Test of u8_uctomb() function.
- Copyright (C) 2010-2022 Free Software Foundation, Inc.
+ Copyright (C) 2010-2024 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