Index: net/disk_cache/backend_unittest.cc |
diff --git a/net/disk_cache/backend_unittest.cc b/net/disk_cache/backend_unittest.cc |
index 2ec657e94ab06c12b8c40412b5d8b55698ac9641..7c6e24af4a9ab9da236ed5d397e1f61f392f6b19 100644 |
--- a/net/disk_cache/backend_unittest.cc |
+++ b/net/disk_cache/backend_unittest.cc |
@@ -138,6 +138,11 @@ TEST_F(DiskCacheBackendTest, AppCacheBasics) { |
BackendBasics(); |
} |
+TEST_F(DiskCacheBackendTest, ShaderCacheBasics) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendBasics(); |
+} |
+ |
void DiskCacheBackendTest::BackendKeying() { |
InitCache(); |
const char* kName1 = "the first key"; |
@@ -198,6 +203,11 @@ TEST_F(DiskCacheBackendTest, AppCacheKeying) { |
BackendKeying(); |
} |
+TEST_F(DiskCacheBackendTest, ShaderCacheKeying) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendKeying(); |
+} |
+ |
TEST_F(DiskCacheTest, CreateBackend) { |
net::TestCompletionCallback cb; |
@@ -591,6 +601,14 @@ TEST_F(DiskCacheBackendTest, AppCacheLoad) { |
BackendLoad(); |
} |
+TEST_F(DiskCacheBackendTest, ShaderCacheLoad) { |
+ SetCacheType(net::SHADER_CACHE); |
+ // Work with a tiny index table (16 entries) |
+ SetMask(0xf); |
+ SetMaxSize(0x100000); |
+ BackendLoad(); |
+} |
+ |
// Tests the chaining of an entry to the current head. |
void DiskCacheBackendTest::BackendChain() { |
SetMask(0x1); // 2-entry table. |
@@ -618,6 +636,11 @@ TEST_F(DiskCacheBackendTest, AppCacheChain) { |
BackendChain(); |
} |
+TEST_F(DiskCacheBackendTest, ShaderCacheChain) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendChain(); |
+} |
+ |
TEST_F(DiskCacheBackendTest, NewEvictionTrim) { |
SetNewEviction(); |
SetDirectMode(); |
@@ -728,6 +751,12 @@ TEST_F(DiskCacheBackendTest, AppCacheInvalidEntry) { |
BackendInvalidEntry(); |
} |
+// We'll be leaking memory from this test. |
+TEST_F(DiskCacheBackendTest, ShaderCacheInvalidEntry) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendInvalidEntry(); |
+} |
+ |
// Almost the same test, but this time crash the cache after reading an entry. |
// We'll be leaking memory from this test. |
void DiskCacheBackendTest::BackendInvalidEntryRead() { |
@@ -779,6 +808,12 @@ TEST_F(DiskCacheBackendTest, AppCacheInvalidEntryRead) { |
} |
// We'll be leaking memory from this test. |
+TEST_F(DiskCacheBackendTest, ShaderCacheInvalidEntryRead) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendInvalidEntryRead(); |
+} |
+ |
+// We'll be leaking memory from this test. |
void DiskCacheBackendTest::BackendInvalidEntryWithLoad() { |
// Work with a tiny index table (16 entries) |
SetMask(0xf); |
@@ -845,6 +880,12 @@ TEST_F(DiskCacheBackendTest, AppCacheInvalidEntryWithLoad) { |
} |
// We'll be leaking memory from this test. |
+TEST_F(DiskCacheBackendTest, ShaderCacheInvalidEntryWithLoad) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendInvalidEntryWithLoad(); |
+} |
+ |
+// We'll be leaking memory from this test. |
void DiskCacheBackendTest::BackendTrimInvalidEntry() { |
// Use the implementation directly... we need to simulate a crash. |
SetDirectMode(); |
@@ -1027,6 +1068,11 @@ TEST_F(DiskCacheBackendTest, MemoryOnlyEnumerations) { |
BackendEnumerations(); |
} |
+TEST_F(DiskCacheBackendTest, ShaderCacheEnumerations) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendEnumerations(); |
+} |
+ |
TEST_F(DiskCacheBackendTest, AppCacheEnumerations) { |
SetCacheType(net::APP_CACHE); |
BackendEnumerations(); |
@@ -1096,6 +1142,56 @@ TEST_F(DiskCacheBackendTest, AppCacheEnumerations2) { |
BackendEnumerations2(); |
} |
+TEST_F(DiskCacheBackendTest, ShaderCacheEnumerations2) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendEnumerations2(); |
+} |
+ |
+TEST_F(DiskCacheBackendTest, ShaderCacheEnumerationReadData) { |
rvargas (doing something else)
2013/02/06 20:06:39
nit: add a comment saying what is this about (veri
dsinclair
2013/02/07 18:03:07
Done.
|
+ SetCacheType(net::SHADER_CACHE); |
+ InitCache(); |
+ const std::string first("first"); |
+ const std::string second("second"); |
+ disk_cache::Entry *entry1, *entry2; |
+ const int kSize = 50; |
+ scoped_refptr<net::IOBuffer> buffer1(new net::IOBuffer(kSize)); |
+ |
+ ASSERT_EQ(net::OK, CreateEntry(first, &entry1)); |
+ memset(buffer1->data(), 0, kSize); |
+ base::strlcpy(buffer1->data(), "And the data to save", kSize); |
+ EXPECT_EQ(kSize, WriteData(entry1, 0, 0, buffer1, kSize, false)); |
+ entry1->Close(); |
+ |
+ ASSERT_EQ(net::OK, CreateEntry(second, &entry2)); |
+ entry2->Close(); |
+ FlushQueueForTest(); |
+ |
+ // Make sure that the timestamp is not the same. |
+ AddDelay(); |
+ ASSERT_EQ(net::OK, OpenEntry(second, &entry1)); |
+ void* iter = NULL; |
+ ASSERT_EQ(net::OK, OpenNextEntry(&iter, &entry2)); |
+ EXPECT_EQ(entry2->GetKey(), second); |
+ |
+ // Two entries and the iterator pointing at "first". |
rvargas (doing something else)
2013/02/06 20:06:39
The iterator points at "second"
dsinclair
2013/02/07 18:03:07
Simplified the test case, should be more readable
|
+ entry1->Close(); |
+ entry2->Close(); |
+ cache_->EndEnumeration(&iter); |
+ |
+ // Read the oldest entry and get the newest element. |
+ ASSERT_EQ(net::OK, OpenEntry(first, &entry1)); |
+ EXPECT_EQ(kSize, ReadData(entry1, 0, 0, buffer1, kSize)); |
+ |
+ ASSERT_EQ(net::OK, OpenNextEntry(&iter, &entry2)); |
+ |
+ // The list is not updated. |
+ EXPECT_EQ(entry2->GetKey(), second); |
+ |
+ entry1->Close(); |
+ entry2->Close(); |
+ cache_->EndEnumeration(&iter); |
+} |
+ |
// Verify handling of invalid entries while doing enumerations. |
// We'll be leaking memory from this test. |
void DiskCacheBackendTest::BackendInvalidEntryEnumeration() { |
@@ -2324,6 +2420,11 @@ TEST_F(DiskCacheBackendTest, AppCacheOnlyDoomAll) { |
BackendDoomAll(); |
} |
+TEST_F(DiskCacheBackendTest, ShaderCacheOnlyDoomAll) { |
+ SetCacheType(net::SHADER_CACHE); |
+ BackendDoomAll(); |
+} |
+ |
// If the index size changes when we doom the cache, we should not crash. |
void DiskCacheBackendTest::BackendDoomAll2() { |
EXPECT_EQ(2, cache_->GetEntryCount()); |