[lowpan] introduce buffer writer to lowpan compressor (#3597)

This commit is contained in:
Jonathan Hui
2019-02-19 20:46:28 -08:00
committed by Jonathan Hui
parent 0f2502833e
commit 49641e1d4e
4 changed files with 272 additions and 136 deletions
+6 -5
View File
@@ -178,15 +178,20 @@ static void Test(TestIphcVector &aVector, bool aCompress, bool aDecompress)
if (aCompress)
{
Lowpan::BufferWriter buffer(result, 127);
VerifyOrQuit((message = sInstance->GetMessagePool().New(Message::kTypeIp6, 0)) != NULL,
"6lo: Ip6::NewMessage failed");
aVector.GetUncompressedStream(*message);
int compressBytes = sLowpan->Compress(*message, aVector.mMacSource, aVector.mMacDestination, result);
VerifyOrQuit(sLowpan->Compress(*message, aVector.mMacSource, aVector.mMacDestination, buffer) == aVector.mError,
"6lo: Lowpan:Compress failed");
if (aVector.mError == OT_ERROR_NONE)
{
uint8_t compressBytes = buffer.GetWritePointer() - result;
// Append payload to the LOWPAN_IPHC.
message->Read(message->GetOffset(), message->GetLength() - message->GetOffset(), result + compressBytes);
@@ -198,10 +203,6 @@ static void Test(TestIphcVector &aVector, bool aCompress, bool aDecompress)
VerifyOrQuit(message->GetOffset() == aVector.mPayloadOffset, "6lo: Lowpan::Compress failed");
VerifyOrQuit(memcmp(iphc, result, iphcLength) == 0, "6lo: Lowpan::Compress failed");
}
else
{
VerifyOrQuit(compressBytes < 0, "6lo: Lowpan::Compress failed");
}
message->Free();
message = NULL;