| 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);
 | 
|  }
 | 
|  
 | 
|  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);
 | 
|  }
 | 
|  
 | 
| 
 |