summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/socket/qudpsocket
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2017-12-29 15:17:53 +0100
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2018-01-05 03:59:13 +0000
commit4a11243d3c37ab6917c8e99275259853d1970ec5 (patch)
tree8fbd3072c19808bc61fc1c666bf00845c28f24b0 /tests/auto/network/socket/qudpsocket
parent8cef809b16aac9d4c4163ff2e2e831adf70133c2 (diff)
tst_QUdpSocket - unblacklist tests on Ubuntu 16.04
We use QSKIP instead for kernel versions [4.6, 4.13). Task-number: QTBUG-65440 Change-Id: Ie764b5a4eb8a67dc2a43d4dc67b5d6eb772f6b2a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joni Jäntti <joni.jantti@qt.io>
Diffstat (limited to 'tests/auto/network/socket/qudpsocket')
-rw-r--r--tests/auto/network/socket/qudpsocket/BLACKLIST3
-rw-r--r--tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp20
2 files changed, 19 insertions, 4 deletions
diff --git a/tests/auto/network/socket/qudpsocket/BLACKLIST b/tests/auto/network/socket/qudpsocket/BLACKLIST
index 3951be16ab..6164c0a60a 100644
--- a/tests/auto/network/socket/qudpsocket/BLACKLIST
+++ b/tests/auto/network/socket/qudpsocket/BLACKLIST
@@ -22,12 +22,9 @@ osx
osx
[broadcasting]
osx
-ubuntu-16.04
[zeroLengthDatagram]
osx
[linkLocalIPv6]
redhatenterpriselinuxworkstation-6.6
-[pendingDatagramSize]
-ubuntu-16.04
[readyReadForEmptyDatagram]
ubuntu-16.04
diff --git a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
index 5c5dfc881d..47f5854ff8 100644
--- a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
+++ b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
@@ -131,11 +131,13 @@ protected slots:
private:
bool shouldSkipIpv6TestsForBrokenSetsockopt();
+ bool shouldWorkaroundLinuxKernelBug();
#ifdef SHOULD_CHECK_SYSCALL_SUPPORT
bool ipv6SetsockoptionMissing(int level, int optname);
#endif
bool m_skipUnsupportedIPv6Tests;
+ bool m_workaroundLinuxKernelBug;
QList<QHostAddress> allAddresses;
#ifndef QT_NO_BEARERMANAGEMENT
QNetworkConfigurationManager *netConfMan;
@@ -183,6 +185,16 @@ bool tst_QUdpSocket::shouldSkipIpv6TestsForBrokenSetsockopt()
return false;
}
+bool tst_QUdpSocket::shouldWorkaroundLinuxKernelBug()
+{
+#ifdef Q_OS_LINUX
+ const QVersionNumber version = QVersionNumber::fromString(QSysInfo::kernelVersion());
+ return version.majorVersion() == 4 && version.minorVersion() >= 6 && version.minorVersion() < 13;
+#else
+ return false;
+#endif
+}
+
static QHostAddress makeNonAny(const QHostAddress &address, QHostAddress::SpecialAddress preferForAny = QHostAddress::LocalHost)
{
if (address == QHostAddress::Any)
@@ -235,7 +247,7 @@ void tst_QUdpSocket::initTestCase()
QSKIP("No network test server available");
allAddresses = QNetworkInterface::allAddresses();
m_skipUnsupportedIPv6Tests = shouldSkipIpv6TestsForBrokenSetsockopt();
-
+ m_workaroundLinuxKernelBug = shouldWorkaroundLinuxKernelBug();
if (EmulationDetector::isRunningArmOnX86())
QSKIP("This test is unreliable due to QEMU emulation shortcomings.");
}
@@ -329,6 +341,9 @@ void tst_QUdpSocket::unconnectedServerAndClientTest()
void tst_QUdpSocket::broadcasting()
{
+ if (m_workaroundLinuxKernelBug)
+ QSKIP("This test can fail due to linux kernel bug");
+
QFETCH_GLOBAL(bool, setProxy);
if (setProxy) {
#ifndef QT_NO_NETWORKPROXY
@@ -797,6 +812,9 @@ void tst_QUdpSocket::bindAndConnectToHost()
void tst_QUdpSocket::pendingDatagramSize()
{
+ if (m_workaroundLinuxKernelBug)
+ QSKIP("This test can fail due to linux kernel bug");
+
QUdpSocket server;
#ifdef FORCE_SESSION
server.setProperty("_q_networksession", QVariant::fromValue(networkSession));