From: Bruno Haible Date: Fri, 21 Jul 2023 09:22:27 +0000 (+0200) Subject: unistr/u8-pcpy, unistr/u16-pcpy, unistr/u32-pcpy: Add tests. X-Git-Tag: v1.0~1050 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=bb8dc8433993aa3963644a9fd67437097acf0060;p=gnulib.git unistr/u8-pcpy, unistr/u16-pcpy, unistr/u32-pcpy: Add tests. * tests/unistr/test-pcpy.h: New file, based on tests/unistr/test-cpy.h. * tests/unistr/test-u8-pcpy.c: New file, based on tests/unistr/test-u8-cpy.c. * tests/unistr/test-u16-pcpy.c: New file, based on tests/unistr/test-u16-cpy.c. * tests/unistr/test-u32-pcpy.c: New file, based on tests/unistr/test-u32-cpy.c. * modules/unistr/u8-pcpy-tests: New file, based on modules/unistr/u8-cpy-tests. * modules/unistr/u16-pcpy-tests: New file, based on modules/unistr/u16-cpy-tests. * modules/unistr/u32-pcpy-tests: New file, based on modules/unistr/u32-cpy-tests. --- diff --git a/ChangeLog b/ChangeLog index 820bf716b8..bd6e43518d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ 2023-07-21 Bruno Haible + unistr/u8-pcpy, unistr/u16-pcpy, unistr/u32-pcpy: Add tests. + * tests/unistr/test-pcpy.h: New file, based on tests/unistr/test-cpy.h. + * tests/unistr/test-u8-pcpy.c: New file, based on + tests/unistr/test-u8-cpy.c. + * tests/unistr/test-u16-pcpy.c: New file, based on + tests/unistr/test-u16-cpy.c. + * tests/unistr/test-u32-pcpy.c: New file, based on + tests/unistr/test-u32-cpy.c. + * modules/unistr/u8-pcpy-tests: New file, based on + modules/unistr/u8-cpy-tests. + * modules/unistr/u16-pcpy-tests: New file, based on + modules/unistr/u16-cpy-tests. + * modules/unistr/u32-pcpy-tests: New file, based on + modules/unistr/u32-cpy-tests. + unistr/u8-pcpy, unistr/u16-pcpy, unistr/u32-pcpy: New modules. * lib/unistr.in.h (u8_pcpy, u16_pcpy, u32_pcpy): New declarations. * lib/unistr/u-pcpy.h: New file, based on lib/wmempcpy.c. diff --git a/modules/unistr/u16-pcpy-tests b/modules/unistr/u16-pcpy-tests new file mode 100644 index 0000000000..ace26360cb --- /dev/null +++ b/modules/unistr/u16-pcpy-tests @@ -0,0 +1,14 @@ +Files: +tests/unistr/test-u16-pcpy.c +tests/unistr/test-pcpy.h +tests/macros.h + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-u16-pcpy +check_PROGRAMS += test-u16-pcpy +test_u16_pcpy_SOURCES = unistr/test-u16-pcpy.c +test_u16_pcpy_LDADD = $(LDADD) $(LIBUNISTRING) diff --git a/modules/unistr/u32-pcpy-tests b/modules/unistr/u32-pcpy-tests new file mode 100644 index 0000000000..4c897b1f21 --- /dev/null +++ b/modules/unistr/u32-pcpy-tests @@ -0,0 +1,14 @@ +Files: +tests/unistr/test-u32-pcpy.c +tests/unistr/test-pcpy.h +tests/macros.h + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-u32-pcpy +check_PROGRAMS += test-u32-pcpy +test_u32_pcpy_SOURCES = unistr/test-u32-pcpy.c +test_u32_pcpy_LDADD = $(LDADD) $(LIBUNISTRING) diff --git a/modules/unistr/u8-pcpy-tests b/modules/unistr/u8-pcpy-tests new file mode 100644 index 0000000000..cdd9bfefba --- /dev/null +++ b/modules/unistr/u8-pcpy-tests @@ -0,0 +1,14 @@ +Files: +tests/unistr/test-u8-pcpy.c +tests/unistr/test-pcpy.h +tests/macros.h + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-u8-pcpy +check_PROGRAMS += test-u8-pcpy +test_u8_pcpy_SOURCES = unistr/test-u8-pcpy.c +test_u8_pcpy_LDADD = $(LDADD) $(LIBUNISTRING) diff --git a/tests/unistr/test-pcpy.h b/tests/unistr/test-pcpy.h new file mode 100644 index 0000000000..b54e3a90fb --- /dev/null +++ b/tests/unistr/test-pcpy.h @@ -0,0 +1,44 @@ +/* Test of uN_pcpy() functions. + Copyright (C) 2010-2023 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 . */ + +/* Written by Bruno Haible , 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-u16-pcpy.c b/tests/unistr/test-u16-pcpy.c new file mode 100644 index 0000000000..8f82d9b78f --- /dev/null +++ b/tests/unistr/test-u16-pcpy.c @@ -0,0 +1,28 @@ +/* Test of u16_pcpy() function. + Copyright (C) 2010-2023 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 . */ + +/* Written by Bruno Haible , 2023. */ + +#include + +#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-u32-pcpy.c b/tests/unistr/test-u32-pcpy.c new file mode 100644 index 0000000000..276fad4daf --- /dev/null +++ b/tests/unistr/test-u32-pcpy.c @@ -0,0 +1,28 @@ +/* Test of u32_pcpy() function. + Copyright (C) 2010-2023 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 . */ + +/* Written by Bruno Haible , 2023. */ + +#include + +#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-u8-pcpy.c b/tests/unistr/test-u8-pcpy.c new file mode 100644 index 0000000000..d910020061 --- /dev/null +++ b/tests/unistr/test-u8-pcpy.c @@ -0,0 +1,28 @@ +/* Test of u8_pcpy() function. + Copyright (C) 2010-2023 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 . */ + +/* Written by Bruno Haible , 2023. */ + +#include + +#include "unistr.h" + +#include "macros.h" + +#define UNIT uint8_t +#define U_PCPY u8_pcpy +#define MAGIC 0xBA +#include "test-pcpy.h"