mirror of https://github.com/torvalds/linux.git
string: provide strends()
Implement a function for checking if a string ends with a different string and add its kunit test cases. Acked-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20251112-gpio-shared-v4-1-b51f97b1abd8@linaro.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
3a86608788
commit
197b3f3c70
|
|
@ -562,4 +562,22 @@ static inline bool strstarts(const char *str, const char *prefix)
|
|||
return strncmp(str, prefix, strlen(prefix)) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* strends - Check if a string ends with another string.
|
||||
* @str - NULL-terminated string to check against @suffix
|
||||
* @suffix - NULL-terminated string defining the suffix to look for in @str
|
||||
*
|
||||
* Returns:
|
||||
* True if @str ends with @suffix. False in all other cases.
|
||||
*/
|
||||
static inline bool strends(const char *str, const char *suffix)
|
||||
{
|
||||
unsigned int str_len = strlen(str), suffix_len = strlen(suffix);
|
||||
|
||||
if (str_len < suffix_len)
|
||||
return false;
|
||||
|
||||
return !(strcmp(str + str_len - suffix_len, suffix));
|
||||
}
|
||||
|
||||
#endif /* _LINUX_STRING_H_ */
|
||||
|
|
|
|||
|
|
@ -602,6 +602,18 @@ static void string_test_memtostr(struct kunit *test)
|
|||
KUNIT_EXPECT_EQ(test, dest[7], '\0');
|
||||
}
|
||||
|
||||
static void string_test_strends(struct kunit *test)
|
||||
{
|
||||
KUNIT_EXPECT_TRUE(test, strends("foo-bar", "bar"));
|
||||
KUNIT_EXPECT_TRUE(test, strends("foo-bar", "-bar"));
|
||||
KUNIT_EXPECT_TRUE(test, strends("foobar", "foobar"));
|
||||
KUNIT_EXPECT_TRUE(test, strends("foobar", ""));
|
||||
KUNIT_EXPECT_FALSE(test, strends("bar", "foobar"));
|
||||
KUNIT_EXPECT_FALSE(test, strends("", "foo"));
|
||||
KUNIT_EXPECT_FALSE(test, strends("foobar", "ba"));
|
||||
KUNIT_EXPECT_TRUE(test, strends("", ""));
|
||||
}
|
||||
|
||||
static struct kunit_case string_test_cases[] = {
|
||||
KUNIT_CASE(string_test_memset16),
|
||||
KUNIT_CASE(string_test_memset32),
|
||||
|
|
@ -623,6 +635,7 @@ static struct kunit_case string_test_cases[] = {
|
|||
KUNIT_CASE(string_test_strlcat),
|
||||
KUNIT_CASE(string_test_strtomem),
|
||||
KUNIT_CASE(string_test_memtostr),
|
||||
KUNIT_CASE(string_test_strends),
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue