OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 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 | 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/base/load_log_unittest.h" | 5 #include "net/base/load_log_unittest.h" |
6 #include "testing/gtest/include/gtest/gtest.h" | 6 #include "testing/gtest/include/gtest/gtest.h" |
7 | 7 |
8 namespace net { | 8 namespace net { |
9 | 9 |
10 namespace { | 10 namespace { |
(...skipping 23 matching lines...) Expand all Loading... |
34 LoadLog::PHASE_NONE))); | 34 LoadLog::PHASE_NONE))); |
35 log->Add( | 35 log->Add( |
36 LoadLog::Entry( | 36 LoadLog::Entry( |
37 MakeTime(11), | 37 MakeTime(11), |
38 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, | 38 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, |
39 LoadLog::PHASE_END))); | 39 LoadLog::PHASE_END))); |
40 | 40 |
41 EXPECT_EQ(3u, log->entries().size()); | 41 EXPECT_EQ(3u, log->entries().size()); |
42 EXPECT_EQ(0u, log->num_entries_truncated()); | 42 EXPECT_EQ(0u, log->num_entries_truncated()); |
43 | 43 |
44 ExpectLogContains(log, 0, MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, | 44 EXPECT_TRUE(LogContainsEventAtTime( |
45 LoadLog::PHASE_BEGIN); | 45 *log, 0, MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, |
| 46 LoadLog::PHASE_BEGIN)); |
46 | 47 |
47 ExpectLogContains(log, 1, MakeTime(2), LoadLog::TYPE_CANCELLED, | 48 EXPECT_TRUE(LogContainsEventAtTime( |
48 LoadLog::PHASE_NONE); | 49 *log, 1, MakeTime(2), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE)); |
49 | 50 |
50 ExpectLogContains(log, 2, MakeTime(11), | 51 EXPECT_TRUE(LogContainsEventAtTime( |
51 LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, | 52 *log, 2, MakeTime(11), LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, |
52 LoadLog::PHASE_END); | 53 LoadLog::PHASE_END)); |
53 } | 54 } |
54 | 55 |
55 // Test that the log's size is strictly bounded. | 56 // Test that the log's size is strictly bounded. |
56 TEST(LoadLogTest, Truncation) { | 57 TEST(LoadLogTest, Truncation) { |
57 size_t kMaxNumEntries = 10; | 58 size_t kMaxNumEntries = 10; |
58 scoped_refptr<LoadLog> log(new LoadLog(kMaxNumEntries)); | 59 scoped_refptr<LoadLog> log(new LoadLog(kMaxNumEntries)); |
59 | 60 |
60 // Max it out. | 61 // Max it out. |
61 for (size_t i = 0; i < kMaxNumEntries; ++i) { | 62 for (size_t i = 0; i < kMaxNumEntries; ++i) { |
62 log->Add(LoadLog::Entry(MakeTime(i), | 63 log->Add(LoadLog::Entry(MakeTime(i), |
63 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 64 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
64 LoadLog::PHASE_NONE))); | 65 LoadLog::PHASE_NONE))); |
65 } | 66 } |
66 | 67 |
67 EXPECT_EQ(kMaxNumEntries, log->entries().size()); | 68 EXPECT_EQ(kMaxNumEntries, log->entries().size()); |
68 EXPECT_EQ(0u, log->num_entries_truncated()); | 69 EXPECT_EQ(0u, log->num_entries_truncated()); |
69 | 70 |
70 // Check the last entry. | 71 // Check the last entry. |
71 ExpectLogContains(log, 9, MakeTime(9), | 72 EXPECT_TRUE(LogContainsEventAtTime( |
72 LoadLog::TYPE_CANCELLED, | 73 *log, 9, MakeTime(9), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE)); |
73 LoadLog::PHASE_NONE); | |
74 | 74 |
75 // Add three entries while maxed out (will cause truncation) | 75 // Add three entries while maxed out (will cause truncation) |
76 log->Add(LoadLog::Entry(MakeTime(0), | 76 log->Add(LoadLog::Entry(MakeTime(0), |
77 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 77 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
78 LoadLog::PHASE_NONE))); | 78 LoadLog::PHASE_NONE))); |
79 log->Add(LoadLog::Entry(MakeTime(1), | 79 log->Add(LoadLog::Entry(MakeTime(1), |
80 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 80 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
81 LoadLog::PHASE_NONE))); | 81 LoadLog::PHASE_NONE))); |
82 log->Add(LoadLog::Entry(MakeTime(2), | 82 log->Add(LoadLog::Entry(MakeTime(2), |
83 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 83 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
84 LoadLog::PHASE_NONE))); | 84 LoadLog::PHASE_NONE))); |
85 | 85 |
86 EXPECT_EQ(kMaxNumEntries, log->entries().size()); | 86 EXPECT_EQ(kMaxNumEntries, log->entries().size()); |
87 EXPECT_EQ(3u, log->num_entries_truncated()); | 87 EXPECT_EQ(3u, log->num_entries_truncated()); |
88 | 88 |
89 // Check the last entry -- it should be the final entry we added. | 89 // Check the last entry -- it should be the final entry we added. |
90 ExpectLogContains(log, 9, MakeTime(2), | 90 EXPECT_TRUE(LogContainsEventAtTime( |
91 LoadLog::TYPE_CANCELLED, | 91 *log, 9, MakeTime(2), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE)); |
92 LoadLog::PHASE_NONE); | |
93 } | 92 } |
94 | 93 |
95 TEST(LoadLogTest, Append) { | 94 TEST(LoadLogTest, Append) { |
96 scoped_refptr<LoadLog> log1(new LoadLog(10)); | 95 scoped_refptr<LoadLog> log1(new LoadLog(10)); |
97 scoped_refptr<LoadLog> log2(new LoadLog(10)); | 96 scoped_refptr<LoadLog> log2(new LoadLog(10)); |
98 | 97 |
99 log1->Add(LoadLog::Entry(MakeTime(0), | 98 log1->Add(LoadLog::Entry(MakeTime(0), |
100 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | 99 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, |
101 LoadLog::PHASE_BEGIN))); | 100 LoadLog::PHASE_BEGIN))); |
102 | 101 |
103 log2->Add(LoadLog::Entry(MakeTime(3), | 102 log2->Add(LoadLog::Entry(MakeTime(3), |
104 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 103 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
105 LoadLog::PHASE_NONE))); | 104 LoadLog::PHASE_NONE))); |
106 log2->Add(LoadLog::Entry(MakeTime(9), | 105 log2->Add(LoadLog::Entry(MakeTime(9), |
107 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | 106 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, |
108 LoadLog::PHASE_END))); | 107 LoadLog::PHASE_END))); |
109 | 108 |
110 log1->Append(log2); | 109 log1->Append(log2); |
111 | 110 |
112 // Add something else to log2 (should NOT be reflected in log1). | 111 // Add something else to log2 (should NOT be reflected in log1). |
113 log2->Add(LoadLog::Entry(MakeTime(19), | 112 log2->Add(LoadLog::Entry(MakeTime(19), |
114 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 113 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
115 LoadLog::PHASE_NONE))); | 114 LoadLog::PHASE_NONE))); |
116 | 115 |
117 EXPECT_EQ(3u, log1->entries().size()); | 116 EXPECT_EQ(3u, log1->entries().size()); |
118 EXPECT_EQ(0u, log1->num_entries_truncated()); | 117 EXPECT_EQ(0u, log1->num_entries_truncated()); |
119 | 118 |
120 ExpectLogContains(log1, 0, MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, | 119 EXPECT_TRUE(LogContainsEventAtTime( |
121 LoadLog::PHASE_BEGIN); | 120 *log1, 0, MakeTime(0), LoadLog::TYPE_HOST_RESOLVER_IMPL, |
| 121 LoadLog::PHASE_BEGIN)); |
122 | 122 |
123 ExpectLogContains(log1, 1, MakeTime(3), LoadLog::TYPE_CANCELLED, | 123 EXPECT_TRUE(LogContainsEventAtTime( |
124 LoadLog::PHASE_NONE); | 124 *log1, 1, MakeTime(3), LoadLog::TYPE_CANCELLED, |
| 125 LoadLog::PHASE_NONE)); |
125 | 126 |
126 ExpectLogContains(log1, 2, MakeTime(9), LoadLog::TYPE_HOST_RESOLVER_IMPL, | 127 EXPECT_TRUE(LogContainsEventAtTime( |
127 LoadLog::PHASE_END); | 128 *log1, 2, MakeTime(9), LoadLog::TYPE_HOST_RESOLVER_IMPL, |
| 129 LoadLog::PHASE_END)); |
128 } | 130 } |
129 | 131 |
130 TEST(LoadLogTest, AppendWithTruncation) { | 132 TEST(LoadLogTest, AppendWithTruncation) { |
131 // Append() should also respect the maximum number of entries bound. | 133 // Append() should also respect the maximum number of entries bound. |
132 // (This is basically the same test as LoadLogTest.Truncation). | 134 // (This is basically the same test as LoadLogTest.Truncation). |
133 | 135 |
134 // Create two load logs, which both have 6 out of 10 entries filled. | 136 // Create two load logs, which both have 6 out of 10 entries filled. |
135 size_t kMaxNumEntries = 10; | 137 size_t kMaxNumEntries = 10; |
136 scoped_refptr<LoadLog> log1(new LoadLog(kMaxNumEntries)); | 138 scoped_refptr<LoadLog> log1(new LoadLog(kMaxNumEntries)); |
137 scoped_refptr<LoadLog> log2(new LoadLog(kMaxNumEntries)); | 139 scoped_refptr<LoadLog> log2(new LoadLog(kMaxNumEntries)); |
138 for (size_t i = 0; i < 6; ++i) { | 140 for (size_t i = 0; i < 6; ++i) { |
139 log1->Add(LoadLog::Entry(MakeTime(i), | 141 log1->Add(LoadLog::Entry(MakeTime(i), |
140 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 142 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
141 LoadLog::PHASE_NONE))); | 143 LoadLog::PHASE_NONE))); |
142 log2->Add(LoadLog::Entry(MakeTime(2 * i), | 144 log2->Add(LoadLog::Entry(MakeTime(2 * i), |
143 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 145 LoadLog::Event(LoadLog::TYPE_CANCELLED, |
144 LoadLog::PHASE_NONE))); | 146 LoadLog::PHASE_NONE))); |
145 } | 147 } |
146 | 148 |
147 // Append log2 to log1. | 149 // Append log2 to log1. |
148 log1->Append(log2); | 150 log1->Append(log2); |
149 | 151 |
150 // The combined log totalled 12 entries, so 2 must have been dropped. | 152 // The combined log totalled 12 entries, so 2 must have been dropped. |
151 EXPECT_EQ(10u, log1->entries().size()); | 153 EXPECT_EQ(10u, log1->entries().size()); |
152 EXPECT_EQ(2u, log1->num_entries_truncated()); | 154 EXPECT_EQ(2u, log1->num_entries_truncated()); |
153 | 155 |
154 // Combined log should end with the final entry of log2. | 156 // Combined log should end with the final entry of log2. |
155 ExpectLogContains(log1, 9, MakeTime(10), LoadLog::TYPE_CANCELLED, | 157 EXPECT_TRUE(LogContainsEventAtTime( |
156 LoadLog::PHASE_NONE); | 158 *log1, 9, MakeTime(10), LoadLog::TYPE_CANCELLED, LoadLog::PHASE_NONE)); |
157 } | 159 } |
158 | 160 |
159 TEST(LoadLogTest, EventTypeToString) { | 161 TEST(LoadLogTest, EventTypeToString) { |
160 EXPECT_STREQ("HOST_RESOLVER_IMPL", | 162 EXPECT_STREQ("HOST_RESOLVER_IMPL", |
161 LoadLog::EventTypeToString(LoadLog::TYPE_HOST_RESOLVER_IMPL)); | 163 LoadLog::EventTypeToString(LoadLog::TYPE_HOST_RESOLVER_IMPL)); |
162 EXPECT_STREQ("HOST_RESOLVER_IMPL_OBSERVER_ONSTART", | 164 EXPECT_STREQ("HOST_RESOLVER_IMPL_OBSERVER_ONSTART", |
163 LoadLog::EventTypeToString( | 165 LoadLog::EventTypeToString( |
164 LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART)); | 166 LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART)); |
165 } | 167 } |
166 | 168 |
167 TEST(LoadLogTest, String) { | 169 TEST(LoadLogTest, String) { |
168 scoped_refptr<LoadLog> log(new LoadLog(10)); | 170 scoped_refptr<LoadLog> log(new LoadLog(10)); |
169 | 171 |
170 // Make sure that AddStringLiteral() adds a literal and not a std::string. | 172 // Make sure that AddStringLiteral() adds a literal and not a std::string. |
171 // (in case there is any funny-business with implicit conversions). | 173 // (in case there is any funny-business with implicit conversions). |
172 LoadLog::AddStringLiteral(log, "This is a literal"); | 174 LoadLog::AddStringLiteral(log, "This is a literal"); |
173 log->Add(LoadLog::Entry(MakeTime(0), "Another literal")); | 175 log->Add(LoadLog::Entry(MakeTime(0), "Another literal")); |
174 log->Add(LoadLog::Entry(MakeTime(0), std::string("Now a std::string"))); | 176 log->Add(LoadLog::Entry(MakeTime(0), std::string("Now a std::string"))); |
175 | 177 |
176 ASSERT_EQ(3u, log->entries().size()); | 178 ASSERT_EQ(3u, log->entries().size()); |
177 EXPECT_EQ(LoadLog::Entry::TYPE_STRING_LITERAL, log->entries()[0].type); | 179 EXPECT_EQ(LoadLog::Entry::TYPE_STRING_LITERAL, log->entries()[0].type); |
178 EXPECT_EQ(LoadLog::Entry::TYPE_STRING_LITERAL, log->entries()[1].type); | 180 EXPECT_EQ(LoadLog::Entry::TYPE_STRING_LITERAL, log->entries()[1].type); |
179 EXPECT_EQ(LoadLog::Entry::TYPE_STRING, log->entries()[2].type); | 181 EXPECT_EQ(LoadLog::Entry::TYPE_STRING, log->entries()[2].type); |
180 } | 182 } |
181 | 183 |
182 } // namespace | 184 } // namespace |
183 } // namespace net | 185 } // namespace net |
OLD | NEW |