On Sat, 4 Jan 2025 at 01:21, Heinrich Schuchardt <heinrich.schucha...@canonical.com> wrote: > > Add unit tests for the library functions. > > Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@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.apalodi...@linaro.org>