[PATCH 2/3] test: unit tests for strstr() and strnstr()
Ilias Apalodimas
ilias.apalodimas at linaro.org
Thu Jan 9 08:53:44 CET 2025
On Sat, 4 Jan 2025 at 01:21, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> Add unit tests for the library functions.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
> lib/string.c | 2 +-
> test/lib/string.c | 40 ++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 41 insertions(+), 1 deletion(-)
>
> diff --git a/lib/string.c b/lib/string.c
> index d5a486fb89d..66aae583940 100644
> --- a/lib/string.c
> +++ b/lib/string.c
> @@ -16,8 +16,8 @@
> */
>
> #include <config.h>
> +#include <limits.h>
> #include <malloc.h>
> -#include <stdint.h>
> #include <linux/compiler.h>
> #include <linux/ctype.h>
> #include <linux/types.h>
> diff --git a/test/lib/string.c b/test/lib/string.c
> index 8d22f3fd68f..31391a387b9 100644
> --- a/test/lib/string.c
> +++ b/test/lib/string.c
> @@ -11,6 +11,7 @@
>
> #include <command.h>
> #include <log.h>
> +#include <string.h>
> #include <test/lib.h>
> #include <test/test.h>
> #include <test/ut.h>
> @@ -221,3 +222,42 @@ static int lib_memdup(struct unit_test_state *uts)
> return 0;
> }
> LIB_TEST(lib_memdup, 0);
> +
> +/** lib_strnstr() - unit test for strnstr() */
> +static int lib_strnstr(struct unit_test_state *uts)
> +{
> + const char *s1 = "Itsy Bitsy Teenie Weenie";
> + const char *s2 = "eenie";
> + const char *s3 = "eery";
> +
> + ut_asserteq_ptr(&s1[12], strnstr(s1, s2, SIZE_MAX));
> + ut_asserteq_ptr(&s1[12], strnstr(s1, s2, 17));
> + ut_assertnull(strnstr(s1, s2, 16));
> + ut_assertnull(strnstr(s1, s2, 0));
> + ut_asserteq_ptr(&s1[13], strnstr(&s1[3], &s2[1], SIZE_MAX));
> + ut_asserteq_ptr(&s1[13], strnstr(&s1[3], &s2[1], 14));
> + ut_assertnull(strnstr(&s1[3], &s2[1], 13));
> + ut_assertnull(strnstr(&s1[3], &s2[1], 0));
> + ut_assertnull(strnstr(s1, s3, SIZE_MAX));
> + ut_assertnull(strnstr(s1, s3, 0));
> +
> + return 0;
> +}
> +LIB_TEST(lib_strnstr, 0);
> +
> +/** lib_strstr() - unit test for strstr() */
> +static int lib_strstr(struct unit_test_state *uts)
> +{
> + const char *s1 = "Itsy Bitsy Teenie Weenie";
> + const char *s2 = "eenie";
> + const char *s3 = "easy";
> +
> + ut_asserteq_ptr(&s1[12], strstr(s1, s2));
> + ut_asserteq_ptr(&s1[13], strstr(&s1[3], &s2[1]));
> + ut_assertnull(strstr(s1, s3));
> + ut_asserteq_ptr(&s1[2], strstr(s1, &s3[2]));
> + ut_asserteq_ptr(&s1[8], strstr(&s1[5], &s3[2]));
> +
> + return 0;
> +}
> +LIB_TEST(lib_strstr, 0);
> --
> 2.47.1
>
Acked-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
More information about the U-Boot
mailing list