Skip test cases that is failing on macOS >= 10.14
bind on port 1/82 is now success, in QTcpSocket's test things are more broken: changing the test row makes the test flaky with port not available due to the previous test case. Task-number: QTBUG-81905 Change-Id: Iaf1b5457fa3961a4f6bc92b79aa4668a8359136e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
parent
fcaa7506ba
commit
4c4b5a97c3
@ -530,11 +530,17 @@ void tst_PlatformSocketEngine::tooManySockets()
|
||||
void tst_PlatformSocketEngine::bind()
|
||||
{
|
||||
#if !defined Q_OS_WIN
|
||||
PLATFORMSOCKETENGINE binder;
|
||||
QVERIFY(binder.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol));
|
||||
QVERIFY(!binder.bind(QHostAddress::AnyIPv4, 82));
|
||||
QCOMPARE(binder.error(), QAbstractSocket::SocketAccessError);
|
||||
#endif
|
||||
#if defined Q_OS_MACOS
|
||||
// On macOS >= 10.14 the bind on this port is successful.
|
||||
if (QOperatingSystemVersion::current() < QOperatingSystemVersion::MacOSMojave)
|
||||
#endif // Q_OS_MACOS
|
||||
{
|
||||
PLATFORMSOCKETENGINE binder;
|
||||
QVERIFY(binder.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol));
|
||||
QVERIFY(!binder.bind(QHostAddress::AnyIPv4, 82));
|
||||
QCOMPARE(binder.error(), QAbstractSocket::SocketAccessError);
|
||||
}
|
||||
#endif // Q_OS_WIN
|
||||
|
||||
PLATFORMSOCKETENGINE binder2;
|
||||
QVERIFY(binder2.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol));
|
||||
|
@ -558,8 +558,18 @@ void tst_QTcpSocket::bind_data()
|
||||
// try to bind to a privileged ports
|
||||
// we should fail if we're not root (unless the ports are in use!)
|
||||
QTest::newRow("127.0.0.1:1") << "127.0.0.1" << 1 << !geteuid() << (geteuid() ? QString() : "127.0.0.1");
|
||||
if (testIpv6)
|
||||
if (testIpv6) {
|
||||
#ifdef Q_OS_DARWIN
|
||||
// This case is faling in different ways, first, it manages to bind to
|
||||
// port 1 on macOS >= 10.14, but if we change the logic to not fail,
|
||||
// it's becoming flaky and sometimes fails to bind, with error 'port in use'
|
||||
// (apparently inflicted by the previous test row with 127.0.0.1). Amen.
|
||||
if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSMojave)
|
||||
QTest::qWarn("Skipping [::]:1, see QTBUG-81905", __FILE__, __LINE__);
|
||||
else
|
||||
#endif // Q_OS_DARWIN
|
||||
QTest::newRow("[::]:1") << "::" << 1 << !geteuid() << (geteuid() ? QString() : "::");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user