| Index: base/memory/ptr_util_unittest.cc
|
| diff --git a/base/memory/ptr_util_unittest.cc b/base/memory/ptr_util_unittest.cc
|
| index 5a90b8e7ffd7db68967669d18134169a24ca0da7..b0593bf8a8365f58147e7546e6f1e8a3e9ea96e1 100644
|
| --- a/base/memory/ptr_util_unittest.cc
|
| +++ b/base/memory/ptr_util_unittest.cc
|
| @@ -23,6 +23,19 @@ class DeleteCounter {
|
| static size_t count_;
|
| };
|
|
|
| +struct SumUpDeleter {
|
| + explicit SumUpDeleter(int* value) : value_(value) {
|
| + }
|
| +
|
| + void operator()(int* x) {
|
| + if (x)
|
| + *value_ += *x;
|
| + delete x;
|
| + }
|
| +
|
| + int* value_;
|
| +};
|
| +
|
| size_t DeleteCounter::count_ = 0;
|
|
|
| } // namespace
|
| @@ -37,6 +50,14 @@ TEST(PtrUtilTest, WrapUnique) {
|
| EXPECT_EQ(0u, DeleteCounter::count());
|
| }
|
|
|
| +TEST(PtrUtilTest, WrapUniqueWithDeleter) {
|
| + int sum = 0;
|
| + auto p = WrapUnique(new int(42), SumUpDeleter(&sum));
|
| + EXPECT_EQ(0, sum);
|
| + p = nullptr;
|
| + EXPECT_EQ(42, sum);
|
| +}
|
| +
|
| TEST(PtrUtilTest, MakeUniqueScalar) {
|
| auto s = MakeUnique<std::string>();
|
| EXPECT_EQ("", *s);
|
|
|