}
#endif
+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
+}
+
int main(int argc, char *argv[]) {
testing::InitGoogleTest(&argc, argv);
gflags::ParseCommandLineFlags(&argc, &argv, true);