In QUIC simulator: 1) Allow the bandwidth of OneWayLink/SymmetricLink to change after construction. 2) Change QuicEndpointMultiplexer's constructor from taking a std::initializer_list to a std::vector. gfe-relnote: (n/a) Test utility refactor. PiperOrigin-RevId: 252722327 Change-Id: Id2eb88ab5a8436480dce40ca6188393ba5d0f4e9
diff --git a/quic/test_tools/simulator/link.h b/quic/test_tools/simulator/link.h index 531eff6..5621e1b 100644 --- a/quic/test_tools/simulator/link.h +++ b/quic/test_tools/simulator/link.h
@@ -8,6 +8,7 @@ #include <utility> #include "net/third_party/quiche/src/quic/core/crypto/quic_random.h" +#include "net/third_party/quiche/src/quic/core/quic_bandwidth.h" #include "net/third_party/quiche/src/quic/test_tools/simulator/actor.h" #include "net/third_party/quiche/src/quic/test_tools/simulator/port.h" @@ -33,6 +34,9 @@ void Act() override; inline QuicBandwidth bandwidth() const { return bandwidth_; } + inline void set_bandwidth(QuicBandwidth new_bandwidth) { + bandwidth_ = new_bandwidth; + } protected: // Get the value of a random delay imposed on each packet. By default, this @@ -58,7 +62,7 @@ UnconstrainedPortInterface* sink_; QuicDeque<QueuedPacket> packets_in_transit_; - const QuicBandwidth bandwidth_; + QuicBandwidth bandwidth_; const QuicTime::Delta propagation_delay_; QuicTime next_write_at_; @@ -82,6 +86,10 @@ SymmetricLink& operator=(const SymmetricLink&) = delete; inline QuicBandwidth bandwidth() { return a_to_b_link_.bandwidth(); } + inline void set_bandwidth(QuicBandwidth new_bandwidth) { + a_to_b_link_.set_bandwidth(new_bandwidth); + b_to_a_link_.set_bandwidth(new_bandwidth); + } private: OneWayLink a_to_b_link_;
diff --git a/quic/test_tools/simulator/quic_endpoint.cc b/quic/test_tools/simulator/quic_endpoint.cc index 78cc302..ba9d206 100644 --- a/quic/test_tools/simulator/quic_endpoint.cc +++ b/quic/test_tools/simulator/quic_endpoint.cc
@@ -401,7 +401,7 @@ QuicEndpointMultiplexer::QuicEndpointMultiplexer( std::string name, - std::initializer_list<QuicEndpoint*> endpoints) + const std::vector<QuicEndpoint*>& endpoints) : Endpoint((*endpoints.begin())->simulator(), name) { for (QuicEndpoint* endpoint : endpoints) { mapping_.insert(std::make_pair(endpoint->name(), endpoint));
diff --git a/quic/test_tools/simulator/quic_endpoint.h b/quic/test_tools/simulator/quic_endpoint.h index 8efef0e..53bff3a 100644 --- a/quic/test_tools/simulator/quic_endpoint.h +++ b/quic/test_tools/simulator/quic_endpoint.h
@@ -213,7 +213,7 @@ public UnconstrainedPortInterface { public: QuicEndpointMultiplexer(std::string name, - std::initializer_list<QuicEndpoint*> endpoints); + const std::vector<QuicEndpoint*>& endpoints); ~QuicEndpointMultiplexer() override; // Receives a packet and passes it to the specified endpoint if that endpoint