diff options
author | Rob Barnes <robbarnes@google.com> | 2021-07-27 15:29:51 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-08-09 16:43:13 +0000 |
commit | b82517a459d8e9394a1ea4a2a0148232c61f45e5 (patch) | |
tree | 9d37d20245dae1e41e074c80ae064c5823d12003 /test/utils_str.c | |
parent | 48f83b8b045e4105c4811bf8982cc109e7408b9e (diff) | |
download | chrome-ec-b82517a459d8e9394a1ea4a2a0148232c61f45e5.tar.gz |
util: Add strcspn
Add the standard string function strcspn. strcspn calculates the length
of the initial segment of s which consists entirely of bytes not in
reject.
BUG=None
TEST=make run-utils_str
BRANCH=None
Signed-off-by: Rob Barnes <robbarnes@google.com>
Change-Id: I3eb9a4fff42cb0fdcdb288d00f8070e0f22b2179
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3057730
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'test/utils_str.c')
-rw-r--r-- | test/utils_str.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/utils_str.c b/test/utils_str.c index c592f6100a..f184abffa6 100644 --- a/test/utils_str.c +++ b/test/utils_str.c @@ -260,6 +260,33 @@ static int test_snprintf(void) TEST_CHECK(strncmp(buffer, "1234", sizeof(buffer))); } +static int test_strcspn(void) +{ + const char str1[] = "abc"; + const char str2[] = "This is a string\nwith newlines!"; + + TEST_EQ(strcspn(str1, "a"), (size_t)0, "%zu"); + TEST_EQ(strcspn(str1, "b"), (size_t)1, "%zu"); + TEST_EQ(strcspn(str1, "c"), (size_t)2, "%zu"); + TEST_EQ(strcspn(str1, "ccc"), (size_t)2, "%zu"); + TEST_EQ(strcspn(str1, "cba"), (size_t)0, "%zu"); + TEST_EQ(strcspn(str1, "cb"), (size_t)1, "%zu"); + TEST_EQ(strcspn(str1, "bc"), (size_t)1, "%zu"); + TEST_EQ(strcspn(str1, "cbc"), (size_t)1, "%zu"); + TEST_EQ(strcspn(str1, "z"), strlen(str1), "%zu"); + TEST_EQ(strcspn(str1, "xyz"), strlen(str1), "%zu"); + TEST_EQ(strcspn(str1, ""), strlen(str1), "%zu"); + + TEST_EQ(strcspn(str2, " "), (size_t)4, "%zu"); + TEST_EQ(strcspn(str2, "\n"), (size_t)16, "%zu"); + TEST_EQ(strcspn(str2, "\n "), (size_t)4, "%zu"); + TEST_EQ(strcspn(str2, "!"), strlen(str2) - 1, "%zu"); + TEST_EQ(strcspn(str2, "z"), strlen(str2), "%zu"); + TEST_EQ(strcspn(str2, "z!"), strlen(str2) - 1, "%zu"); + + return EC_SUCCESS; +} + void run_test(int argc, char **argv) { test_reset(); @@ -279,6 +306,7 @@ void run_test(int argc, char **argv) RUN_TEST(test_strncasecmp); RUN_TEST(test_atoi); RUN_TEST(test_snprintf); + RUN_TEST(test_strcspn); test_print_result(); } |