summaryrefslogtreecommitdiff
path: root/chromium/net/disk_cache/entry_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/disk_cache/entry_unittest.cc')
-rw-r--r--chromium/net/disk_cache/entry_unittest.cc390
1 files changed, 60 insertions, 330 deletions
diff --git a/chromium/net/disk_cache/entry_unittest.cc b/chromium/net/disk_cache/entry_unittest.cc
index 1e3226a2642..68b8319898c 100644
--- a/chromium/net/disk_cache/entry_unittest.cc
+++ b/chromium/net/disk_cache/entry_unittest.cc
@@ -2974,7 +2974,6 @@ bool DiskCacheEntryTest::SimpleCacheMakeBadChecksumEntry(const std::string& key,
}
TEST_F(DiskCacheEntryTest, SimpleCacheBadChecksum) {
- base::HistogramTester histogram_tester;
SetSimpleCacheMode();
InitCache();
@@ -2994,14 +2993,10 @@ TEST_F(DiskCacheEntryTest, SimpleCacheBadChecksum) {
base::MakeRefCounted<net::IOBuffer>(kLargeSize);
EXPECT_EQ(net::ERR_CACHE_CHECKSUM_MISMATCH,
ReadData(entry, 1, 0, read_buffer.get(), kLargeSize));
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadResult",
- disk_cache::READ_RESULT_SYNC_CHECKSUM_FAILURE, 1);
}
// Tests that an entry that has had an IO error occur can still be Doomed().
TEST_F(DiskCacheEntryTest, SimpleCacheErrorThenDoom) {
- base::HistogramTester histogram_tester;
SetSimpleCacheMode();
InitCache();
@@ -3020,9 +3015,6 @@ TEST_F(DiskCacheEntryTest, SimpleCacheErrorThenDoom) {
base::MakeRefCounted<net::IOBuffer>(kLargeSize);
EXPECT_EQ(net::ERR_CACHE_CHECKSUM_MISMATCH,
ReadData(entry, 1, 0, read_buffer.get(), kLargeSize));
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadResult",
- disk_cache::READ_RESULT_SYNC_CHECKSUM_FAILURE, 1);
entry->Doom(); // Should not crash.
}
@@ -5540,22 +5532,17 @@ class DiskCacheSimplePrefetchTest : public DiskCacheEntryTest {
}
void SetupFullAndTrailerPrefetch(int full_size,
- bool trailer_hint,
int trailer_speculative_size) {
std::map<std::string, std::string> params;
params[disk_cache::kSimpleCacheFullPrefetchBytesParam] =
base::NumberToString(full_size);
- params[disk_cache::kSimpleCacheTrailerPrefetchHintParam] =
- trailer_hint ? "true" : "false";
params[disk_cache::kSimpleCacheTrailerPrefetchSpeculativeBytesParam] =
base::NumberToString(trailer_speculative_size);
scoped_feature_list_.InitAndEnableFeatureWithParameters(
disk_cache::kSimpleCachePrefetchExperiment, params);
}
- void SetupFullPrefetch(int size) {
- SetupFullAndTrailerPrefetch(size, false, 0);
- }
+ void SetupFullPrefetch(int size) { SetupFullAndTrailerPrefetch(size, 0); }
void InitCacheAndCreateEntry(const std::string& key) {
SetSimpleCacheMode();
@@ -5597,12 +5584,21 @@ class DiskCacheSimplePrefetchTest : public DiskCacheEntryTest {
entry->Close();
}
- void TryRead(const std::string& key) {
+ void TryRead(const std::string& key, bool expect_preread_stream1) {
disk_cache::Entry* entry = nullptr;
ASSERT_THAT(OpenEntry(key, &entry), IsOk());
scoped_refptr<net::IOBuffer> read_buf =
base::MakeRefCounted<net::IOBuffer>(kEntrySize);
- EXPECT_EQ(kEntrySize, ReadData(entry, 1, 0, read_buf.get(), kEntrySize));
+ net::TestCompletionCallback cb;
+ int rv = entry->ReadData(1, 0, read_buf.get(), kEntrySize, cb.callback());
+
+ // if preload happened, sync reply is expected.
+ if (expect_preread_stream1)
+ EXPECT_EQ(kEntrySize, rv);
+ else
+ EXPECT_EQ(net::ERR_IO_PENDING, rv);
+ rv = cb.GetResult(rv);
+ EXPECT_EQ(kEntrySize, rv);
EXPECT_EQ(0, memcmp(read_buf->data(), payload_->data(), kEntrySize));
entry->Close();
}
@@ -5618,12 +5614,10 @@ TEST_F(DiskCacheSimplePrefetchTest, NoPrefetch) {
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_NONE, 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
}
TEST_F(DiskCacheSimplePrefetchTest, YesPrefetch) {
@@ -5632,12 +5626,10 @@ TEST_F(DiskCacheSimplePrefetchTest, YesPrefetch) {
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_FULL, 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", true, 1);
}
TEST_F(DiskCacheSimplePrefetchTest, YesPrefetchNoRead) {
@@ -5653,12 +5645,6 @@ TEST_F(DiskCacheSimplePrefetchTest, YesPrefetchNoRead) {
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_FULL, 1);
- // Have to use GetHistogramSamplesSinceCreation here since it's the only
- // API that handles the cases where the histogram hasn't even been created.
- std::unique_ptr<base::HistogramSamples> samples(
- histogram_tester.GetHistogramSamplesSinceCreation(
- "SimpleCache.Http.ReadStream1FromPrefetched"));
- EXPECT_EQ(0, samples->TotalCount());
}
// This makes sure we detect checksum error on entry that's small enough to be
@@ -5685,11 +5671,8 @@ TEST_F(DiskCacheSimplePrefetchTest, ChecksumNoPrefetch) {
SetupFullPrefetch(0);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
- // Expect 2 CRCs --- stream 0 and stream 1.
- histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncCheckEOFHasCrc",
- true, 2);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncCheckEOFResult",
disk_cache::CHECK_EOF_RESULT_SUCCESS, 2);
}
@@ -5700,14 +5683,8 @@ TEST_F(DiskCacheSimplePrefetchTest, NoChecksumNoPrefetch) {
SetupFullPrefetch(0);
const char kKey[] = "a key";
InitCacheAndCreateEntryWithNoCrc(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
- // Stream 0 has CRC, stream 1 doesn't.
- histogram_tester.ExpectBucketCount("SimpleCache.Http.SyncCheckEOFHasCrc",
- true, 1);
- histogram_tester.ExpectBucketCount("SimpleCache.Http.SyncCheckEOFHasCrc",
- false, 1);
- // EOF check is recorded even if there is no CRC there.
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncCheckEOFResult",
disk_cache::CHECK_EOF_RESULT_SUCCESS, 2);
}
@@ -5718,11 +5695,8 @@ TEST_F(DiskCacheSimplePrefetchTest, ChecksumPrefetch) {
SetupFullPrefetch(2 * kEntrySize);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
- // Expect 2 CRCs --- stream 0 and stream 1.
- histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncCheckEOFHasCrc",
- true, 2);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncCheckEOFResult",
disk_cache::CHECK_EOF_RESULT_SUCCESS, 2);
}
@@ -5733,13 +5707,8 @@ TEST_F(DiskCacheSimplePrefetchTest, NoChecksumPrefetch) {
SetupFullPrefetch(2 * kEntrySize);
const char kKey[] = "a key";
InitCacheAndCreateEntryWithNoCrc(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
- // Stream 0 has CRC, stream 1 doesn't.
- histogram_tester.ExpectBucketCount("SimpleCache.Http.SyncCheckEOFHasCrc",
- true, 1);
- histogram_tester.ExpectBucketCount("SimpleCache.Http.SyncCheckEOFHasCrc",
- false, 1);
// EOF check is recorded even if there is no CRC there.
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncCheckEOFResult",
disk_cache::CHECK_EOF_RESULT_SUCCESS, 2);
@@ -5765,240 +5734,119 @@ TEST_F(DiskCacheSimplePrefetchTest, PrefetchReadsSync) {
entry->Close();
}
-TEST_F(DiskCacheSimplePrefetchTest, NoFullNoHintNoSpeculative) {
- base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(0, false, 0);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_NONE, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount(
- "SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
-}
-
-TEST_F(DiskCacheSimplePrefetchTest, NoFullYesHintNoSpeculative) {
+TEST_F(DiskCacheSimplePrefetchTest, NoFullNoSpeculative) {
base::HistogramTester histogram_tester;
- // Trailer prefetch hint should do nothing outside of APP_CACHE mode.
- SetupFullAndTrailerPrefetch(0, true, 0);
+ SetupFullAndTrailerPrefetch(0, 0);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_NONE, 1);
histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount(
"SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimplePrefetchTest, NoFullNoHintSmallSpeculative) {
+TEST_F(DiskCacheSimplePrefetchTest, NoFullSmallSpeculative) {
base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(0, false, kEntrySize / 2);
+ SetupFullAndTrailerPrefetch(0, kEntrySize / 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_TRAILER, 1);
histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount(
"SimpleCache.Http.EntryTrailerPrefetchDelta", 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimplePrefetchTest, NoFullNoHintLargeSpeculative) {
+TEST_F(DiskCacheSimplePrefetchTest, NoFullLargeSpeculative) {
base::HistogramTester histogram_tester;
// A large speculative trailer prefetch that exceeds the entry file
// size should effectively trigger full prefetch behavior.
- SetupFullAndTrailerPrefetch(0, false, kEntrySize * 2);
+ SetupFullAndTrailerPrefetch(0, kEntrySize * 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_FULL, 1);
histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount(
"SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", true, 1);
}
-TEST_F(DiskCacheSimplePrefetchTest, NoFullYesHintSmallSpeculative) {
+TEST_F(DiskCacheSimplePrefetchTest, SmallFullNoSpeculative) {
base::HistogramTester histogram_tester;
- // Trailer prefetch hint should do nothing outside of APP_CACHE mode.
- SetupFullAndTrailerPrefetch(0, true, kEntrySize / 2);
+ SetupFullAndTrailerPrefetch(kEntrySize / 2, 0);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_TRAILER, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
- 1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount(
- "SimpleCache.Http.EntryTrailerPrefetchDelta", 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
-}
-
-TEST_F(DiskCacheSimplePrefetchTest, NoFullYesHintLargeSpeculative) {
- base::HistogramTester histogram_tester;
- // Trailer prefetch hint should do nothing outside of APP_CACHE mode.
- SetupFullAndTrailerPrefetch(0, true, kEntrySize * 2);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_FULL, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount(
- "SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", true, 1);
-}
-
-TEST_F(DiskCacheSimplePrefetchTest, SmallFullNoHintNoSpeculative) {
- base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(kEntrySize / 2, false, 0);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_NONE, 1);
histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount(
"SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimplePrefetchTest, LargeFullNoHintNoSpeculative) {
+TEST_F(DiskCacheSimplePrefetchTest, LargeFullNoSpeculative) {
base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(kEntrySize * 2, false, 0);
+ SetupFullAndTrailerPrefetch(kEntrySize * 2, 0);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_FULL, 1);
histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount(
"SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", true, 1);
}
-TEST_F(DiskCacheSimplePrefetchTest, SmallFullYesHintNoSpeculative) {
+TEST_F(DiskCacheSimplePrefetchTest, SmallFullSmallSpeculative) {
base::HistogramTester histogram_tester;
- // Trailer prefetch hint should do nothing outside of APP_CACHE mode.
- SetupFullAndTrailerPrefetch(kEntrySize / 2, true, 0);
+ SetupFullAndTrailerPrefetch(kEntrySize / 2, kEntrySize / 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_NONE, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount(
- "SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
-}
-
-TEST_F(DiskCacheSimplePrefetchTest, LargeFullYesHintNoSpeculative) {
- base::HistogramTester histogram_tester;
- // Trailer prefetch hint should do nothing outside of APP_CACHE mode.
- SetupFullAndTrailerPrefetch(kEntrySize * 2, true, 0);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_FULL, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount(
- "SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", true, 1);
-}
-
-TEST_F(DiskCacheSimplePrefetchTest, SmallFullNoHintSmallSpeculative) {
- base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(kEntrySize / 2, false, kEntrySize / 2);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_TRAILER, 1);
histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
1);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount(
"SimpleCache.Http.EntryTrailerPrefetchDelta", 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimplePrefetchTest, LargeFullNoHintSmallSpeculative) {
+TEST_F(DiskCacheSimplePrefetchTest, LargeFullSmallSpeculative) {
base::HistogramTester histogram_tester;
// Full prefetch takes precedence over a trailer speculative prefetch.
- SetupFullAndTrailerPrefetch(kEntrySize * 2, false, kEntrySize / 2);
+ SetupFullAndTrailerPrefetch(kEntrySize * 2, kEntrySize / 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
histogram_tester.ExpectUniqueSample("SimpleCache.Http.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_FULL, 1);
histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerPrefetchSize",
0);
- histogram_tester.ExpectTotalCount("SimpleCache.Http.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount(
"SimpleCache.Http.EntryTrailerPrefetchDelta", 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.Http.ReadStream1FromPrefetched", true, 1);
}
class DiskCacheSimpleAppCachePrefetchTest : public DiskCacheSimplePrefetchTest {
@@ -6007,237 +5855,119 @@ class DiskCacheSimpleAppCachePrefetchTest : public DiskCacheSimplePrefetchTest {
net::CacheType SimpleCacheType() const override { return net::APP_CACHE; }
};
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullNoHintNoSpeculative) {
+TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullNoSpeculative) {
base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(0, false, 0);
+ SetupFullAndTrailerPrefetch(0, 0);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_NONE, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
- 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
-}
-
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullYesHintNoSpeculative) {
- base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(0, true, 0);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_TRAILER, 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
histogram_tester.ExpectUniqueSample(
"SimpleCache.App.EntryTrailerPrefetchDelta", 0, 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
-}
-
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullNoHintSmallSpeculative) {
- base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(0, false, kEntrySize / 2);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_TRAILER, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
- 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
- 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
-}
-
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullNoHintLargeSpeculative) {
- base::HistogramTester histogram_tester;
- // A large speculative trailer prefetch that exceeds the entry file
- // size should effectively trigger full prefetch behavior.
- SetupFullAndTrailerPrefetch(0, false, kEntrySize * 2);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_FULL, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
- 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", true, 1);
}
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullYesHintSmallSpeculative) {
+TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullSmallSpeculative) {
base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(0, true, kEntrySize / 2);
+ SetupFullAndTrailerPrefetch(0, kEntrySize / 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_TRAILER, 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
histogram_tester.ExpectUniqueSample(
"SimpleCache.App.EntryTrailerPrefetchDelta", 0, 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullYesHintLargeSpeculative) {
+TEST_F(DiskCacheSimpleAppCachePrefetchTest, NoFullLargeSpeculative) {
base::HistogramTester histogram_tester;
// Even though the speculative trailer prefetch size is larger than the
// file size, the hint should take precedence and still perform a limited
// trailer prefetch.
- SetupFullAndTrailerPrefetch(0, true, kEntrySize * 2);
+ SetupFullAndTrailerPrefetch(0, kEntrySize * 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_TRAILER, 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
histogram_tester.ExpectUniqueSample(
"SimpleCache.App.EntryTrailerPrefetchDelta", 0, 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, SmallFullNoHintNoSpeculative) {
+TEST_F(DiskCacheSimpleAppCachePrefetchTest, SmallFullNoSpeculative) {
base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(kEntrySize / 2, false, 0);
+ SetupFullAndTrailerPrefetch(kEntrySize / 2, 0);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_NONE, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
- 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
-}
-
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, LargeFullNoHintNoSpeculative) {
- base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(kEntrySize * 2, false, 0);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
-
- histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
- disk_cache::OPEN_PREFETCH_FULL, 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
- 0);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
- 0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", true, 1);
-}
-
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, SmallFullYesHintNoSpeculative) {
- base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(kEntrySize / 2, true, 0);
-
- const char kKey[] = "a key";
- InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_TRAILER, 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
histogram_tester.ExpectUniqueSample(
"SimpleCache.App.EntryTrailerPrefetchDelta", 0, 1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, LargeFullYesHintNoSpeculative) {
+TEST_F(DiskCacheSimpleAppCachePrefetchTest, LargeFullNoSpeculative) {
base::HistogramTester histogram_tester;
// Full prefetch takes precedence over a trailer hint prefetch.
- SetupFullAndTrailerPrefetch(kEntrySize * 2, true, 0);
+ SetupFullAndTrailerPrefetch(kEntrySize * 2, 0);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_FULL, 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
0);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", true, 1);
}
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, SmallFullNoHintSmallSpeculative) {
+TEST_F(DiskCacheSimpleAppCachePrefetchTest, SmallFullSmallSpeculative) {
base::HistogramTester histogram_tester;
- SetupFullAndTrailerPrefetch(kEntrySize / 2, false, kEntrySize / 2);
+ SetupFullAndTrailerPrefetch(kEntrySize / 2, kEntrySize / 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ false);
histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_TRAILER, 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
1);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
1);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", false, 1);
}
-TEST_F(DiskCacheSimpleAppCachePrefetchTest, LargeFullNoHintSmallSpeculative) {
+TEST_F(DiskCacheSimpleAppCachePrefetchTest, LargeFullSmallSpeculative) {
base::HistogramTester histogram_tester;
// Full prefetch takes precedence over a trailer speculative prefetch.
- SetupFullAndTrailerPrefetch(kEntrySize * 2, false, kEntrySize / 2);
+ SetupFullAndTrailerPrefetch(kEntrySize * 2, kEntrySize / 2);
const char kKey[] = "a key";
InitCacheAndCreateEntry(kKey);
- TryRead(kKey);
+ TryRead(kKey, /* expect_preread_stream1 */ true);
histogram_tester.ExpectUniqueSample("SimpleCache.App.SyncOpenPrefetchMode",
disk_cache::OPEN_PREFETCH_FULL, 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchSize",
0);
- histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerSize", 1);
histogram_tester.ExpectTotalCount("SimpleCache.App.EntryTrailerPrefetchDelta",
0);
- histogram_tester.ExpectUniqueSample(
- "SimpleCache.App.ReadStream1FromPrefetched", true, 1);
}