Index: net/disk_cache/entry_unittest.cc |
=================================================================== |
--- net/disk_cache/entry_unittest.cc (revision 24113) |
+++ net/disk_cache/entry_unittest.cc (working copy) |
@@ -147,7 +147,8 @@ |
if (net::ERR_IO_PENDING == ret) |
expected++; |
- memset(buffer2->data(), 0, kSize1); |
+ EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected)); |
+ memset(buffer2->data(), 0, kSize2); |
ret = entry1->ReadData(0, 0, buffer2, kSize1, &callback3); |
EXPECT_TRUE(10 == ret || net::ERR_IO_PENDING == ret); |
if (net::ERR_IO_PENDING == ret) |
@@ -162,7 +163,8 @@ |
if (net::ERR_IO_PENDING == ret) |
expected++; |
- memset(buffer3->data(), 0, kSize2); |
+ EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected)); |
+ memset(buffer3->data(), 0, kSize3); |
ret = entry1->ReadData(1, 1511, buffer3, kSize2, &callback5); |
EXPECT_TRUE(4989 == ret || net::ERR_IO_PENDING == ret); |
if (net::ERR_IO_PENDING == ret) |
@@ -194,6 +196,7 @@ |
if (net::ERR_IO_PENDING == ret) |
expected++; |
+ EXPECT_TRUE(helper.WaitUntilCacheIoFinished(expected)); |
ret = entry1->ReadData(1, 0, buffer3, kSize3, &callback11); |
EXPECT_TRUE(8192 == ret || net::ERR_IO_PENDING == ret); |
if (net::ERR_IO_PENDING == ret) |
@@ -1180,10 +1183,18 @@ |
// system cache so we don't see that there is pending IO. |
MessageLoop::current()->RunAllPending(); |
- if (memory_only_) |
+ if (memory_only_) { |
EXPECT_EQ(0, cache_->GetEntryCount()); |
- else |
+ } else { |
+ if (5 == cache_->GetEntryCount()) { |
+ // Most likely we are waiting for the result of reading the sparse info |
+ // (it's always async on Posix so it is easy to miss). Unfortunately we |
+ // don't have any signal to watch for so we can only wait. |
+ PlatformThread::Sleep(500); |
+ MessageLoop::current()->RunAllPending(); |
+ } |
EXPECT_EQ(0, cache_->GetEntryCount()); |
+ } |
} |
TEST_F(DiskCacheEntryTest, DoomSparseEntry) { |