test: string: add test of new strcasestr() function

Change the existing strstr() test a little so that the substring not
found is "bits", i.e. one that is actually found when doing case
insensitive search.

Then copy all of lib_strstr(), adapt the expectation for the
strcasestr(s1, s3) result, and add another "not found" case.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
This commit is contained in:
Rasmus Villemoes
2026-07-21 13:51:07 -06:00
committed by Tom Rini
parent 13822d7f42
commit d589aa4417
+21 -3
View File
@@ -284,18 +284,36 @@ static int lib_strstr(struct unit_test_state *uts)
{
const char *s1 = "Itsy Bitsy Teenie Weenie";
const char *s2 = "eenie";
const char *s3 = "easy";
const char *s3 = "bits";
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]));
ut_asserteq_ptr(&s1[1], strstr(s1, &s3[2]));
ut_asserteq_ptr(&s1[7], strstr(&s1[5], &s3[2]));
return 0;
}
LIB_TEST(lib_strstr, 0);
/** lib_strcasestr() - unit test for strcasestr() */
static int lib_strcasestr(struct unit_test_state *uts)
{
const char *s1 = "Itsy Bitsy Teenie Weenie";
const char *s2 = "eenie";
const char *s3 = "bits";
ut_asserteq_ptr(&s1[12], strcasestr(s1, s2));
ut_asserteq_ptr(&s1[13], strcasestr(&s1[3], &s2[1]));
ut_asserteq_ptr(&s1[5], strcasestr(s1, s3));
ut_asserteq_ptr(&s1[1], strcasestr(s1, &s3[2]));
ut_asserteq_ptr(&s1[7], strcasestr(&s1[5], &s3[2]));
ut_assertnull(strcasestr(&s1[6], s3));
return 0;
}
LIB_TEST(lib_strcasestr, 0);
static int lib_strim(struct unit_test_state *uts)
{
char buf[BUFLEN], *p;