summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp17
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);