diff options
Diffstat (limited to 'net/disk_cache/entry_unittest.cc')
-rw-r--r-- | net/disk_cache/entry_unittest.cc | 86 |
1 files changed, 57 insertions, 29 deletions
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc index e2a17b0..95bbb47 100644 --- a/net/disk_cache/entry_unittest.cc +++ b/net/disk_cache/entry_unittest.cc @@ -1026,28 +1026,37 @@ void DiskCacheEntryTest::GetAvailableRange() { // We stop at the first empty block. int64 start; - EXPECT_EQ(kSize, entry->GetAvailableRange(0x20F0000, kSize * 2, &start)); + TestCompletionCallback cb; + int rv = entry->GetAvailableRange(0x20F0000, kSize * 2, &start, &cb); + EXPECT_EQ(kSize, cb.GetResult(rv)); EXPECT_EQ(0x20F0000, start); start = 0; - EXPECT_EQ(0, entry->GetAvailableRange(0, kSize, &start)); - EXPECT_EQ(0, entry->GetAvailableRange(0x20F0000 - kSize, kSize, &start)); - EXPECT_EQ(kSize, entry->GetAvailableRange(0, 0x2100000, &start)); + rv = entry->GetAvailableRange(0, kSize, &start, &cb); + EXPECT_EQ(0, cb.GetResult(rv)); + rv = entry->GetAvailableRange(0x20F0000 - kSize, kSize, &start, &cb); + EXPECT_EQ(0, cb.GetResult(rv)); + rv = entry->GetAvailableRange(0, 0x2100000, &start, &cb); + EXPECT_EQ(kSize, cb.GetResult(rv)); EXPECT_EQ(0x20F0000, start); // We should be able to Read based on the results of GetAvailableRange. start = -1; - EXPECT_EQ(0, entry->GetAvailableRange(0x2100000, kSize, &start)); - EXPECT_EQ(0, entry->ReadSparseData(start, buf, kSize, NULL)); + rv = entry->GetAvailableRange(0x2100000, kSize, &start, &cb); + EXPECT_EQ(0, cb.GetResult(rv)); + rv = entry->ReadSparseData(start, buf, kSize, &cb); + EXPECT_EQ(0, cb.GetResult(rv)); start = 0; - EXPECT_EQ(0x2000, entry->GetAvailableRange(0x20F2000, kSize, &start)); + rv = entry->GetAvailableRange(0x20F2000, kSize, &start, &cb); + EXPECT_EQ(0x2000, cb.GetResult(rv)); EXPECT_EQ(0x20F2000, start); EXPECT_EQ(0x2000, entry->ReadSparseData(start, buf, kSize, NULL)); // Make sure that we respect the |len| argument. start = 0; - EXPECT_EQ(1, entry->GetAvailableRange(0x20F0001 - kSize, kSize, &start)); + rv = entry->GetAvailableRange(0x20F0001 - kSize, kSize, &start, &cb); + EXPECT_EQ(1, cb.GetResult(rv)); EXPECT_EQ(0x20F0000, start); entry->Close(); @@ -1163,31 +1172,38 @@ TEST_F(DiskCacheEntryTest, MemoryOnlyMisalignedGetAvailableRange) { EXPECT_EQ(8192, entry->WriteSparseData(50000, buf, 8192, NULL)); int64 start; + TestCompletionCallback cb; // Test that we stop at a discontinuous child at the second block. - EXPECT_EQ(1024, entry->GetAvailableRange(0, 10000, &start)); + int rv = entry->GetAvailableRange(0, 10000, &start, &cb); + EXPECT_EQ(1024, cb.GetResult(rv)); EXPECT_EQ(0, start); // Test that number of bytes is reported correctly when we start from the // middle of a filled region. - EXPECT_EQ(512, entry->GetAvailableRange(512, 10000, &start)); + rv = entry->GetAvailableRange(512, 10000, &start, &cb); + EXPECT_EQ(512, cb.GetResult(rv)); EXPECT_EQ(512, start); // Test that we found bytes in the child of next block. - EXPECT_EQ(1024, entry->GetAvailableRange(1024, 10000, &start)); + rv = entry->GetAvailableRange(1024, 10000, &start, &cb); + EXPECT_EQ(1024, cb.GetResult(rv)); EXPECT_EQ(5120, start); // Test that the desired length is respected. It starts within a filled // region. - EXPECT_EQ(512, entry->GetAvailableRange(5500, 512, &start)); + rv = entry->GetAvailableRange(5500, 512, &start, &cb); + EXPECT_EQ(512, cb.GetResult(rv)); EXPECT_EQ(5500, start); // Test that the desired length is respected. It starts before a filled // region. - EXPECT_EQ(500, entry->GetAvailableRange(5000, 620, &start)); + rv = entry->GetAvailableRange(5000, 620, &start, &cb); + EXPECT_EQ(500, cb.GetResult(rv)); EXPECT_EQ(5120, start); // Test that multiple blocks are scanned. - EXPECT_EQ(8192, entry->GetAvailableRange(40000, 20000, &start)); + rv = entry->GetAvailableRange(40000, 20000, &start, &cb); + EXPECT_EQ(8192, cb.GetResult(rv)); EXPECT_EQ(50000, start); entry->Close(); @@ -1292,37 +1308,48 @@ void DiskCacheEntryTest::PartialSparseEntry() { EXPECT_EQ(500, entry->ReadSparseData(kSize, buf2, kSize, NULL)); EXPECT_EQ(0, entry->ReadSparseData(499, buf2, kSize, NULL)); + int rv; int64 start; + TestCompletionCallback cb; if (memory_only_) { - EXPECT_EQ(100, entry->GetAvailableRange(0, 600, &start)); + rv = entry->GetAvailableRange(0, 600, &start, &cb); + EXPECT_EQ(100, cb.GetResult(rv)); EXPECT_EQ(500, start); } else { - EXPECT_EQ(1024, entry->GetAvailableRange(0, 2048, &start)); + rv = entry->GetAvailableRange(0, 2048, &start, &cb); + EXPECT_EQ(1024, cb.GetResult(rv)); EXPECT_EQ(1024, start); } - EXPECT_EQ(500, entry->GetAvailableRange(kSize, kSize, &start)); + rv = entry->GetAvailableRange(kSize, kSize, &start, &cb); + EXPECT_EQ(500, cb.GetResult(rv)); EXPECT_EQ(kSize, start); - EXPECT_EQ(3616, entry->GetAvailableRange(20 * 1024, 10000, &start)); + rv = entry->GetAvailableRange(20 * 1024, 10000, &start, &cb); + EXPECT_EQ(3616, cb.GetResult(rv)); EXPECT_EQ(20 * 1024, start); // 1. Query before a filled 1KB block. // 2. Query within a filled 1KB block. // 3. Query beyond a filled 1KB block. if (memory_only_) { - EXPECT_EQ(3496, entry->GetAvailableRange(19400, kSize, &start)); + rv = entry->GetAvailableRange(19400, kSize, &start, &cb); + EXPECT_EQ(3496, cb.GetResult(rv)); EXPECT_EQ(20000, start); } else { - EXPECT_EQ(3016, entry->GetAvailableRange(19400, kSize, &start)); + rv = entry->GetAvailableRange(19400, kSize, &start, &cb); + EXPECT_EQ(3016, cb.GetResult(rv)); EXPECT_EQ(20480, start); } - EXPECT_EQ(1523, entry->GetAvailableRange(3073, kSize, &start)); + rv = entry->GetAvailableRange(3073, kSize, &start, &cb); + EXPECT_EQ(1523, cb.GetResult(rv)); EXPECT_EQ(3073, start); - EXPECT_EQ(0, entry->GetAvailableRange(4600, kSize, &start)); + rv = entry->GetAvailableRange(4600, kSize, &start, &cb); + EXPECT_EQ(0, cb.GetResult(rv)); EXPECT_EQ(4600, start); // Now make another write and verify that there is no hole in between. EXPECT_EQ(kSize, entry->WriteSparseData(500 + kSize, buf1, kSize, NULL)); - EXPECT_EQ(7 * 1024 + 500, entry->GetAvailableRange(1024, 10000, &start)); + rv = entry->GetAvailableRange(1024, 10000, &start, &cb); + EXPECT_EQ(7 * 1024 + 500, cb.GetResult(rv)); EXPECT_EQ(1024, start); EXPECT_EQ(kSize, entry->ReadSparseData(kSize, buf2, kSize, NULL)); EXPECT_EQ(0, memcmp(buf2->data(), buf1->data() + kSize - 500, 500)); @@ -1403,7 +1430,7 @@ TEST_F(DiskCacheEntryTest, CancelSparseIO) { scoped_refptr<net::IOBuffer> buf = new net::IOBuffer(kSize); CacheTestFillBuffer(buf->data(), kSize, false); - TestCompletionCallback cb1, cb2, cb3, cb4; + TestCompletionCallback cb1, cb2, cb3, cb4, cb5; int64 offset = 0; int tries = 0; const int maxtries = 100; // Avoid hang on infinitely fast disks. @@ -1418,8 +1445,8 @@ TEST_F(DiskCacheEntryTest, CancelSparseIO) { // Cannot use the entry at this point. offset = 0; - EXPECT_EQ(net::ERR_CACHE_OPERATION_NOT_SUPPORTED, - entry->GetAvailableRange(offset, kSize, &offset)); + int rv = entry->GetAvailableRange(offset, kSize, &offset, &cb5); + EXPECT_EQ(net::ERR_CACHE_OPERATION_NOT_SUPPORTED, cb5.GetResult(rv)); EXPECT_EQ(net::OK, entry->ReadyForSparseIO(&cb2)); // We cancel the pending operation, and register multiple notifications. @@ -1430,8 +1457,8 @@ TEST_F(DiskCacheEntryTest, CancelSparseIO) { EXPECT_EQ(net::ERR_IO_PENDING, entry->ReadyForSparseIO(&cb4)); offset = 0; - EXPECT_EQ(net::ERR_CACHE_OPERATION_NOT_SUPPORTED, - entry->GetAvailableRange(offset, kSize, &offset)); + rv = entry->GetAvailableRange(offset, kSize, &offset, &cb5); + EXPECT_EQ(net::ERR_CACHE_OPERATION_NOT_SUPPORTED, cb5.GetResult(rv)); EXPECT_EQ(net::ERR_CACHE_OPERATION_NOT_SUPPORTED, entry->ReadSparseData(offset, buf, kSize, NULL)); EXPECT_EQ(net::ERR_CACHE_OPERATION_NOT_SUPPORTED, @@ -1443,7 +1470,8 @@ TEST_F(DiskCacheEntryTest, CancelSparseIO) { EXPECT_EQ(net::OK, cb3.GetResult(net::ERR_IO_PENDING)); EXPECT_EQ(net::OK, cb4.GetResult(net::ERR_IO_PENDING)); - EXPECT_EQ(kSize, entry->GetAvailableRange(offset, kSize, &offset)); + rv = entry->GetAvailableRange(offset, kSize, &offset, &cb5); + EXPECT_EQ(kSize, cb5.GetResult(rv)); EXPECT_EQ(net::OK, entry->ReadyForSparseIO(&cb2)); entry->Close(); } |