Chromium Code Reviews| Index: base/memory/discardable_shared_memory_unittest.cc |
| diff --git a/base/memory/discardable_shared_memory_unittest.cc b/base/memory/discardable_shared_memory_unittest.cc |
| index 1f08aea8cb5551136922a3d73249a64b9901e1d8..74d19a64527187678a4109e01d85fa2b1b700e53 100644 |
| --- a/base/memory/discardable_shared_memory_unittest.cc |
| +++ b/base/memory/discardable_shared_memory_unittest.cc |
| @@ -234,8 +234,6 @@ TEST(DiscardableSharedMemoryTest, LockShouldAlwaysFailAfterSuccessfulPurge) { |
| // Lock should fail as memory has been purged. |
| auto lock_rv = memory2.Lock(0, 0); |
| EXPECT_EQ(DiscardableSharedMemory::FAILED, lock_rv); |
| - lock_rv = memory1.Lock(0, 0); |
| - EXPECT_EQ(DiscardableSharedMemory::FAILED, lock_rv); |
|
danakj
2015/02/17 21:42:57
Maybe change this to what memory1.Lock should retu
reveman
2015/02/17 22:09:43
Locking/unlocking two different mappings of the me
|
| } |
| TEST(DiscardableSharedMemoryTest, LockAndUnlockRange) { |
| @@ -263,27 +261,39 @@ TEST(DiscardableSharedMemoryTest, LockAndUnlockRange) { |
| rv = memory1.Purge(Time::FromDoubleT(2)); |
| EXPECT_FALSE(rv); |
| - // Unlock second page. |
| + // Lock first page again. |
| memory2.SetNow(Time::FromDoubleT(3)); |
| + auto lock_rv = memory2.Lock(0, base::GetPageSize()); |
| + EXPECT_NE(DiscardableSharedMemory::FAILED, lock_rv); |
| + |
| + // Unlock first page. |
| + memory2.SetNow(Time::FromDoubleT(4)); |
| + memory2.Unlock(0, base::GetPageSize()); |
| + |
| + rv = memory1.Purge(Time::FromDoubleT(5)); |
| + EXPECT_FALSE(rv); |
| + |
| + // Unlock second page. |
| + memory2.SetNow(Time::FromDoubleT(6)); |
| memory2.Unlock(base::GetPageSize(), base::GetPageSize()); |
| - rv = memory1.Purge(Time::FromDoubleT(4)); |
| + rv = memory1.Purge(Time::FromDoubleT(7)); |
| EXPECT_FALSE(rv); |
| // Unlock anything onwards. |
| - memory2.SetNow(Time::FromDoubleT(5)); |
| + memory2.SetNow(Time::FromDoubleT(8)); |
| memory2.Unlock(2 * base::GetPageSize(), 0); |
| // Memory is unlocked, but our usage timestamp is incorrect. |
| - rv = memory1.Purge(Time::FromDoubleT(6)); |
| + rv = memory1.Purge(Time::FromDoubleT(9)); |
| EXPECT_FALSE(rv); |
| // The failed purge attempt should have updated usage time to the correct |
| // value. |
| - EXPECT_EQ(Time::FromDoubleT(5), memory1.last_known_usage()); |
| + EXPECT_EQ(Time::FromDoubleT(8), memory1.last_known_usage()); |
| // Purge should now succeed. |
| - rv = memory1.Purge(Time::FromDoubleT(7)); |
| + rv = memory1.Purge(Time::FromDoubleT(10)); |
| EXPECT_TRUE(rv); |
| } |