summaryrefslogtreecommitdiffstats
path: root/base/memory
diff options
context:
space:
mode:
authorcpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-24 23:49:07 +0000
committercpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-24 23:49:07 +0000
commit09733b45d3254d0f270c9ac2f9134dbc69f08304 (patch)
tree7dc1d30bc913027ac80fbd63881deba531c1c271 /base/memory
parent067095afacfdf4673bc397b3ca4623d037e7afc7 (diff)
downloadchromium_src-09733b45d3254d0f270c9ac2f9134dbc69f08304.zip
chromium_src-09733b45d3254d0f270c9ac2f9134dbc69f08304.tar.gz
chromium_src-09733b45d3254d0f270c9ac2f9134dbc69f08304.tar.bz2
Add missing test to WeakPtr
I discovered we have a weak pointer now and in my quest to understand how it works I spotted case that was not tested: 1) ctor weakptr a 2) ctor factory f 3) ctor weakptr b 4) dtor weakptr b 5) dtor factory f 6) test a Mostly because I thought I saw a mistake but alas it works as-is but still the test is missing. BUG=none TEST= this is a test Review URL: http://codereview.chromium.org/7065030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86526 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/memory')
-rw-r--r--base/memory/weak_ptr_unittest.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/base/memory/weak_ptr_unittest.cc b/base/memory/weak_ptr_unittest.cc
index 6c2a7e8..c1a9526 100644
--- a/base/memory/weak_ptr_unittest.cc
+++ b/base/memory/weak_ptr_unittest.cc
@@ -80,6 +80,20 @@ TEST(WeakPtrTest, Multiple) {
EXPECT_TRUE(b.get() == NULL);
}
+TEST(WeakPtrTest, MultipleStaged) {
+ WeakPtr<int> a;
+ {
+ int data;
+ WeakPtrFactory<int> factory(&data);
+ a = factory.GetWeakPtr();
+ {
+ WeakPtr<int> b = factory.GetWeakPtr();
+ }
+ EXPECT_TRUE(a.get() != NULL);
+ }
+ EXPECT_TRUE(a.get() == NULL);
+}
+
TEST(WeakPtrTest, UpCast) {
Derived data;
WeakPtrFactory<Derived> factory(&data);