mirror of
https://github.com/qt/qtmqtt.git
synced 2026-10-25 16:16:26 +00:00
Add some tests for append
This commit is contained in:
parent
4f40bbf299
commit
cc16b02378
@ -13,6 +13,7 @@ private Q_SLOTS:
|
||||
void initTestCase();
|
||||
void cleanupTestCase();
|
||||
void header();
|
||||
void append();
|
||||
void simple_data();
|
||||
void simple();
|
||||
};
|
||||
@ -50,6 +51,41 @@ void Tst_QMqttControlPacket::header()
|
||||
}
|
||||
}
|
||||
|
||||
void Tst_QMqttControlPacket::append()
|
||||
{
|
||||
QMqttControlPacket packet;
|
||||
QCOMPARE(packet.payload().size(), 0);
|
||||
|
||||
packet.append('0');
|
||||
QCOMPARE(packet.payload().size(), 1);
|
||||
QVERIFY(packet.payload() == QByteArray("0"));
|
||||
|
||||
packet.clear();
|
||||
QCOMPARE(packet.payload().size(), 0);
|
||||
|
||||
const quint16 value = 100;
|
||||
packet.append(value);
|
||||
QByteArray payload = packet.payload();
|
||||
QCOMPARE(payload.size(), 2);
|
||||
const quint16 valueBigEndian = qToBigEndian<quint16>(value);
|
||||
const quint16 payloadUint16 = *reinterpret_cast<const quint16 *>(payload.constData());
|
||||
QCOMPARE(payloadUint16, valueBigEndian);
|
||||
|
||||
packet.clear();
|
||||
QCOMPARE(packet.payload().size(), 0);
|
||||
|
||||
const QByteArray data("some data in the packet");
|
||||
packet.append(data);
|
||||
payload = packet.payload();
|
||||
QCOMPARE(payload.size(), data.size() + 2);
|
||||
|
||||
const QByteArray partSize = payload.left(2);
|
||||
const QByteArray partContent = payload.mid(2);
|
||||
const int partSizeInt = qFromBigEndian<quint16>(*reinterpret_cast<const quint16 *>(partSize.constData()));
|
||||
QCOMPARE(partSizeInt, data.size());
|
||||
QCOMPARE(partContent, data);
|
||||
}
|
||||
|
||||
void Tst_QMqttControlPacket::simple_data()
|
||||
{
|
||||
QTest::addColumn<QString>("data");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user