diff options
author | Rolf Eike Beer <eb@emlix.com> | 2015-12-17 15:03:03 +0100 |
---|---|---|
committer | Alex Blasche <alexander.blasche@theqtcompany.com> | 2015-12-17 14:44:52 +0000 |
commit | c830f899150f30bd76a202099e3ec8ac864c0a70 (patch) | |
tree | de7e9b29ccee33c73b2d0b5d07f4081a01ec4335 /tests | |
parent | 360513ac8625c33d83bccf6b4bd9ec13a2db9734 (diff) |
QCanBusFrame: check more error conditions in isValid()
Flag frames with too long payload, or too long frame id
as invalid.
Change-Id: I3ebc6d6a1d36d259c21f3913fd2315d93d2046bf
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qcanbusframe/tst_qcanbusframe.cpp | 66 |
1 files changed, 51 insertions, 15 deletions
diff --git a/tests/auto/qcanbusframe/tst_qcanbusframe.cpp b/tests/auto/qcanbusframe/tst_qcanbusframe.cpp index 899dd98..2f29a94 100644 --- a/tests/auto/qcanbusframe/tst_qcanbusframe.cpp +++ b/tests/auto/qcanbusframe/tst_qcanbusframe.cpp @@ -135,30 +135,66 @@ void tst_QCanBusFrame::tst_isValid_data() { QTest::addColumn<QCanBusFrame::FrameType>("frameType"); QTest::addColumn<bool>("isValid"); - - QTest::newRow("invalid frame") << QCanBusFrame::InvalidFrame << false; - QTest::newRow("data frame") << QCanBusFrame::DataFrame << true; - QTest::newRow("error frame") << QCanBusFrame::ErrorFrame << true; - QTest::newRow("remote request frame") << QCanBusFrame::RemoteRequestFrame << true; - QTest::newRow("unknown frame") << QCanBusFrame::UnknownFrame << true; -} + QTest::addColumn<QByteArray>("payload"); + QTest::addColumn<uint>("id"); + QTest::addColumn<bool>("extended"); + + QTest::newRow("invalid frame") + << QCanBusFrame::InvalidFrame << false + << QByteArray() << 0u << false; + QTest::newRow("data frame") + << QCanBusFrame::DataFrame << true + << QByteArray() << 0u << false; + QTest::newRow("error frame") + << QCanBusFrame::ErrorFrame << true + << QByteArray() << 0u << false; + QTest::newRow("remote request frame") + << QCanBusFrame::RemoteRequestFrame << true + << QByteArray() << 0u << false; + QTest::newRow("unknown frame") + << QCanBusFrame::UnknownFrame << true + << QByteArray() << 0u << false; + QTest::newRow("data frame can max payload") + << QCanBusFrame::DataFrame << true + << QByteArray(8, 0) << 0u << false; + QTest::newRow("data frame canfd max payload") + << QCanBusFrame::DataFrame << true + << QByteArray(64, 0) << 0u << false; + QTest::newRow("data frame can too much payload") + << QCanBusFrame::DataFrame << false + << QByteArray(65, 0) << 0u << false; + QTest::newRow("data frame short id") + << QCanBusFrame::DataFrame << true + << QByteArray(8, 0) << (1u << 11) - 1 << false; + QTest::newRow("data frame long id") + << QCanBusFrame::DataFrame << true + << QByteArray(8, 0) << (1u << 11) << true; + QTest::newRow("data frame bad long id") + << QCanBusFrame::DataFrame << false + << QByteArray(8, 0) << (1u << 11) << false; + } void tst_QCanBusFrame::tst_isValid() { QFETCH(QCanBusFrame::FrameType, frameType); QFETCH(bool, isValid); + QFETCH(QByteArray, payload); + QFETCH(uint, id); + QFETCH(bool, extended); QCanBusFrame frame(frameType); - QCOMPARE(isValid, frame.isValid()); - QCOMPARE(frameType, frame.frameType()); - - frame.setFrameType(QCanBusFrame::ErrorFrame); - QCOMPARE(true, frame.isValid()); - QCOMPARE(frame.frameType(), QCanBusFrame::ErrorFrame); + frame.setPayload(payload); + frame.setFrameId(id); + frame.setExtendedFrameFormat(extended); + QCOMPARE(frame.isValid(), isValid); + QCOMPARE(frame.frameType(), frameType); + QCOMPARE(frame.payload(), payload); + QCOMPARE(frame.frameId(), id); + QCOMPARE(frame.hasExtendedFrameFormat(), extended); frame.setFrameType(QCanBusFrame::InvalidFrame); - QCOMPARE(false, frame.isValid()); - QCOMPARE(frame.frameType(), QCanBusFrame::InvalidFrame); + QCOMPARE(frame.isValid(), false); + QCOMPARE(QCanBusFrame::InvalidFrame, frame.frameType()); } void tst_QCanBusFrame::streaming_data() |