+TEST(Demangle, strlcpy) {
+ char buf[6];
+
+ EXPECT_EQ(3, folly::strlcpy(buf, "abc", 6));
+ EXPECT_EQ('\0', buf[3]);
+ EXPECT_EQ("abc", std::string(buf));
+
+ EXPECT_EQ(7, folly::strlcpy(buf, "abcdefg", 3));
+ EXPECT_EQ('\0', buf[2]);
+ EXPECT_EQ("ab", std::string(buf));
+
+ const char* big_string = "abcdefghijklmnop";
+
+ EXPECT_EQ(strlen(big_string), folly::strlcpy(buf, big_string, sizeof(buf)));
+ EXPECT_EQ('\0', buf[5]);
+ EXPECT_EQ("abcde", std::string(buf));
+
+ buf[0] = 'z';
+ EXPECT_EQ(strlen(big_string), folly::strlcpy(buf, big_string, 0));
+ EXPECT_EQ('z', buf[0]); // unchanged, size = 0
+}
+