Index: base/memory/ptr_util_unittest.cc |
diff --git a/base/memory/ptr_util_unittest.cc b/base/memory/ptr_util_unittest.cc |
index ecf99bff954a383cdc60d854c33c4c97b6cf1f4b..e5b7a15b1aed643be5168c66a8d4ca85204949ca 100644 |
--- a/base/memory/ptr_util_unittest.cc |
+++ b/base/memory/ptr_util_unittest.cc |
@@ -35,4 +35,34 @@ TEST(PtrUtilTest, WrapUnique) { |
EXPECT_EQ(0u, DeleteCounter::count()); |
} |
+TEST(PtrUtilTest, MakeUniqueScalar) { |
+ auto s = MakeUnique<std::string>(); |
+ EXPECT_EQ("", *s); |
+ |
+ auto s2 = MakeUnique<std::string>("test"); |
+ EXPECT_EQ("test", *s2); |
+} |
+ |
+TEST(PtrUtilTest, MakeUniqueScalarWithMoveOnlyType) { |
+ using MoveOnly = std::unique_ptr<std::string>; |
+ auto p = MakeUnique<MoveOnly>(MakeUnique<std::string>("test")); |
+ EXPECT_EQ("test", **p); |
+} |
+ |
+TEST(PtrUtilTest, MakeUniqueArray) { |
+ EXPECT_EQ(0u, DeleteCounter::count()); |
+ auto a = MakeUnique<DeleteCounter[]>(5); |
+ EXPECT_EQ(5u, DeleteCounter::count()); |
+ a.reset(); |
+ EXPECT_EQ(0u, DeleteCounter::count()); |
+} |
+ |
+#if 0 |
+// TODO(dcheng): Move this into a nocompile test. |
+TEST(PtrUtilTest, MakeUniqueArrayWithKnownBounds) { |
+ auto a = MakeUnique<DeleteCounter[1]>(); |
+ auto b = MakeUnique<DeleteCounter[1]>(1); |
+} |
+#endif |
+ |
} // namespace base |