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/net_log_unittest.h" |
6 #include "net/base/load_log_util.h" | 6 #include "net/base/net_log_util.h" |
7 #include "net/base/net_errors.h" | 7 #include "net/base/net_errors.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 namespace net { | 10 namespace net { |
11 namespace { | 11 namespace { |
12 | 12 |
13 TEST(LoadLogUtilTest, Basic) { | 13 NetLog::Entry MakeEventEntry(int t, |
14 scoped_refptr<LoadLog> log(new LoadLog(10)); | 14 NetLog::EventType event_type, |
| 15 NetLog::EventPhase event_phase) { |
| 16 NetLog::Entry entry; |
| 17 entry.type = NetLog::Entry::TYPE_EVENT; |
| 18 entry.time = MakeTime(t); |
| 19 entry.event = NetLog::Event(event_type, event_phase); |
| 20 return entry; |
| 21 } |
15 | 22 |
16 log->Add(LoadLog::Entry(MakeTime(1), | 23 NetLog::Entry MakeStringEntry(int t, const std::string& string) { |
17 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | 24 NetLog::Entry entry; |
18 LoadLog::PHASE_BEGIN))); | 25 entry.type = NetLog::Entry::TYPE_STRING; |
19 log->Add( | 26 entry.time = MakeTime(t); |
20 LoadLog::Entry( | 27 entry.string = string; |
21 MakeTime(5), | 28 return entry; |
22 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, | 29 } |
23 LoadLog::PHASE_BEGIN))); | |
24 log->Add( | |
25 LoadLog::Entry( | |
26 MakeTime(8), | |
27 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, | |
28 LoadLog::PHASE_END))); | |
29 | 30 |
30 log->Add(LoadLog::Entry(MakeTime(12), | 31 NetLog::Entry MakeErrorCodeEntry(int t, int error_code) { |
31 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 32 NetLog::Entry entry; |
32 LoadLog::PHASE_NONE))); | 33 entry.type = NetLog::Entry::TYPE_ERROR_CODE; |
| 34 entry.time = MakeTime(t); |
| 35 entry.error_code = error_code; |
| 36 return entry; |
| 37 } |
33 | 38 |
34 log->Add(LoadLog::Entry(MakeTime(131), | 39 TEST(NetLogUtilTest, Basic) { |
35 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | 40 std::vector<NetLog::Entry> log; |
36 LoadLog::PHASE_END))); | 41 |
| 42 log.push_back(MakeEventEntry(1, NetLog::TYPE_HOST_RESOLVER_IMPL, |
| 43 NetLog::PHASE_BEGIN)); |
| 44 log.push_back( |
| 45 MakeEventEntry(5, NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, |
| 46 NetLog::PHASE_BEGIN)); |
| 47 log.push_back( |
| 48 MakeEventEntry(8, NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, |
| 49 NetLog::PHASE_END)); |
| 50 |
| 51 log.push_back(MakeEventEntry(12, NetLog::TYPE_CANCELLED, |
| 52 NetLog::PHASE_NONE)); |
| 53 |
| 54 log.push_back(MakeEventEntry(131, NetLog::TYPE_HOST_RESOLVER_IMPL, |
| 55 NetLog::PHASE_END)); |
37 | 56 |
38 EXPECT_EQ( | 57 EXPECT_EQ( |
39 "t= 1: +HOST_RESOLVER_IMPL [dt=130]\n" | 58 "t= 1: +HOST_RESOLVER_IMPL [dt=130]\n" |
40 "t= 5: HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt= 3]\n" | 59 "t= 5: HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt= 3]\n" |
41 "t= 12: CANCELLED\n" | 60 "t= 12: CANCELLED\n" |
42 "t=131: -HOST_RESOLVER_IMPL", | 61 "t=131: -HOST_RESOLVER_IMPL", |
43 LoadLogUtil::PrettyPrintAsEventTree(log)); | 62 NetLogUtil::PrettyPrintAsEventTree(log, 0)); |
44 } | 63 } |
45 | 64 |
46 TEST(LoadLogUtilTest, Basic2) { | 65 TEST(NetLogUtilTest, Basic2) { |
47 scoped_refptr<LoadLog> log(new LoadLog(10)); | 66 std::vector<NetLog::Entry> log; |
48 | 67 |
49 log->Add(LoadLog::Entry(MakeTime(1), | 68 log.push_back(MakeEventEntry(1, NetLog::TYPE_HOST_RESOLVER_IMPL, |
50 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | 69 NetLog::PHASE_BEGIN)); |
51 LoadLog::PHASE_BEGIN))); | |
52 | 70 |
53 log->Add(LoadLog::Entry(MakeTime(12), "Sup foo")); | 71 log.push_back(MakeStringEntry(12, "Sup foo")); |
54 log->Add(LoadLog::Entry(MakeTime(12), ERR_UNEXPECTED)); | 72 log.push_back(MakeErrorCodeEntry(12, ERR_UNEXPECTED)); |
55 log->Add(LoadLog::Entry(MakeTime(14), "Multiline\nString")); | 73 log.push_back(MakeStringEntry(14, "Multiline\nString")); |
56 | 74 |
57 log->Add(LoadLog::Entry(MakeTime(131), | 75 log.push_back(MakeEventEntry(131, NetLog::TYPE_HOST_RESOLVER_IMPL, |
58 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | 76 NetLog::PHASE_END)); |
59 LoadLog::PHASE_END))); | |
60 | 77 |
61 EXPECT_EQ( | 78 EXPECT_EQ( |
62 "t= 1: +HOST_RESOLVER_IMPL [dt=130]\n" | 79 "t= 1: +HOST_RESOLVER_IMPL [dt=130]\n" |
63 "t= 12: \"Sup foo\"\n" | 80 "t= 12: \"Sup foo\"\n" |
64 "t= 12: error code: -9 (net::ERR_UNEXPECTED)\n" | 81 "t= 12: error code: -9 (net::ERR_UNEXPECTED)\n" |
65 "t= 14: \"Multiline\n" | 82 "t= 14: \"Multiline\n" |
66 "String\"\n" | 83 "String\"\n" |
67 "t=131: -HOST_RESOLVER_IMPL", | 84 "t=131: -HOST_RESOLVER_IMPL", |
68 LoadLogUtil::PrettyPrintAsEventTree(log)); | 85 NetLogUtil::PrettyPrintAsEventTree(log, 0)); |
69 } | 86 } |
70 | 87 |
71 TEST(LoadLogUtilTest, UnmatchedOpen) { | 88 TEST(NetLogUtilTest, UnmatchedOpen) { |
72 scoped_refptr<LoadLog> log(new LoadLog(10)); | 89 std::vector<NetLog::Entry> log; |
73 | 90 |
74 log->Add(LoadLog::Entry(MakeTime(3), | 91 log.push_back(MakeEventEntry(3, NetLog::TYPE_HOST_RESOLVER_IMPL, |
75 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | 92 NetLog::PHASE_BEGIN)); |
76 LoadLog::PHASE_BEGIN))); | |
77 // Note that there is no matching call to PHASE_END for all of the following. | 93 // Note that there is no matching call to PHASE_END for all of the following. |
78 log->Add( | 94 log.push_back( |
79 LoadLog::Entry( | 95 MakeEventEntry( |
80 MakeTime(6), | 96 6, NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, |
81 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, | 97 NetLog::PHASE_BEGIN)); |
82 LoadLog::PHASE_BEGIN))); | 98 log.push_back( |
83 log->Add( | 99 MakeEventEntry(7, NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, |
84 LoadLog::Entry( | 100 NetLog::PHASE_BEGIN)); |
85 MakeTime(7), | 101 log.push_back( |
86 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, | 102 MakeEventEntry(8, NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, |
87 LoadLog::PHASE_BEGIN))); | 103 NetLog::PHASE_BEGIN)); |
88 log->Add( | 104 log.push_back(MakeEventEntry(10, NetLog::TYPE_CANCELLED, |
89 LoadLog::Entry( | 105 NetLog::PHASE_NONE)); |
90 MakeTime(8), | 106 log.push_back(MakeEventEntry(16, NetLog::TYPE_HOST_RESOLVER_IMPL, |
91 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, | 107 NetLog::PHASE_END)); |
92 LoadLog::PHASE_BEGIN))); | |
93 log->Add(LoadLog::Entry(MakeTime(10), | |
94 LoadLog::Event(LoadLog::TYPE_CANCELLED, | |
95 LoadLog::PHASE_NONE))); | |
96 log->Add(LoadLog::Entry(MakeTime(16), | |
97 LoadLog::Event(LoadLog::TYPE_HOST_RESOLVER_IMPL, | |
98 LoadLog::PHASE_END))); | |
99 | 108 |
100 EXPECT_EQ( | 109 EXPECT_EQ( |
101 "t= 3: +HOST_RESOLVER_IMPL [dt=13]\n" | 110 "t= 3: +HOST_RESOLVER_IMPL [dt=13]\n" |
102 "t= 6: +HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt=10]\n" | 111 "t= 6: +HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt=10]\n" |
103 "t= 7: +HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt= 9]\n" | 112 "t= 7: +HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt= 9]\n" |
104 "t= 8: +HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt= 8]\n" | 113 "t= 8: +HOST_RESOLVER_IMPL_OBSERVER_ONSTART [dt= 8]\n" |
105 "t=10: CANCELLED\n" | 114 "t=10: CANCELLED\n" |
106 "t=16: -HOST_RESOLVER_IMPL", | 115 "t=16: -HOST_RESOLVER_IMPL", |
107 LoadLogUtil::PrettyPrintAsEventTree(log)); | 116 NetLogUtil::PrettyPrintAsEventTree(log, 0)); |
108 } | 117 } |
109 | 118 |
110 TEST(LoadLogUtilTest, DisplayOfTruncated) { | 119 TEST(NetLogUtilTest, DisplayOfTruncated) { |
111 size_t kMaxNumEntries = 5; | 120 std::vector<NetLog::Entry> log; |
112 scoped_refptr<LoadLog> log(new LoadLog(kMaxNumEntries)); | |
113 | 121 |
114 // Add a total of 10 events. This means that 5 will be truncated. | 122 log.push_back(MakeEventEntry(0, |
115 log->Add(LoadLog::Entry(MakeTime(0), | 123 NetLog::TYPE_TCP_CONNECT, |
116 LoadLog::Event(LoadLog::TYPE_TCP_CONNECT, | 124 NetLog::PHASE_BEGIN)); |
117 LoadLog::PHASE_BEGIN))); | 125 for (size_t i = 1; i <= 3; ++i) { |
118 for (size_t i = 1; i < 8; ++i) { | 126 log.push_back(MakeEventEntry(i, |
119 log->Add(LoadLog::Entry(MakeTime(i), | 127 NetLog::TYPE_CANCELLED, |
120 LoadLog::Event(LoadLog::TYPE_CANCELLED, | 128 NetLog::PHASE_NONE)); |
121 LoadLog::PHASE_NONE))); | |
122 } | 129 } |
123 log->Add(LoadLog::Entry(MakeTime(9), | 130 log.push_back(MakeEventEntry(9, |
124 LoadLog::Event(LoadLog::TYPE_TCP_CONNECT, | 131 NetLog::TYPE_TCP_CONNECT, |
125 LoadLog::PHASE_END))); | 132 NetLog::PHASE_END)); |
126 | 133 |
127 EXPECT_EQ( | 134 EXPECT_EQ( |
128 "t=0: +TCP_CONNECT [dt=9]\n" | 135 "t=0: +TCP_CONNECT [dt=9]\n" |
129 "t=1: CANCELLED\n" | 136 "t=1: CANCELLED\n" |
130 "t=2: CANCELLED\n" | 137 "t=2: CANCELLED\n" |
131 "t=3: CANCELLED\n" | 138 "t=3: CANCELLED\n" |
132 " ... Truncated 4 entries ...\n" | 139 " ... Truncated 4 entries ...\n" |
133 "t=9: -TCP_CONNECT", | 140 "t=9: -TCP_CONNECT", |
134 LoadLogUtil::PrettyPrintAsEventTree(log)); | 141 NetLogUtil::PrettyPrintAsEventTree(log, 4)); |
135 } | 142 } |
136 | 143 |
137 } // namespace | 144 } // namespace |
138 } // namespace net | 145 } // namespace net |
OLD | NEW |