summaryrefslogtreecommitdiff
path: root/tests/string_test.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2019-02-04 16:46:24 -0800
committerElliott Hughes <enh@google.com>2019-02-05 12:15:27 -0800
commitfbac97a54c4dd2b59fd6b891ae4ba3023dc1aa71 (patch)
tree818243866f70ee6c9b90d6e126343736cc69daad /tests/string_test.cpp
parent5c45c4efb28f103112ed8765386184d802afea73 (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.cpp37
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);
+}