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

Side by Side Diff: net/quic/core/congestion_control/bbr_sender_test.cc

Issue 2848203002: Add a platform implementation of QuicTest and QuicTestWithParam (Closed)
Patch Set: net/quic/platform/impl/quic_test_impl.cc Created 3 years, 7 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/quic/core/congestion_control/bbr_sender.h" 5 #include "net/quic/core/congestion_control/bbr_sender.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 10
11 #include "net/quic/core/congestion_control/rtt_stats.h" 11 #include "net/quic/core/congestion_control/rtt_stats.h"
12 #include "net/quic/core/quic_packets.h" 12 #include "net/quic/core/quic_packets.h"
13 #include "net/quic/core/quic_utils.h" 13 #include "net/quic/core/quic_utils.h"
14 #include "net/quic/platform/api/quic_logging.h" 14 #include "net/quic/platform/api/quic_logging.h"
15 #include "net/quic/platform/api/quic_test.h"
15 #include "net/quic/test_tools/mock_clock.h" 16 #include "net/quic/test_tools/mock_clock.h"
16 #include "net/quic/test_tools/quic_config_peer.h" 17 #include "net/quic/test_tools/quic_config_peer.h"
17 #include "net/quic/test_tools/quic_connection_peer.h" 18 #include "net/quic/test_tools/quic_connection_peer.h"
18 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h" 19 #include "net/quic/test_tools/quic_sent_packet_manager_peer.h"
19 #include "net/quic/test_tools/quic_test_utils.h" 20 #include "net/quic/test_tools/quic_test_utils.h"
20 #include "net/quic/test_tools/simulator/quic_endpoint.h" 21 #include "net/quic/test_tools/simulator/quic_endpoint.h"
21 #include "net/quic/test_tools/simulator/simulator.h" 22 #include "net/quic/test_tools/simulator/simulator.h"
22 #include "net/quic/test_tools/simulator/switch.h" 23 #include "net/quic/test_tools/simulator/switch.h"
23 #include "testing/gtest/include/gtest/gtest.h"
24 24
25 namespace net { 25 namespace net {
26 namespace test { 26 namespace test {
27 27
28 // Use the initial CWND of 10, as 32 is too much for the test network. 28 // Use the initial CWND of 10, as 32 is too much for the test network.
29 const uint32_t kInitialCongestionWindowPackets = 10; 29 const uint32_t kInitialCongestionWindowPackets = 10;
30 const uint32_t kDefaultWindowTCP = 30 const uint32_t kDefaultWindowTCP =
31 kInitialCongestionWindowPackets * kDefaultTCPMSS; 31 kInitialCongestionWindowPackets * kDefaultTCPMSS;
32 32
33 // Test network parameters. Here, the topology of the network is: 33 // Test network parameters. Here, the topology of the network is:
(...skipping 23 matching lines...) Expand all
57 QuicTime::Delta::FromMilliseconds(30); 57 QuicTime::Delta::FromMilliseconds(30);
58 const QuicTime::Delta kLocalPropagationDelay = 58 const QuicTime::Delta kLocalPropagationDelay =
59 QuicTime::Delta::FromMilliseconds(2); 59 QuicTime::Delta::FromMilliseconds(2);
60 const QuicTime::Delta kTestTransferTime = 60 const QuicTime::Delta kTestTransferTime =
61 kTestLinkBandwidth.TransferTime(kMaxPacketSize) + 61 kTestLinkBandwidth.TransferTime(kMaxPacketSize) +
62 kLocalLinkBandwidth.TransferTime(kMaxPacketSize); 62 kLocalLinkBandwidth.TransferTime(kMaxPacketSize);
63 const QuicTime::Delta kTestRtt = 63 const QuicTime::Delta kTestRtt =
64 (kTestPropagationDelay + kLocalPropagationDelay + kTestTransferTime) * 2; 64 (kTestPropagationDelay + kLocalPropagationDelay + kTestTransferTime) * 2;
65 const QuicByteCount kTestBdp = kTestRtt * kTestLinkBandwidth; 65 const QuicByteCount kTestBdp = kTestRtt * kTestLinkBandwidth;
66 66
67 class BbrSenderTest : public ::testing::Test { 67 class BbrSenderTest : public QuicTest {
68 protected: 68 protected:
69 BbrSenderTest() 69 BbrSenderTest()
70 : simulator_(), 70 : simulator_(),
71 bbr_sender_(&simulator_, 71 bbr_sender_(&simulator_,
72 "BBR sender", 72 "BBR sender",
73 "Receiver", 73 "Receiver",
74 Perspective::IS_CLIENT, 74 Perspective::IS_CLIENT,
75 /*connection_id=*/42), 75 /*connection_id=*/42),
76 competing_sender_(&simulator_, 76 competing_sender_(&simulator_,
77 "Competing sender", 77 "Competing sender",
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 std::unique_ptr<simulator::SymmetricLink> bbr_sender_link_; 119 std::unique_ptr<simulator::SymmetricLink> bbr_sender_link_;
120 std::unique_ptr<simulator::SymmetricLink> competing_sender_link_; 120 std::unique_ptr<simulator::SymmetricLink> competing_sender_link_;
121 std::unique_ptr<simulator::SymmetricLink> receiver_link_; 121 std::unique_ptr<simulator::SymmetricLink> receiver_link_;
122 122
123 SimpleRandom random_; 123 SimpleRandom random_;
124 124
125 // Owned by different components of the connection. 125 // Owned by different components of the connection.
126 const QuicClock* clock_; 126 const QuicClock* clock_;
127 const RttStats* rtt_stats_; 127 const RttStats* rtt_stats_;
128 BbrSender* sender_; 128 BbrSender* sender_;
129 QuicFlagSaver flags_;
130 129
131 // Enables BBR on |endpoint| and returns the associated BBR congestion 130 // Enables BBR on |endpoint| and returns the associated BBR congestion
132 // controller. 131 // controller.
133 BbrSender* SetupBbrSender(simulator::QuicEndpoint* endpoint) { 132 BbrSender* SetupBbrSender(simulator::QuicEndpoint* endpoint) {
134 const RttStats* rtt_stats = 133 const RttStats* rtt_stats =
135 endpoint->connection()->sent_packet_manager().GetRttStats(); 134 endpoint->connection()->sent_packet_manager().GetRttStats();
136 // Ownership of the sender will be overtaken by the endpoint. 135 // Ownership of the sender will be overtaken by the endpoint.
137 BbrSender* sender = new BbrSender( 136 BbrSender* sender = new BbrSender(
138 rtt_stats, 137 rtt_stats,
139 QuicSentPacketManagerPeer::GetUnackedPacketMap( 138 QuicSentPacketManagerPeer::GetUnackedPacketMap(
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 sender_->ResumeConnectionState(params, false); 818 sender_->ResumeConnectionState(params, false);
820 EXPECT_EQ(kTestLinkBandwidth, sender_->ExportDebugState().max_bandwidth); 819 EXPECT_EQ(kTestLinkBandwidth, sender_->ExportDebugState().max_bandwidth);
821 EXPECT_EQ(kTestLinkBandwidth, sender_->BandwidthEstimate()); 820 EXPECT_EQ(kTestLinkBandwidth, sender_->BandwidthEstimate());
822 ExpectApproxEq(kTestRtt, sender_->ExportDebugState().min_rtt, 0.01f); 821 ExpectApproxEq(kTestRtt, sender_->ExportDebugState().min_rtt, 0.01f);
823 822
824 DriveOutOfStartup(); 823 DriveOutOfStartup();
825 } 824 }
826 825
827 } // namespace test 826 } // namespace test
828 } // namespace net 827 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/congestion_control/bandwidth_sampler_test.cc ('k') | net/quic/core/congestion_control/cubic_bytes_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698