test: Add tests for trailing_strtol()

This function currently has no tests. Add some.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2022-04-24 23:30:55 -06:00 committed by Tom Rini
parent 2fa4756d03
commit 18436c74dc
2 changed files with 21 additions and 2 deletions

View File

@ -99,7 +99,7 @@ long long simple_strtoll(const char *cp, char **endp, unsigned int base);
* For example, "abc123" would return 123.
*
* @str: String to exxamine
* Return: training number if found, else -1
* Return: trailing number if found, else -1
*/
long trailing_strtol(const char *str);
@ -114,7 +114,7 @@ long trailing_strtol(const char *str);
* @str: String to exxamine
* @end: Pointer to end of string to examine, or NULL to use the
* whole string
* Return: training number if found, else -1
* Return: trailing number if found, else -1
*/
long trailing_strtoln(const char *str, const char *end);

View File

@ -242,6 +242,25 @@ static int str_xtoa(struct unit_test_state *uts)
}
STR_TEST(str_xtoa, 0);
static int str_trailing(struct unit_test_state *uts)
{
char str1[] = "abc123def";
ut_asserteq(-1, trailing_strtol(""));
ut_asserteq(-1, trailing_strtol("123"));
ut_asserteq(123, trailing_strtol("abc123"));
ut_asserteq(4, trailing_strtol("12c4"));
ut_asserteq(-1, trailing_strtol("abd"));
ut_asserteq(-1, trailing_strtol("abc123def"));
ut_asserteq(-1, trailing_strtoln(str1, NULL));
ut_asserteq(123, trailing_strtoln(str1, str1 + 6));
ut_asserteq(-1, trailing_strtoln(str1, str1 + 9));
return 0;
}
STR_TEST(str_trailing, 0);
int do_ut_str(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
struct unit_test *tests = UNIT_TEST_SUITE_START(str_test);