Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(316)

Side by Side Diff: base/memory/singleton_unittest.cc

Issue 7528010: Remove Purify and Quantify (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/memory/memory_debug.cc ('k') | base/message_loop.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/at_exit.h" 5 #include "base/at_exit.h"
6 #include "base/file_util.h" 6 #include "base/file_util.h"
7 #include "base/memory/singleton.h" 7 #include "base/memory/singleton.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 SingletonNoLeak(&CallbackNoLeak); 216 SingletonNoLeak(&CallbackNoLeak);
217 SingletonLeak(&CallbackLeak); 217 SingletonLeak(&CallbackLeak);
218 SingletonStatic(&CallbackStatic); 218 SingletonStatic(&CallbackStatic);
219 static_singleton = GetStaticSingleton(); 219 static_singleton = GetStaticSingleton();
220 leaky_singleton = GetLeakySingleton(); 220 leaky_singleton = GetLeakySingleton();
221 EXPECT_TRUE(leaky_singleton); 221 EXPECT_TRUE(leaky_singleton);
222 } 222 }
223 223
224 // Verify that only the expected callback has been called. 224 // Verify that only the expected callback has been called.
225 VerifiesCallbacks(); 225 VerifiesCallbacks();
226 // Delete the leaky singleton. It is interesting to note that Purify does 226 // Delete the leaky singleton.
227 // *not* detect the leak when this call is commented out. :(
228 DeleteLeakySingleton(); 227 DeleteLeakySingleton();
229 228
230 // The static singleton can't be acquired post-atexit. 229 // The static singleton can't be acquired post-atexit.
231 EXPECT_EQ(NULL, GetStaticSingleton()); 230 EXPECT_EQ(NULL, GetStaticSingleton());
232 231
233 { 232 {
234 base::ShadowingAtExitManager sem; 233 base::ShadowingAtExitManager sem;
235 // Verifiy that the variables were reset. 234 // Verifiy that the variables were reset.
236 { 235 {
237 singleton_int = SingletonInt(); 236 singleton_int = SingletonInt();
238 EXPECT_EQ(*singleton_int, 0); 237 EXPECT_EQ(*singleton_int, 0);
239 } 238 }
240 { 239 {
241 singleton_int_5 = SingletonInt5(); 240 singleton_int_5 = SingletonInt5();
242 EXPECT_EQ(*singleton_int_5, 5); 241 EXPECT_EQ(*singleton_int_5, 5);
243 } 242 }
244 { 243 {
245 // Resurrect the static singleton, and assert that it 244 // Resurrect the static singleton, and assert that it
246 // still points to the same (static) memory. 245 // still points to the same (static) memory.
247 CallbackSingletonWithStaticTrait::Trait::Resurrect(); 246 CallbackSingletonWithStaticTrait::Trait::Resurrect();
248 EXPECT_EQ(GetStaticSingleton(), static_singleton); 247 EXPECT_EQ(GetStaticSingleton(), static_singleton);
249 } 248 }
250 } 249 }
251 // The leaky singleton shouldn't leak since SingletonLeak has not been called. 250 // The leaky singleton shouldn't leak since SingletonLeak has not been called.
252 VerifiesCallbacksNotCalled(); 251 VerifiesCallbacksNotCalled();
253 } 252 }
OLDNEW
« no previous file with comments | « base/memory/memory_debug.cc ('k') | base/message_loop.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698