| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/disk_cache/blockfile/stats.h" | 5 #include "net/disk_cache/blockfile/stats.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include <memory> |
| 8 |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 10 |
| 10 TEST(DiskCacheStatsTest, Init) { | 11 TEST(DiskCacheStatsTest, Init) { |
| 11 disk_cache::Stats stats; | 12 disk_cache::Stats stats; |
| 12 EXPECT_TRUE(stats.Init(nullptr, 0, disk_cache::Addr())); | 13 EXPECT_TRUE(stats.Init(nullptr, 0, disk_cache::Addr())); |
| 13 EXPECT_EQ(0, stats.GetCounter(disk_cache::Stats::TRIM_ENTRY)); | 14 EXPECT_EQ(0, stats.GetCounter(disk_cache::Stats::TRIM_ENTRY)); |
| 14 } | 15 } |
| 15 | 16 |
| 16 TEST(DiskCacheStatsTest, InitWithEmptyBuffer) { | 17 TEST(DiskCacheStatsTest, InitWithEmptyBuffer) { |
| 17 disk_cache::Stats stats; | 18 disk_cache::Stats stats; |
| 18 int required_len = stats.StorageSize(); | 19 int required_len = stats.StorageSize(); |
| 19 scoped_ptr<char[]> storage(new char[required_len]); | 20 std::unique_ptr<char[]> storage(new char[required_len]); |
| 20 memset(storage.get(), 0, required_len); | 21 memset(storage.get(), 0, required_len); |
| 21 | 22 |
| 22 ASSERT_TRUE(stats.Init(storage.get(), required_len, disk_cache::Addr())); | 23 ASSERT_TRUE(stats.Init(storage.get(), required_len, disk_cache::Addr())); |
| 23 EXPECT_EQ(0, stats.GetCounter(disk_cache::Stats::TRIM_ENTRY)); | 24 EXPECT_EQ(0, stats.GetCounter(disk_cache::Stats::TRIM_ENTRY)); |
| 24 } | 25 } |
| 25 | 26 |
| 26 TEST(DiskCacheStatsTest, FailsInit) { | 27 TEST(DiskCacheStatsTest, FailsInit) { |
| 27 disk_cache::Stats stats; | 28 disk_cache::Stats stats; |
| 28 int required_len = stats.StorageSize(); | 29 int required_len = stats.StorageSize(); |
| 29 scoped_ptr<char[]> storage(new char[required_len]); | 30 std::unique_ptr<char[]> storage(new char[required_len]); |
| 30 memset(storage.get(), 0, required_len); | 31 memset(storage.get(), 0, required_len); |
| 31 | 32 |
| 32 // Try a small buffer. | 33 // Try a small buffer. |
| 33 EXPECT_LT(200, required_len); | 34 EXPECT_LT(200, required_len); |
| 34 disk_cache::Addr addr; | 35 disk_cache::Addr addr; |
| 35 EXPECT_FALSE(stats.Init(storage.get(), 200, addr)); | 36 EXPECT_FALSE(stats.Init(storage.get(), 200, addr)); |
| 36 | 37 |
| 37 // Try a buffer with garbage. | 38 // Try a buffer with garbage. |
| 38 memset(storage.get(), 'a', required_len); | 39 memset(storage.get(), 'a', required_len); |
| 39 EXPECT_FALSE(stats.Init(storage.get(), required_len, addr)); | 40 EXPECT_FALSE(stats.Init(storage.get(), required_len, addr)); |
| 40 } | 41 } |
| 41 | 42 |
| 42 TEST(DiskCacheStatsTest, SaveRestore) { | 43 TEST(DiskCacheStatsTest, SaveRestore) { |
| 43 scoped_ptr<disk_cache::Stats> stats(new disk_cache::Stats); | 44 std::unique_ptr<disk_cache::Stats> stats(new disk_cache::Stats); |
| 44 | 45 |
| 45 disk_cache::Addr addr(5); | 46 disk_cache::Addr addr(5); |
| 46 ASSERT_TRUE(stats->Init(nullptr, 0, addr)); | 47 ASSERT_TRUE(stats->Init(nullptr, 0, addr)); |
| 47 stats->SetCounter(disk_cache::Stats::CREATE_ERROR, 11); | 48 stats->SetCounter(disk_cache::Stats::CREATE_ERROR, 11); |
| 48 stats->SetCounter(disk_cache::Stats::DOOM_ENTRY, 13); | 49 stats->SetCounter(disk_cache::Stats::DOOM_ENTRY, 13); |
| 49 stats->OnEvent(disk_cache::Stats::MIN_COUNTER); | 50 stats->OnEvent(disk_cache::Stats::MIN_COUNTER); |
| 50 stats->OnEvent(disk_cache::Stats::TRIM_ENTRY); | 51 stats->OnEvent(disk_cache::Stats::TRIM_ENTRY); |
| 51 stats->OnEvent(disk_cache::Stats::DOOM_RECENT); | 52 stats->OnEvent(disk_cache::Stats::DOOM_RECENT); |
| 52 | 53 |
| 53 int required_len = stats->StorageSize(); | 54 int required_len = stats->StorageSize(); |
| 54 scoped_ptr<char[]> storage(new char[required_len]); | 55 std::unique_ptr<char[]> storage(new char[required_len]); |
| 55 disk_cache::Addr out_addr; | 56 disk_cache::Addr out_addr; |
| 56 int real_len = stats->SerializeStats(storage.get(), required_len, &out_addr); | 57 int real_len = stats->SerializeStats(storage.get(), required_len, &out_addr); |
| 57 EXPECT_GE(required_len, real_len); | 58 EXPECT_GE(required_len, real_len); |
| 58 EXPECT_EQ(out_addr, addr); | 59 EXPECT_EQ(out_addr, addr); |
| 59 | 60 |
| 60 stats.reset(new disk_cache::Stats); | 61 stats.reset(new disk_cache::Stats); |
| 61 ASSERT_TRUE(stats->Init(storage.get(), real_len, addr)); | 62 ASSERT_TRUE(stats->Init(storage.get(), real_len, addr)); |
| 62 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::MIN_COUNTER)); | 63 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::MIN_COUNTER)); |
| 63 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::TRIM_ENTRY)); | 64 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::TRIM_ENTRY)); |
| 64 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::DOOM_RECENT)); | 65 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::DOOM_RECENT)); |
| 65 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::OPEN_HIT)); | 66 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::OPEN_HIT)); |
| 66 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::READ_DATA)); | 67 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::READ_DATA)); |
| 67 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::LAST_REPORT_TIMER)); | 68 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::LAST_REPORT_TIMER)); |
| 68 EXPECT_EQ(11, stats->GetCounter(disk_cache::Stats::CREATE_ERROR)); | 69 EXPECT_EQ(11, stats->GetCounter(disk_cache::Stats::CREATE_ERROR)); |
| 69 EXPECT_EQ(13, stats->GetCounter(disk_cache::Stats::DOOM_ENTRY)); | 70 EXPECT_EQ(13, stats->GetCounter(disk_cache::Stats::DOOM_ENTRY)); |
| 70 | 71 |
| 71 // Now pass the whole buffer. It shoulod not matter that there is unused | 72 // Now pass the whole buffer. It shoulod not matter that there is unused |
| 72 // space at the end. | 73 // space at the end. |
| 73 stats.reset(new disk_cache::Stats); | 74 stats.reset(new disk_cache::Stats); |
| 74 ASSERT_TRUE(stats->Init(storage.get(), required_len, addr)); | 75 ASSERT_TRUE(stats->Init(storage.get(), required_len, addr)); |
| 75 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::MIN_COUNTER)); | 76 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::MIN_COUNTER)); |
| 76 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::TRIM_ENTRY)); | 77 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::TRIM_ENTRY)); |
| 77 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::DOOM_RECENT)); | 78 EXPECT_EQ(1, stats->GetCounter(disk_cache::Stats::DOOM_RECENT)); |
| 78 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::OPEN_HIT)); | 79 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::OPEN_HIT)); |
| 79 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::READ_DATA)); | 80 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::READ_DATA)); |
| 80 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::LAST_REPORT_TIMER)); | 81 EXPECT_EQ(0, stats->GetCounter(disk_cache::Stats::LAST_REPORT_TIMER)); |
| 81 EXPECT_EQ(11, stats->GetCounter(disk_cache::Stats::CREATE_ERROR)); | 82 EXPECT_EQ(11, stats->GetCounter(disk_cache::Stats::CREATE_ERROR)); |
| 82 EXPECT_EQ(13, stats->GetCounter(disk_cache::Stats::DOOM_ENTRY)); | 83 EXPECT_EQ(13, stats->GetCounter(disk_cache::Stats::DOOM_ENTRY)); |
| 83 } | 84 } |
| OLD | NEW |