ExceptionWrapper::with_exception variant, deducing exception type from functor type
[folly.git] / folly / test / DemangleTest.cpp
index eab9cff7cbbe6f0a37a20abde2fb341670ea1a67..0f235c887959c7923a4b2f6a1acfddfc4caf63ff 100644 (file)
@@ -48,6 +48,28 @@ TEST(Demangle, demangle) {
 }
 #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);