diff options
Diffstat (limited to 'net/disk_cache')
-rw-r--r-- | net/disk_cache/entry_unittest.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc index f5d440f..ca4d6ed 100644 --- a/net/disk_cache/entry_unittest.cc +++ b/net/disk_cache/entry_unittest.cc @@ -1356,8 +1356,16 @@ TEST_F(DiskCacheEntryTest, CancelSparseIO) { SimpleCallbackTest cb1, cb2, cb3, cb4; int64 offset = 0; - for (int ret = 0; ret != net::ERR_IO_PENDING; offset += kSize * 4) + int tries = 0; + const int maxtries = 100; // Avoid hang on infinitely fast disks + for (int ret = 0; ret != net::ERR_IO_PENDING; offset += kSize * 4) { ret = entry->WriteSparseData(offset, buf, kSize, &cb1); + if (++tries > maxtries) { + LOG(ERROR) << "Data writes never come back PENDING; skipping test"; + entry->Close(); + return; + } + } // Cannot use the entry at this point. offset = 0; |