Allow QUIC end_to_end and quic_server tests to pass if the
listening port is specified as 0 to allow Chrome tests to
use 0 instead of attempting to find an unused port (which is
hard).
Also rename QuicPickUnusedPortOrDie to QuicPickServerPortForTestsOrDie
gfe-relnote: n/a - Test only
PiperOrigin-RevId: 265545371
Change-Id: Iab88b60f6348c8e249c6420d895c9775b7f8405c
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 6eb6ac6..89cf9ca 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -225,8 +225,8 @@
EndToEndTest()
: initialized_(false),
connect_to_server_on_initialize_(true),
- server_address_(
- QuicSocketAddress(TestLoopback(), QuicPickUnusedPortOrDie())),
+ server_address_(QuicSocketAddress(TestLoopback(),
+ QuicPickServerPortForTestsOrDie())),
server_hostname_("test.example.com"),
client_writer_(nullptr),
server_writer_(nullptr),
@@ -416,6 +416,8 @@
server_thread_->server()->SetPreSharedKey(pre_shared_key_server_);
}
server_thread_->Initialize();
+ server_address_ =
+ QuicSocketAddress(server_address_.host(), server_thread_->GetPort());
QuicDispatcher* dispatcher =
QuicServerPeer::GetDispatcher(server_thread_->server());
QuicDispatcherPeer::UseWriter(dispatcher, server_writer_);
diff --git a/quic/platform/api/quic_port_utils.h b/quic/platform/api/quic_port_utils.h
index aa85fc5..685be0a 100644
--- a/quic/platform/api/quic_port_utils.h
+++ b/quic/platform/api/quic_port_utils.h
@@ -10,13 +10,14 @@
namespace quic {
// Returns a UDP port that is currently unused. Check-fails if none are
-// available.
-inline int QuicPickUnusedPortOrDie() {
- return QuicPickUnusedPortOrDieImpl();
+// available. May return 0 in which case the bind() call will cause the OS
+// to use an unused port.
+inline int QuicPickServerPortForTestsOrDie() {
+ return QuicPickServerPortForTestsOrDieImpl();
}
// Indicates that a specified port previously returned by
-// QuicPickUnusedPortOrDie is no longer used.
+// QuicPickServerPortForTestsOrDie is no longer used.
inline void QuicRecyclePort(int port) {
return QuicRecyclePortImpl(port);
}
diff --git a/quic/qbone/qbone_client_test.cc b/quic/qbone/qbone_client_test.cc
index 78e533c..2902b19 100644
--- a/quic/qbone/qbone_client_test.cc
+++ b/quic/qbone/qbone_client_test.cc
@@ -208,7 +208,8 @@
TEST(QboneClientTest, SendDataFromClient) {
SetQuicReloadableFlag(quic_use_parse_public_header, true);
auto server = new QboneTestServer(crypto_test_utils::ProofSourceForTesting());
- QuicSocketAddress server_address(TestLoopback(), QuicPickUnusedPortOrDie());
+ QuicSocketAddress server_address(TestLoopback(),
+ QuicPickServerPortForTestsOrDie());
ServerThread server_thread(server, server_address);
server_thread.Initialize();
server_thread.Start();
diff --git a/quic/qbone/qbone_session_test.cc b/quic/qbone/qbone_session_test.cc
index 80bf08f..be598a9 100644
--- a/quic/qbone/qbone_session_test.cc
+++ b/quic/qbone/qbone_session_test.cc
@@ -251,7 +251,8 @@
QuicMakeUnique<DataSavingQboneControlHandler<QboneClientRequest>>();
server_handler_ =
QuicMakeUnique<DataSavingQboneControlHandler<QboneServerRequest>>();
- QuicSocketAddress server_address(TestLoopback(), QuicPickUnusedPortOrDie());
+ QuicSocketAddress server_address(TestLoopback(),
+ QuicPickServerPortForTestsOrDie());
QuicSocketAddress client_address;
if (server_address.host().address_family() == IpAddressFamily::IP_V4) {
client_address = QuicSocketAddress(QuicIpAddress::Any4(), 0);
diff --git a/quic/tools/quic_client_test.cc b/quic/tools/quic_client_test.cc
index 134119b..e2d7f14 100644
--- a/quic/tools/quic_client_test.cc
+++ b/quic/tools/quic_client_test.cc
@@ -65,7 +65,7 @@
// Creates a new QuicClient and Initializes it on an unused port.
// Caller is responsible for deletion.
std::unique_ptr<QuicClient> CreateAndInitializeQuicClient() {
- uint16_t port = QuicPickUnusedPortOrDie();
+ uint16_t port = QuicPickServerPortForTestsOrDie();
QuicSocketAddress server_address(QuicSocketAddress(TestLoopback(), port));
QuicServerId server_id("hostname", server_address.port(), false);
ParsedQuicVersionVector versions = AllSupportedVersions();
@@ -85,7 +85,6 @@
// port exhaustion in long running processes which repeatedly create clients.
// Record the initial number of FDs.
-
size_t number_of_open_fds = NumOpenSocketFDs();
// Create a number of clients, initialize them, and verify this has resulted
diff --git a/quic/tools/quic_server_test.cc b/quic/tools/quic_server_test.cc
index 3a2d520..8c89443 100644
--- a/quic/tools/quic_server_test.cc
+++ b/quic/tools/quic_server_test.cc
@@ -86,11 +86,13 @@
class QuicServerEpollInTest : public QuicTest {
public:
QuicServerEpollInTest()
- : port_(QuicPickUnusedPortOrDie()),
+ : port_(QuicPickServerPortForTestsOrDie()),
server_address_(TestLoopback(), port_) {}
void StartListening() {
server_.CreateUDPSocketAndListen(server_address_);
+ server_address_ = QuicSocketAddress(server_address_.host(), server_.port());
+
ASSERT_TRUE(QuicServerPeer::SetSmallSocket(&server_));
if (!server_.overflow_supported()) {