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()
|
void tst_PlatformSocketEngine::bind()
|
||||||
{
|
{
|
||||||
#if !defined Q_OS_WIN
|
#if !defined Q_OS_WIN
|
||||||
|
#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;
|
PLATFORMSOCKETENGINE binder;
|
||||||
QVERIFY(binder.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol));
|
QVERIFY(binder.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol));
|
||||||
QVERIFY(!binder.bind(QHostAddress::AnyIPv4, 82));
|
QVERIFY(!binder.bind(QHostAddress::AnyIPv4, 82));
|
||||||
QCOMPARE(binder.error(), QAbstractSocket::SocketAccessError);
|
QCOMPARE(binder.error(), QAbstractSocket::SocketAccessError);
|
||||||
#endif
|
}
|
||||||
|
#endif // Q_OS_WIN
|
||||||
|
|
||||||
PLATFORMSOCKETENGINE binder2;
|
PLATFORMSOCKETENGINE binder2;
|
||||||
QVERIFY(binder2.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol));
|
QVERIFY(binder2.initialize(QAbstractSocket::TcpSocket, QAbstractSocket::IPv4Protocol));
|
||||||
|
@ -558,8 +558,18 @@ void tst_QTcpSocket::bind_data()
|
|||||||
// try to bind to a privileged ports
|
// try to bind to a privileged ports
|
||||||
// we should fail if we're not root (unless the ports are in use!)
|
// 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");
|
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() : "::");
|
QTest::newRow("[::]:1") << "::" << 1 << !geteuid() << (geteuid() ? QString() : "::");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user