diff options
-rw-r--r-- | tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 30cf6b60e9..8d2a5b7a61 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -10392,13 +10392,20 @@ void tst_QNetworkReply::qtbug68821proxyError_data() void tst_QNetworkReply::qtbug68821proxyError() { - QTcpServer proxyServer; - QVERIFY(proxyServer.listen()); - quint16 proxyPort = proxyServer.serverPort(); - proxyServer.close(); + auto getUnusedPort = []() -> std::optional<quint16> { + QTcpServer probeServer; + if (!probeServer.listen()) + return std::nullopt; + // If we can listen on it, it was unused, and hopefully is also + // still unused after we stop listening. + return probeServer.serverPort(); + }; + + auto proxyPort = getUnusedPort(); + QVERIFY(proxyPort); QFETCH(QString, proxyHost); - QNetworkProxy proxy(QNetworkProxy::HttpProxy, proxyHost, proxyPort); + QNetworkProxy proxy(QNetworkProxy::HttpProxy, proxyHost, proxyPort.value()); manager.setProxy(proxy); |