diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 2675df50036..05ee120f970 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -10116,13 +10116,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 { + 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);