| 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 |