OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/memory/scoped_ptr.h" | |
6 #include "net/base/io_buffer.h" | |
7 #include "net/disk_cache/disk_cache_test_util.h" | |
8 #include "net/disk_cache/flash/cache_entry.h" | |
9 #include "net/disk_cache/flash/flash_cache_test_base.h" | |
10 #include "net/disk_cache/flash/format.h" | |
11 #include "testing/gtest/include/gtest/gtest.h" | |
12 | |
13 using disk_cache::CacheEntry; | |
14 | |
15 // Tests the behavior of a CacheEntry with empty streams. | |
16 TEST_F(FlashCacheTest, CacheEntryEmpty) { | |
17 scoped_ptr<CacheEntry> entry(new CacheEntry(log_structured_store_.get())); | |
18 EXPECT_TRUE(entry->Init()); | |
19 EXPECT_TRUE(entry->Close()); | |
20 | |
21 entry.reset(new CacheEntry(log_structured_store_.get(), entry->id())); | |
22 EXPECT_TRUE(entry->Init()); | |
23 | |
24 for (int i = 0; i < disk_cache::kFlashCacheEntryNumStreams; ++i) { | |
25 const int kSize = 1024; | |
26 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(kSize)); | |
27 EXPECT_EQ(0, entry->GetDataSize(i)); | |
28 EXPECT_EQ(0, entry->ReadData(i, 0, buf, kSize)); | |
29 } | |
30 EXPECT_TRUE(entry->Close()); | |
31 } | |
32 | |
33 TEST_F(FlashCacheTest, CacheEntryWriteRead) { | |
34 scoped_ptr<CacheEntry> entry(new CacheEntry(log_structured_store_.get())); | |
35 EXPECT_TRUE(entry->Init()); | |
36 | |
37 int sizes[disk_cache::kFlashCacheEntryNumStreams] = {333, 444, 555, 666}; | |
38 scoped_refptr<net::IOBuffer> buffers[disk_cache::kFlashCacheEntryNumStreams]; | |
39 | |
40 for (int i = 0; i < disk_cache::kFlashCacheEntryNumStreams; ++i) { | |
41 buffers[i] = new net::IOBuffer(sizes[i]); | |
42 CacheTestFillBuffer(buffers[i]->data(), sizes[i], false); | |
43 EXPECT_EQ(sizes[i], entry->WriteData(i, 0, buffers[i], sizes[i])); | |
44 } | |
45 EXPECT_TRUE(entry->Close()); | |
46 | |
47 int32 id = entry->id(); | |
48 entry.reset(new CacheEntry(log_structured_store_.get(), id)); | |
49 EXPECT_TRUE(entry->Init()); | |
50 | |
51 for (int i = 0; i < disk_cache::kFlashCacheEntryNumStreams; ++i) { | |
52 EXPECT_EQ(sizes[i], entry->GetDataSize(i)); | |
53 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(sizes[i])); | |
54 EXPECT_EQ(sizes[i], entry->ReadData(i, 0, buffer, sizes[i])); | |
55 EXPECT_EQ(0, memcmp(buffers[i]->data(), buffer->data(), sizes[i])); | |
56 } | |
57 EXPECT_TRUE(entry->Close()); | |
58 EXPECT_EQ(id, entry->id()); | |
59 } | |
OLD | NEW |