diff options
author | Elliott Hughes <enh@google.com> | 2019-02-04 16:46:24 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2019-02-05 12:15:27 -0800 |
commit | fbac97a54c4dd2b59fd6b891ae4ba3023dc1aa71 (patch) | |
tree | 818243866f70ee6c9b90d6e126343736cc69daad /tests/string_test.cpp | |
parent | 5c45c4efb28f103112ed8765386184d802afea73 (diff) |
Move NetBSD string routines to OpenBSD.
NetBSD seems to be the least well maintained of our three BSD upstreams,
and it's already the one we use the least. Let's push a little further
in that direction...
Test: new smoke tests
Change-Id: Idfebd11794445fe14cbfa07177a7392a7b36a5e4
Diffstat (limited to 'tests/string_test.cpp')
-rw-r--r-- | tests/string_test.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/string_test.cpp b/tests/string_test.cpp index fd2a78786..b27ca87d2 100644 --- a/tests/string_test.cpp +++ b/tests/string_test.cpp @@ -1554,3 +1554,40 @@ TEST(STRING_TEST, strstr_smoke) { ASSERT_EQ(haystack + 1, strstr(haystack, "i")); ASSERT_EQ(haystack + 4, strstr(haystack, "da")); } + +TEST(STRING_TEST, strcasestr_smoke) { + const char* haystack = "bIg dAdDy/gIaNt hAyStAcKs"; + ASSERT_EQ(haystack, strcasestr(haystack, "")); + ASSERT_EQ(haystack + 0, strcasestr(haystack, "B")); + ASSERT_EQ(haystack + 1, strcasestr(haystack, "i")); + ASSERT_EQ(haystack + 4, strcasestr(haystack, "Da")); +} + +TEST(STRING_TEST, strcoll_smoke) { + ASSERT_TRUE(strcoll("aab", "aac") < 0); + ASSERT_TRUE(strcoll("aab", "aab") == 0); + ASSERT_TRUE(strcoll("aac", "aab") > 0); +} + +TEST(STRING_TEST, strxfrm_smoke) { + const char* src1 = "aab"; + char dst1[16] = {}; + ASSERT_GT(strxfrm(dst1, src1, sizeof(dst1)), 0U); + const char* src2 = "aac"; + char dst2[16] = {}; + ASSERT_GT(strxfrm(dst2, src2, sizeof(dst2)), 0U); + ASSERT_TRUE(strcmp(dst1, dst2) < 0); +} + +TEST(STRING_TEST, memccpy_smoke) { + char dst[32]; + + memset(dst, 0, sizeof(dst)); + char* p = static_cast<char*>(memccpy(dst, "hello world", ' ', 32)); + ASSERT_STREQ("hello ", dst); + ASSERT_EQ(ptrdiff_t(6), p - dst); + + memset(dst, 0, sizeof(dst)); + ASSERT_EQ(nullptr, memccpy(dst, "hello world", ' ', 4)); + ASSERT_STREQ("hell", dst); +} |