From 742584b0f2204497c7daaf3cde1c42aab6f7e55c Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 10 Oct 2022 12:56:24 -0700 Subject: tst_QTcpServer: Output useful more useful info for addressReusable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To try to figure out why QProcess::waitForReadyRead is returning false so quickly. Though we know it's going to be "Address in use". FAIL : tst_QTcpServer::addressReusable(WithoutProxy) 'process.waitForReadyRead(5000)' returned FALSE. (Failed to listen: The bound address is already in use Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess tcp LISTEN 0 50 127.0.0.1:49199 0.0.0.0:* users:(("crashingServer",pid=40529,fd=4)) ) Pick-to: 6.4 6.2 Change-Id: Ic43a460bfc7c7eb6379405b7a1a064e502b6fef3 Reviewed-by: MÃ¥rten Nordheim --- .../network/socket/qtcpserver/crashingServer/main.cpp | 16 +++++++++++++++- tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'tests/auto/network') diff --git a/tests/auto/network/socket/qtcpserver/crashingServer/main.cpp b/tests/auto/network/socket/qtcpserver/crashingServer/main.cpp index 5e00a2bd20..08f234aa3e 100644 --- a/tests/auto/network/socket/qtcpserver/crashingServer/main.cpp +++ b/tests/auto/network/socket/qtcpserver/crashingServer/main.cpp @@ -7,6 +7,9 @@ #if defined(Q_OS_WIN) && defined(Q_CC_MSVC) # include #endif +#ifdef Q_OS_UNIX +# include +#endif int main(int argc, char *argv[]) { @@ -18,7 +21,18 @@ int main(int argc, char *argv[]) QTcpServer server; if (!server.listen(QHostAddress::LocalHost, 49199)) { - qDebug("Failed to listen: %s", server.errorString().toLatin1().constData()); + fprintf(stderr, "Failed to listen: %s\n", server.errorString().toLatin1().constData()); + if (server.serverError() == QTcpSocket::AddressInUseError) { + // let's see if we can find the process that would be holding this + // still open +#ifdef Q_OS_LINUX + static const char *ss_args[] = { + "ss", "-nap", "sport", "=", ":49199", nullptr + }; + dup2(STDERR_FILENO, STDOUT_FILENO); + execvp(ss_args[0], const_cast(ss_args)); +#endif + } return 1; } diff --git a/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp b/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp index d1fa84f7d0..e47c8f4654 100644 --- a/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp +++ b/tests/auto/network/socket/qtcpserver/tst_qtcpserver.cpp @@ -594,7 +594,7 @@ void tst_QTcpServer::addressReusable() process.start(processExe); QVERIFY2(process.waitForStarted(), qPrintable( QString::fromLatin1("Could not start %1: %2").arg(processExe, process.errorString()))); - QVERIFY(process.waitForReadyRead(5000)); + QVERIFY2(process.waitForReadyRead(5000), qPrintable(process.readAllStandardError())); QTcpSocket socket; socket.connectToHost(QHostAddress::LocalHost, 49199); -- cgit v1.2.3