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