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

Side by Side Diff: net/base/load_log_unittest.cc

Issue 165404: Implement LoadLog, and hook up HostResolverImpl to LoadLog.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Do an unsigned/signed thing for GCC compile Created 11 years, 4 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/base/load_log_unittest.h ('k') | net/base/load_log_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2009 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 "net/base/load_log_unittest.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7
8 namespace net {
9
10 base::TimeTicks MakeTime(int t) {
11 base::TimeTicks ticks; // initialized to 0.
12 ticks += base::TimeDelta::FromMilliseconds(t);
13 return ticks;
14 }
15
16 void ExpectLogContains(const LoadLog* log,
17 size_t i,
18 LoadLog::EventType expected_event,
19 LoadLog::EventPhase expected_phase) {
20 ASSERT_LT(i, log->events().size());
21 EXPECT_EQ(expected_event, log->events()[i].type);
22 EXPECT_EQ(expected_phase, log->events()[i].phase);
23 }
24
25 void ExpectLogContains(const LoadLog* log,
26 size_t i,
27 base::TimeTicks expected_time,
28 LoadLog::EventType expected_event,
29 LoadLog::EventPhase expected_phase) {
30 ASSERT_LT(i, log->events().size());
31 EXPECT_TRUE(expected_time == log->events()[i].time);
32 EXPECT_EQ(expected_event, log->events()[i].type);
33 EXPECT_EQ(expected_phase, log->events()[i].phase);
34 }
35
36 namespace {
37
38 TEST(LoadLogTest, Nullable) {
39 // Make sure that the static methods can be called with NULL (no-op).
40 // (Should not crash).
41 LoadLog::BeginEvent(NULL, LoadLog::TYPE_HOST_RESOLVER_IMPL);
42 LoadLog::AddEvent(NULL, LoadLog::TYPE_HOST_RESOLVER_IMPL);
43 LoadLog::EndEvent(NULL, LoadLog::TYPE_HOST_RESOLVER_IMPL);
44 }
45
46 TEST(LoadLogTest, Basic) {
47 scoped_refptr<LoadLog> log(new LoadLog);
48
49 // Logs start off empty.
50 EXPECT_EQ(0u, log->events().size());
51
52 // Add 3 entries.
53
54 log->Add(MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, LoadLog::PHASE_BEGIN);
55 log->Add(MakeTime(2), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE);
56 log->Add(MakeTime(11), LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART,
57 LoadLog::PHASE_END);
58
59 EXPECT_EQ(3u, log->events().size());
60
61 ExpectLogContains(log, 0, MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL,
62 LoadLog::PHASE_BEGIN);
63
64 ExpectLogContains(log, 1, MakeTime(2),
65 LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE);
66
67 ExpectLogContains(log, 2, MakeTime(11),
68 LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, LoadLog::PHASE_END);
69 }
70
71 // Test that the log's size is strictly bounded.
72 TEST(LoadLogTest, Truncation) {
73 scoped_refptr<LoadLog> log(new LoadLog);
74
75 // Almost max it out.
76 for (size_t i = 0; i < LoadLog::kMaxNumEntries - 1; ++i) {
77 log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE);
78 }
79 EXPECT_EQ(LoadLog::kMaxNumEntries - 1,
80 static_cast<int>(log->events().size()));
81 EXPECT_EQ(LoadLog::TYPE_CANCELLED,
82 log->events()[LoadLog::kMaxNumEntries - 2].type);
83
84 // Max it out (none of these get appended to the log).
85 log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE);
86 log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE);
87 log->Add(MakeTime(0), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE);
88
89 EXPECT_EQ(LoadLog::kMaxNumEntries, log->events().size());
90
91 // We terminated with a "truncation" event.
92 ExpectLogContains(log, LoadLog::kMaxNumEntries - 1, MakeTime(0),
93 LoadLog::TYPE_LOG_TRUNCATED, LoadLog::PHASE_NONE);
94 }
95
96 TEST(LoadLogTest, EventTypeToString) {
97 EXPECT_STREQ("HOST_RESOLVER_IMPL",
98 LoadLog::EventTypeToString(LoadLog::TYPE_HOST_RESOLVER_IMPL));
99 EXPECT_STREQ("HOST_RESOLVER_IMPL_OBSERVER_ONSTART",
100 LoadLog::EventTypeToString(
101 LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART));
102 }
103
104 } // namespace
105 } // namespace net
OLDNEW
« no previous file with comments | « net/base/load_log_unittest.h ('k') | net/base/load_log_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698