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

Unified Diff: base/memory/discardable_memory_unittest.cc

Issue 24988003: Refactor DiscardableMemory for the upcoming DiscardableMemoryAllocator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix linux clang build Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/memory/discardable_memory_mac.cc ('k') | skia/ext/SkDiscardableMemory_chrome.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/memory/discardable_memory_unittest.cc
diff --git a/base/memory/discardable_memory_unittest.cc b/base/memory/discardable_memory_unittest.cc
index 60d35820fbd489a2fea3c9d9af70eb6195a5df0a..2c5b40ce77e37ab791682d638b124207c4da0eac 100644
--- a/base/memory/discardable_memory_unittest.cc
+++ b/base/memory/discardable_memory_unittest.cc
@@ -8,35 +8,35 @@
namespace base {
#if defined(OS_ANDROID) || defined(OS_MACOSX)
+const size_t kSize = 1024;
+
// Test Lock() and Unlock() functionalities.
TEST(DiscardableMemoryTest, LockAndUnLock) {
ASSERT_TRUE(DiscardableMemory::Supported());
- const size_t size = 1024;
-
- DiscardableMemory memory;
- ASSERT_TRUE(memory.InitializeAndLock(size));
- void* addr = memory.Memory();
+ const scoped_ptr<DiscardableMemory> memory(
+ DiscardableMemory::CreateLockedMemory(kSize));
+ ASSERT_TRUE(memory);
+ void* addr = memory->Memory();
ASSERT_NE(static_cast<void*>(NULL), addr);
- memory.Unlock();
+ memory->Unlock();
// The system should have no reason to purge discardable blocks in this brief
// interval, though technically speaking this might flake.
- EXPECT_EQ(DISCARDABLE_MEMORY_SUCCESS, memory.Lock());
- addr = memory.Memory();
+ EXPECT_EQ(DISCARDABLE_MEMORY_SUCCESS, memory->Lock());
+ addr = memory->Memory();
ASSERT_NE(static_cast<void*>(NULL), addr);
- memory.Unlock();
+ memory->Unlock();
}
// Test delete a discardable memory while it is locked.
TEST(DiscardableMemoryTest, DeleteWhileLocked) {
ASSERT_TRUE(DiscardableMemory::Supported());
- const size_t size = 1024;
-
- DiscardableMemory memory;
- ASSERT_TRUE(memory.InitializeAndLock(size));
+ const scoped_ptr<DiscardableMemory> memory(
+ DiscardableMemory::CreateLockedMemory(kSize));
+ ASSERT_TRUE(memory);
}
#if defined(OS_MACOSX)
@@ -45,17 +45,27 @@ TEST(DiscardableMemoryTest, Purge) {
ASSERT_TRUE(DiscardableMemory::Supported());
ASSERT_TRUE(DiscardableMemory::PurgeForTestingSupported());
- const size_t size = 1024;
-
- DiscardableMemory memory;
- ASSERT_TRUE(memory.InitializeAndLock(size));
- memory.Unlock();
+ const scoped_ptr<DiscardableMemory> memory(
+ DiscardableMemory::CreateLockedMemory(kSize));
+ ASSERT_TRUE(memory);
+ memory->Unlock();
DiscardableMemory::PurgeForTesting();
- EXPECT_EQ(DISCARDABLE_MEMORY_PURGED, memory.Lock());
+ EXPECT_EQ(DISCARDABLE_MEMORY_PURGED, memory->Lock());
}
#endif // OS_MACOSX
+#if !defined(NDEBUG) && !defined(OS_ANDROID)
+// Death tests are not supported with Android APKs.
+TEST(DiscardableMemoryTest, UnlockedMemoryAccessCrashesInDebugMode) {
+ const scoped_ptr<DiscardableMemory> memory(
+ DiscardableMemory::CreateLockedMemory(kSize));
+ ASSERT_TRUE(memory);
+ memory->Unlock();
+ ASSERT_DEATH({ *static_cast<int*>(memory->Memory()) = 0xdeadbeef; }, ".*");
+}
+#endif
+
#endif // OS_*
}
« no previous file with comments | « base/memory/discardable_memory_mac.cc ('k') | skia/ext/SkDiscardableMemory_chrome.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698