diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2019-01-22 07:05:29 +0100 |
---|---|---|
committer | André Hartmann <aha_1980@gmx.de> | 2019-02-11 08:38:27 +0000 |
commit | eca5edf45a8043b87852698a00dd05acf897ba2c (patch) | |
tree | b5d35629a712b9ca9cd88ea7c1a6712defc460fd /tests | |
parent | 89df618efb7a5572fad04810b3f1ea8327c03b07 (diff) |
QCanBusDevice::Filter: Add operators == and !=
[ChangeLog][QCanBusDevice] Added operators to
compare QCanBusDevice::Filter for equality or
inequality.
Fixes: QTBUG-72979
Change-Id: I4cfedca5fcd0b4b8e300ad984b5c3065ca5b8a4f
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp b/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp index 85d445f..24127d9 100644 --- a/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp +++ b/tests/auto/qcanbusdevice/tst_qcanbusdevice.cpp @@ -149,6 +149,8 @@ private slots: void error(); void cleanupTestCase(); void tst_filtering(); + void filterEqual_data(); + void filterEqual(); void tst_bufferingAttribute(); void tst_waitForFramesReceived(); @@ -161,6 +163,7 @@ tst_QCanBusDevice::tst_QCanBusDevice() { qRegisterMetaType<QCanBusDevice::CanBusDeviceState>(); qRegisterMetaType<QCanBusDevice::CanBusError>(); + qRegisterMetaType<QCanBusDevice::Filter>(); } void tst_QCanBusDevice::initTestCase() @@ -421,6 +424,89 @@ void tst_QCanBusDevice::tst_filtering() QVERIFY(!(newFilter.at(1).format & QCanBusDevice::Filter::MatchExtendedFormat)); } +void tst_QCanBusDevice::filterEqual_data() +{ + using Filter = QCanBusDevice::Filter; + using Frame = QCanBusFrame; + + QTest::addColumn<QCanBusDevice::Filter>("first"); + QTest::addColumn<QCanBusDevice::Filter>("second"); + QTest::addColumn<bool>("isEqual"); + + auto filter = [](quint32 frameId, quint32 frameIdMask, + Frame::FrameType type, + Filter::FormatFilter format) { + Filter result; + result.frameId = frameId; + result.frameIdMask = frameIdMask; + result.type = type; + result.format = format; + return result; + }; + + QTest::newRow("empty-equal") + << Filter() + << Filter() + << true; + QTest::newRow("empty-default-equal") + << Filter() + << filter(0, 0, Frame::InvalidFrame, Filter::MatchBaseAndExtendedFormat) + << true; + QTest::newRow("empty-non-default-different") + << Filter() + << filter(1, 2, Frame::ErrorFrame, Filter::MatchBaseFormat) + << false; + + QTest::newRow("frame-id-equal") + << filter(0x345, 0x800, Frame::RemoteRequestFrame, Filter::MatchBaseFormat) + << filter(0x345, 0x800, Frame::RemoteRequestFrame, Filter::MatchBaseFormat) + << true; + QTest::newRow("frame-id-different") + << filter(0x345, 0x000, Frame::RemoteRequestFrame, Filter::MatchBaseFormat) + << filter(0x346, 0x000, Frame::RemoteRequestFrame, Filter::MatchBaseFormat) + << false; + + QTest::newRow("frame-mask-equal") + << filter(0x123, 0x7FF, Frame::InvalidFrame, Filter::MatchBaseAndExtendedFormat) + << filter(0x123, 0x7FF, Frame::InvalidFrame, Filter::MatchBaseAndExtendedFormat) + << true; + QTest::newRow("frame-mask-different") + << filter(0x123, 0x7FF, Frame::InvalidFrame, Filter::MatchBaseAndExtendedFormat) + << filter(0x123, 0x7FE, Frame::InvalidFrame, Filter::MatchBaseAndExtendedFormat) + << false; + + QTest::newRow("frame-type-equal") + << filter(0xFFF, 0xBFF, Frame::DataFrame, Filter::MatchBaseAndExtendedFormat) + << filter(0xFFF, 0xBFF, Frame::DataFrame, Filter::MatchBaseAndExtendedFormat) + << true; + QTest::newRow("frame-type-different") + << filter(0xFFF, 0xBFF, Frame::DataFrame, Filter::MatchBaseAndExtendedFormat) + << filter(0xFFF, 0xBFF, Frame::InvalidFrame, Filter::MatchBaseAndExtendedFormat) + << false; + + QTest::newRow("filter-equal") + << filter(0xFFF, 0xBFF, Frame::ErrorFrame, Filter::MatchExtendedFormat) + << filter(0xFFF, 0xBFF, Frame::ErrorFrame, Filter::MatchExtendedFormat) + << true; + QTest::newRow("filter-different") + << filter(0xFFF, 0xBFF, Frame::ErrorFrame, Filter::MatchExtendedFormat) + << filter(0xFFF, 0xBFF, Frame::ErrorFrame, Filter::MatchBaseAndExtendedFormat) + << false; +} + +void tst_QCanBusDevice::filterEqual() +{ + QFETCH(QCanBusDevice::Filter, first); + QFETCH(QCanBusDevice::Filter, second); + QFETCH(bool, isEqual); + + if (isEqual) { + QCOMPARE(first, second); + } else { + QVERIFY(first != second); + } +} + void tst_QCanBusDevice::tst_bufferingAttribute() { std::unique_ptr<tst_Backend> canDevice(new tst_Backend); |