From f0d1236f0fc944165b657306a39d44fcc6aaa709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Strahinja=20Stani=C5=A1i=C4=87?= Date: Sat, 13 Jul 2024 14:53:07 +0200 Subject: [PATCH] libc: Add memset test for int-to-char conversion Test case to check if an implementation of memset correctly handles the value passed being wider than a byte Approved by: emaste Reviewed By: fuz (GSoC mentor), emaste Sponsored by: Google LLC (GSoC 2024) Differential Revision: https://reviews.freebsd.org/D45738 --- lib/libc/tests/string/Makefile | 2 ++ lib/libc/tests/string/memset_test.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 lib/libc/tests/string/memset_test.c diff --git a/lib/libc/tests/string/Makefile b/lib/libc/tests/string/Makefile index 4fce79685c0..c71a83eede6 100644 --- a/lib/libc/tests/string/Makefile +++ b/lib/libc/tests/string/Makefile @@ -12,6 +12,7 @@ ATF_TESTS_C+= flsll_test ATF_TESTS_C+= memccpy_test ATF_TESTS_C+= memcmp_test ATF_TESTS_C+= memrchr_test +ATF_TESTS_C+= memset2_test ATF_TESTS_C+= memset_s_test ATF_TESTS_C+= strncmp_test ATF_TESTS_C+= stpncpy_test @@ -45,6 +46,7 @@ NETBSD_ATF_TESTS_C+= strpbrk_test NETBSD_ATF_TESTS_C+= strrchr_test NETBSD_ATF_TESTS_C+= swab_test +SRCS.memset2_test= memset_test.c SRCS.strcmp2_test= strcmp_test.c SRCS.strerror2_test= strerror_test.c diff --git a/lib/libc/tests/string/memset_test.c b/lib/libc/tests/string/memset_test.c new file mode 100644 index 00000000000..b898ad5af25 --- /dev/null +++ b/lib/libc/tests/string/memset_test.c @@ -0,0 +1,29 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2024 Strahinja Stanisic + */ + +#include +#include + +#include + +ATF_TC_WITHOUT_HEAD(int_char_conv); +ATF_TC_BODY(int_char_conv, tc) +{ + char b[64]; + int c = 0xDEADBEEF; + memset(&b, c, 64); + for(int i = 0; i < 64; i++) { + assert(b[i] == (char)c); + } + +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, int_char_conv); + return (atf_no_error()); +} +