summaryrefslogtreecommitdiffstats
path: root/tests/auto/qudpsocket
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2010-07-22 14:26:45 +0200
committerBradley T. Hughes <bradley.hughes@nokia.com>2010-09-01 14:24:41 +0200
commit41d8edda671e42c916f45e6eb2716fd76982a121 (patch)
treec5f318806f10fa7b4c6f4f1ca6ef8d84899f3a75 /tests/auto/qudpsocket
parentb7fae53bf12d61274de7d5131ddc15d8f356df59 (diff)
Add MulticastTtlOption and MulticastLoopbackOption to QAbstractSocket
These options only make sense and work in QUdpSocket when using multicasting. Previously, the loopback was set when joining a multicast group, but the loopback flag is not a per-group flag, it's per socket, hence this change. The ability to set the multicast TTL is needed as well, so this is added as a socket option as well. Autotest updated to test both.
Diffstat (limited to 'tests/auto/qudpsocket')
-rw-r--r--tests/auto/qudpsocket/tst_qudpsocket.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/tests/auto/qudpsocket/tst_qudpsocket.cpp b/tests/auto/qudpsocket/tst_qudpsocket.cpp
index 3c08cd70e7..852986d133 100644
--- a/tests/auto/qudpsocket/tst_qudpsocket.cpp
+++ b/tests/auto/qudpsocket/tst_qudpsocket.cpp
@@ -866,7 +866,15 @@ void tst_QUdpSocket::multicast()
// bind first, then verify that we can join the multicast group
QVERIFY2(receiver.bind(),
qPrintable(receiver.errorString()));
- QVERIFY2(receiver.joinMulticastGroup(groupAddress, QUdpSocket::MulticastLoopback),
+ receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 2);
+ QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 2);
+ receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 128);
+ QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 128);
+ receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 0);
+ QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 0);
+ receiver.setSocketOption(QUdpSocket::MulticastLoopbackOption, 1);
+ QCOMPARE(receiver.socketOption(QUdpSocket::MulticastLoopbackOption).toInt(), 1);
+ QVERIFY2(receiver.joinMulticastGroup(groupAddress),
qPrintable(receiver.errorString()));
QList<QByteArray> datagrams = QList<QByteArray>()
@@ -901,7 +909,11 @@ void tst_QUdpSocket::multicast()
QVERIFY2(receiver.bind(),
qPrintable(receiver.errorString()));
- QVERIFY2(receiver.joinMulticastGroup(groupAddress, QUdpSocket::MulticastLoopback),
+ receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 128);
+ QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 128);
+ receiver.setSocketOption(QUdpSocket::MulticastLoopbackOption, 0);
+ QCOMPARE(receiver.socketOption(QUdpSocket::MulticastLoopbackOption).toInt(), 0);
+ QVERIFY2(receiver.joinMulticastGroup(groupAddress),
qPrintable(receiver.errorString()));
receiver.close();
QTest::ignoreMessage(QtWarningMsg, "QUdpSocket::leaveMulticastGroup() called on a QUdpSocket when not in QUdpSocket::BoundState");