Index: net/base/load_log_unittest.cc |
=================================================================== |
--- net/base/load_log_unittest.cc (revision 31195) |
+++ net/base/load_log_unittest.cc (working copy) |
@@ -18,10 +18,11 @@ |
} |
TEST(LoadLogTest, Basic) { |
- scoped_refptr<LoadLog> log(new LoadLog); |
+ scoped_refptr<LoadLog> log(new LoadLog(10)); |
// Logs start off empty. |
EXPECT_EQ(0u, log->events().size()); |
+ EXPECT_EQ(0u, log->num_entries_truncated()); |
// Add 3 entries. |
@@ -31,6 +32,7 @@ |
LoadLog::PHASE_END); |
EXPECT_EQ(3u, log->events().size()); |
+ EXPECT_EQ(0u, log->num_entries_truncated()); |
ExpectLogContains(log, 0, MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, |
LoadLog::PHASE_BEGIN); |
@@ -45,32 +47,39 @@ |
// Test that the log's size is strictly bounded. |
TEST(LoadLogTest, Truncation) { |
- scoped_refptr<LoadLog> log(new LoadLog); |
+ size_t kMaxNumEntries = 10; |
+ scoped_refptr<LoadLog> log(new LoadLog(kMaxNumEntries)); |
- // Almost max it out. |
- for (size_t i = 0; i < LoadLog::kMaxNumEntries - 1; ++i) { |
- log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
+ // Max it out. |
+ for (size_t i = 0; i < kMaxNumEntries; ++i) { |
+ log->Add(MakeTime(i), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
} |
- EXPECT_EQ(LoadLog::kMaxNumEntries - 1, |
- static_cast<int>(log->events().size())); |
- EXPECT_EQ(LoadLog::TYPE_CANCELLED, |
- log->events()[LoadLog::kMaxNumEntries - 2].type); |
- // Max it out (none of these get appended to the log). |
+ EXPECT_EQ(kMaxNumEntries, log->events().size()); |
+ EXPECT_EQ(0u, log->num_entries_truncated()); |
+ |
+ // Check the last entry. |
+ ExpectLogContains(log, 9, MakeTime(9), |
+ LoadLog::TYPE_CANCELLED, |
+ LoadLog::PHASE_NONE); |
+ |
+ // Add three entries while maxed out (will cause truncation) |
log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
- log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
- log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
+ log->Add(MakeTime(1), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
+ log->Add(MakeTime(2), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
- EXPECT_EQ(LoadLog::kMaxNumEntries, log->events().size()); |
+ EXPECT_EQ(kMaxNumEntries, log->events().size()); |
+ EXPECT_EQ(3u, log->num_entries_truncated()); |
- // We terminated with a "truncation" event. |
- ExpectLogContains(log, LoadLog::kMaxNumEntries - 1, MakeTime(0), |
- LoadLog::TYPE_LOG_TRUNCATED, LoadLog::PHASE_NONE); |
+ // Check the last entry -- it should be the final entry we added. |
+ ExpectLogContains(log, 9, MakeTime(2), |
+ LoadLog::TYPE_CANCELLED, |
+ LoadLog::PHASE_NONE); |
} |
TEST(LoadLogTest, Append) { |
- scoped_refptr<LoadLog> log1(new LoadLog); |
- scoped_refptr<LoadLog> log2(new LoadLog); |
+ scoped_refptr<LoadLog> log1(new LoadLog(10)); |
+ scoped_refptr<LoadLog> log2(new LoadLog(10)); |
log1->Add(MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, |
LoadLog::PHASE_BEGIN); |
@@ -84,6 +93,7 @@ |
log2->Add(MakeTime(19), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
EXPECT_EQ(3u, log1->events().size()); |
+ EXPECT_EQ(0u, log1->num_entries_truncated()); |
ExpectLogContains(log1, 0, MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, |
LoadLog::PHASE_BEGIN); |
@@ -99,22 +109,25 @@ |
// Append() should also respect the maximum number of entries bound. |
// (This is basically the same test as LoadLogTest.Truncation). |
- // Create two load logs, which are 2/3 capcity. |
- scoped_refptr<LoadLog> log1(new LoadLog); |
- scoped_refptr<LoadLog> log2(new LoadLog); |
- for (size_t i = 0; i < 2 * LoadLog::kMaxNumEntries / 3; ++i) { |
- log1->Add(MakeTime(1), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
- log2->Add(MakeTime(2), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
+ // Create two load logs, which both have 6 out of 10 entries filled. |
+ size_t kMaxNumEntries = 10; |
+ scoped_refptr<LoadLog> log1(new LoadLog(kMaxNumEntries)); |
+ scoped_refptr<LoadLog> log2(new LoadLog(kMaxNumEntries)); |
+ for (size_t i = 0; i < 6; ++i) { |
+ log1->Add(MakeTime(i), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
+ log2->Add(MakeTime(2 * i), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE); |
} |
// Append log2 to log1. |
log1->Append(log2); |
- EXPECT_EQ(LoadLog::kMaxNumEntries, log1->events().size()); |
+ // The combined log totalled 12 entries, so 2 must have been dropped. |
+ EXPECT_EQ(10u, log1->events().size()); |
+ EXPECT_EQ(2u, log1->num_entries_truncated()); |
- // We terminated with a "truncation" event. |
- ExpectLogContains(log1, LoadLog::kMaxNumEntries - 1, MakeTime(2), |
- LoadLog::TYPE_LOG_TRUNCATED, LoadLog::PHASE_NONE); |
+ // Combined log should end with the final entry of log2. |
+ ExpectLogContains(log1, 9, MakeTime(10), LoadLog::TYPE_CANCELLED, |
+ LoadLog::PHASE_NONE); |
} |
TEST(LoadLogTest, EventTypeToString) { |