summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2018-08-17 15:03:16 +0200
committerKarsten Heimrich <karsten.heimrich@qt.io>2018-08-17 14:03:43 +0000
commitc2625696b2429d1c1d4e9bde97383d3f72d9d04e (patch)
treef78b232eb18779c1e5ddb26be1faa529e14dad58 /tests
parent5914dded6d17d2073d9ae0bcbaf9a9f655883144 (diff)
AN183: Add support for sending routing system broadcast frames
Change-Id: I08d13f19dfab20a3a58a5a123e8f8305cc7023af Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qknxnetiproutinginterface/tst_qknxnetiproutinginterface.cpp45
-rw-r--r--tests/auto/qknxnetiproutingsystembroadcast/tst_qknxnetiproutingsystembroadcast.cpp2
2 files changed, 44 insertions, 3 deletions
diff --git a/tests/auto/qknxnetiproutinginterface/tst_qknxnetiproutinginterface.cpp b/tests/auto/qknxnetiproutinginterface/tst_qknxnetiproutinginterface.cpp
index aa20035..c046e2b 100644
--- a/tests/auto/qknxnetiproutinginterface/tst_qknxnetiproutinginterface.cpp
+++ b/tests/auto/qknxnetiproutinginterface/tst_qknxnetiproutinginterface.cpp
@@ -33,6 +33,7 @@
#include <QtKnx/qknxnetiproutingbusy.h>
#include <QtKnx/qknxnetiproutingindication.h>
#include <QtKnx/qknxnetiproutinglostmessage.h>
+#include <QtKnx/qknxnetiproutingsystembroadcast.h>
#include <QtKnx/private/qknxnetiproutinginterface_p.h>
#include <QtKnx/private/qknxtestingrouter_p.h>
@@ -66,6 +67,7 @@ private slots:
void test_routing_receives_indications();
void test_routing_receives_busy();
void test_routing_busy_sent_packets_same_individual_address();
+ void test_routing_interface_sends_system_broadcast();
void test_routing_filter();
void test_routing_filter_data();
@@ -405,6 +407,47 @@ void tst_QKnxNetIpRoutingInterface::test_routing_busy_sent_packets_same_individu
QCOMPARE(m_routingInterface.state(), QKnxNetIpRoutingInterface::State::NeighborBusy);
}
+void tst_QKnxNetIpRoutingInterface::test_routing_interface_sends_system_broadcast()
+{
+ if (!runTests)
+ return;
+
+ m_routingInterface.start();
+
+ auto dst = QKnxAddress::createGroup(1, 1, 1);
+ auto tpdu = QKnxTpduFactory::Multicast::createGroupValueReadTpdu();
+ auto ctrl = QKnxControlField::builder()
+ .setFrameFormat(QKnxControlField::FrameFormat::Standard)
+ .setBroadcast(QKnxControlField::Broadcast::System)
+ .setPriority(QKnxControlField::Priority::Normal)
+ .create();
+
+ auto extCtrl = QKnxExtendedControlField::builder()
+ .setDestinationAddressType(dst.type())
+ .setHopCount(6)
+ .create();
+
+ auto frame = QKnxLinkLayerFrame::builder()
+ .setControlField(ctrl)
+ .setExtendedControlField(extCtrl)
+ .setTpdu(tpdu)
+ .setDestinationAddress(dst)
+ .setSourceAddress({ QKnxAddress::Type::Individual, 0 })
+ .setMessageCode(QKnxLinkLayerFrame::MessageCode::DataIndication)
+ .setMedium(QKnx::MediumType::NetIP)
+ .createFrame();
+
+ bool sbcSent = false;
+ QObject::connect(&m_routingInterface,
+ &QKnxNetIpRoutingInterface::routingSystemBroadcastSent, [&](QKnxNetIpFrame frame) {
+ sbcSent = true;
+ QKnxNetIpRoutingSystemBroadcastProxy sbc(frame);
+ QVERIFY(sbc.isValid());
+ });
+ m_routingInterface.sendRoutingSystemBroadcast(frame);
+ QVERIFY(sbcSent);
+}
+
void tst_QKnxNetIpRoutingInterface::test_routing_filter()
{
if (!runTests)
@@ -423,7 +466,6 @@ void tst_QKnxNetIpRoutingInterface::test_routing_filter()
m_routingInterface.start();
bool receivedIndication = false;
-
QObject::connect(&m_routingInterface, &QKnxNetIpRoutingInterface::routingIndicationReceived
, [&](QKnxNetIpFrame frame
, QKnxNetIpRoutingInterface::FilterAction routingAction) {
@@ -433,7 +475,6 @@ void tst_QKnxNetIpRoutingInterface::test_routing_filter()
receivedIndication = true;
});
-
auto frame = dummyRoutingIndication(dst, hopCount);
simulateFramesReceived(frame);
QVERIFY(receivedIndication);
diff --git a/tests/auto/qknxnetiproutingsystembroadcast/tst_qknxnetiproutingsystembroadcast.cpp b/tests/auto/qknxnetiproutingsystembroadcast/tst_qknxnetiproutingsystembroadcast.cpp
index 0d17c4f..6fc3dbf 100644
--- a/tests/auto/qknxnetiproutingsystembroadcast/tst_qknxnetiproutingsystembroadcast.cpp
+++ b/tests/auto/qknxnetiproutingsystembroadcast/tst_qknxnetiproutingsystembroadcast.cpp
@@ -73,7 +73,7 @@ void tst_QKnxNetIpRoutingSystemBroadcast::setValidCemi()
auto tpdu = QKnxTpduFactory::Multicast::createGroupValueReadTpdu();
auto ctrl = QKnxControlField::builder()
.setFrameFormat(QKnxControlField::FrameFormat::Standard)
- .setBroadcast(QKnxControlField::Broadcast::Domain)
+ .setBroadcast(QKnxControlField::Broadcast::System)
.setPriority(QKnxControlField::Priority::Normal)
.create();