Index: mojo/public/cpp/system/tests/core_unittest.cc |
diff --git a/mojo/public/cpp/system/tests/core_unittest.cc b/mojo/public/cpp/system/tests/core_unittest.cc |
index acaee23b6307983289bbb4d4609331c93d19c3bc..e403ff4f021b1aa4aa23062cdb4fde561ec64a20 100644 |
--- a/mojo/public/cpp/system/tests/core_unittest.cc |
+++ b/mojo/public/cpp/system/tests/core_unittest.cc |
@@ -386,6 +386,33 @@ TEST(CoreCppTest, TearDownWithMessagesEnqueued) { |
} |
} |
+TEST(CoreCppTest, ScopedHandleMoveCtor) { |
+ ScopedSharedBufferHandle buffer1; |
+ EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(NULL, 1024, &buffer1)); |
+ EXPECT_TRUE(buffer1.is_valid()); |
+ |
+ ScopedSharedBufferHandle buffer2; |
+ EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(NULL, 1024, &buffer2)); |
+ EXPECT_TRUE(buffer2.is_valid()); |
+ |
+ // If this fails to close buffer1, ScopedHandleBase::CloseIfNecessary() will |
+ // assert. |
+ buffer1 = buffer2.Pass(); |
+ |
+ EXPECT_TRUE(buffer1.is_valid()); |
+ EXPECT_FALSE(buffer2.is_valid()); |
+} |
+ |
+TEST(CoreCppTest, ScopedHandleMoveCtorSelf) { |
+ ScopedSharedBufferHandle buffer1; |
+ EXPECT_EQ(MOJO_RESULT_OK, CreateSharedBuffer(NULL, 1024, &buffer1)); |
+ EXPECT_TRUE(buffer1.is_valid()); |
+ |
+ buffer1 = buffer1.Pass(); |
+ |
+ EXPECT_TRUE(buffer1.is_valid()); |
+} |
+ |
// TODO(vtl): Write data pipe tests. |
} // namespace |