Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(615)

Unified Diff: net/base/load_log_unittest.cc

Issue 363025: Improve the display of LoadLogs when truncation occurs.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Change -1 to be a constant instead Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/base/load_log_event_type_list.h ('k') | net/base/load_log_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « net/base/load_log_event_type_list.h ('k') | net/base/load_log_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698