fbstring conservative corruption
[folly.git] / folly / test / FBStringTest.cpp
index 950af58d16dc0968e77aeffe6e28b85e21be5f36..2a5ae431e4e62243c527bf5799734b4ec3861880 100644 (file)
@@ -1235,6 +1235,16 @@ TEST(FBString, rvalueIterators) {
   EXPECT_EQ("123123abc", b); // if things go wrong, you'd get "123123123"
 }
 
+TEST(FBString, moveTerminator) {
+  // The source of a move must remain in a valid state
+  fbstring s(100, 'x'); // too big to be in-situ
+  fbstring k;
+  k = std::move(s);
+
+  EXPECT_EQ(0, s.size());
+  EXPECT_EQ('\0', *s.c_str());
+}
+
 int main(int argc, char** argv) {
   testing::InitGoogleTest(&argc, argv);
   google::ParseCommandLineFlags(&argc, &argv, true);