diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2016-04-30 08:00:52 +0200 |
---|---|---|
committer | André Hartmann <aha_1980@gmx.de> | 2016-06-24 10:50:14 +0000 |
commit | 55ad040de1ac6a33b4f2efe29038e97e8d43dbc2 (patch) | |
tree | e0d58669439d443fbdbc0000818a6d7fd170b89c /tests | |
parent | 0b0daef5bcf752da52183c318291c9e05d5ff3c6 (diff) |
QCanBusFrame: Add toString()
This allows to display CAN frames to the user and reduces a lot
of duplication.
[ChangeLog][QtSerialBus][QCanBusFrame] Added toString() to QCanBusFrame.
Task-number: QTBUG-53171
Change-Id: I56c4c8c41012f76e2db6e1c97307325b0c73b14a
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/plugins/genericcanbus/dummybackend.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qcanbusframe/tst_qcanbusframe.cpp | 75 |
2 files changed, 76 insertions, 1 deletions
diff --git a/tests/auto/plugins/genericcanbus/dummybackend.cpp b/tests/auto/plugins/genericcanbus/dummybackend.cpp index 71d1c0f..73edddb 100644 --- a/tests/auto/plugins/genericcanbus/dummybackend.cpp +++ b/tests/auto/plugins/genericcanbus/dummybackend.cpp @@ -75,7 +75,7 @@ void DummyBackend::sendMessage() bool DummyBackend::writeFrame(const QCanBusFrame &data) { - qDebug() << "DummyBackend::writeFrame: " << data.payload(); + qDebug() << "DummyBackend::writeFrame: " << data.toString(); return true; } diff --git a/tests/auto/qcanbusframe/tst_qcanbusframe.cpp b/tests/auto/qcanbusframe/tst_qcanbusframe.cpp index eb427fb..4aae1a6 100644 --- a/tests/auto/qcanbusframe/tst_qcanbusframe.cpp +++ b/tests/auto/qcanbusframe/tst_qcanbusframe.cpp @@ -52,6 +52,9 @@ private slots: void tst_isValid_data(); void tst_isValid(); + void tst_toString_data(); + void tst_toString(); + void streaming_data(); void streaming(); @@ -205,6 +208,78 @@ void tst_QCanBusFrame::tst_isValid() QCOMPARE(QCanBusFrame::InvalidFrame, frame.frameType()); } +void tst_QCanBusFrame::tst_toString_data() +{ + QTest::addColumn<QCanBusFrame::FrameType>("frameType"); + QTest::addColumn<quint32>("id"); + QTest::addColumn<bool>("extended"); + QTest::addColumn<QByteArray>("payload"); + QTest::addColumn<QString>("expected"); + + QTest::newRow("invalid frame") + << QCanBusFrame::InvalidFrame << 0x0u << false + << QByteArray() + << "(Invalid)"; + QTest::newRow("error frame") + << QCanBusFrame::ErrorFrame << 0x0u << false + << QByteArray() + << "(Error)"; + QTest::newRow("unknown frame") + << QCanBusFrame::UnknownFrame << 0x0u << false + << QByteArray() + << "(Unknown)"; + QTest::newRow("remote request frame") + << QCanBusFrame::RemoteRequestFrame << 0x123u << false + << QByteArray::fromHex("01") // fake data to get a DLC > 0 + << " 123 [1] Remote Request"; + QTest::newRow("data frame min std id") + << QCanBusFrame::DataFrame << 0x0u << false + << QByteArray() + << QString(" 000 [0]"); + QTest::newRow("data frame max std id") + << QCanBusFrame::DataFrame << 0x7FFu << false + << QByteArray() + << QString(" 7FF [0]"); + QTest::newRow("data frame min ext id") + << QCanBusFrame::DataFrame << 0x0u << true + << QByteArray() + << QString("00000000 [0]"); + QTest::newRow("data frame max ext id") + << QCanBusFrame::DataFrame << 0x1FFFFFFFu << true + << QByteArray() + << QString("1FFFFFFF [0]"); + QTest::newRow("data frame minimal size") + << QCanBusFrame::DataFrame << 0x7FFu << false + << QByteArray::fromHex("01") + << QString(" 7FF [1] 01"); + QTest::newRow("data frame maximal size") + << QCanBusFrame::DataFrame << 0x1FFFFFFFu << true + << QByteArray::fromHex("0123456789ABCDEF") + << QString("1FFFFFFF [8] 01 23 45 67 89 AB CD EF"); + QTest::newRow("data frame FD") + << QCanBusFrame::DataFrame << 0x123u << false + << QByteArray::fromHex("00112233445566778899AABBCCDDEEFF") + << QString(" 123 [16] 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"); +} + +void tst_QCanBusFrame::tst_toString() +{ + QFETCH(QCanBusFrame::FrameType, frameType); + QFETCH(quint32, id); + QFETCH(bool, extended); + QFETCH(QByteArray, payload); + QFETCH(QString, expected); + QCanBusFrame frame; + frame.setFrameType(frameType); + frame.setFrameId(id); + frame.setExtendedFrameFormat(extended); + frame.setPayload(payload); + + const QString result = frame.toString(); + + QCOMPARE(result, expected); +} + void tst_QCanBusFrame::streaming_data() { QTest::addColumn<quint32>("frameId"); |