mirror of
https://github.com/espressif/openthread.git
synced 2026-10-16 12:47:38 +00:00
[test] enhance {Verify/Success}OrQuit() and their use in unit test (#6764)
This commit updates `VerifyOrQuit()` and `SuccessOrQuit()` macros to include the failed condition in the error message that is printed on a failure (in addition to function name and line number where the error happened). This commit also changes the second parameter (`aMessage`) to in these macros to be optional. This commit also updates unit tests to remove the second `aMessage` string in cases where the failure can be inferred from the condition itself.
This commit is contained in:
+179
-206
@@ -79,49 +79,46 @@ void TestHdlcFrameBuffer(void)
|
||||
|
||||
printf("Testing Hdlc::FrameBuffer");
|
||||
|
||||
VerifyOrQuit(frameBuffer.IsEmpty(), "IsEmpty() failed after constructor");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after constructor");
|
||||
VerifyOrQuit(frameBuffer.IsEmpty(), "after constructor");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after constructor");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer));
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
VerifyOrQuit(frameBuffer.CanWrite(1), "CanWrite() failed");
|
||||
VerifyOrQuit(!frameBuffer.IsEmpty(), "IsEmpty() failed");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(1));
|
||||
VerifyOrQuit(!frameBuffer.IsEmpty());
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) + sizeof(sHelloText) - 2, "GetLength() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) + sizeof(sHelloText) - 2);
|
||||
|
||||
frameBuffer.UndoLastWrites(sizeof(sHelloText) - 1);
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
VerifyOrQuit(!frameBuffer.IsEmpty(), "IsEmpty() failed");
|
||||
VerifyOrQuit(!frameBuffer.IsEmpty());
|
||||
frameBuffer.Clear();
|
||||
VerifyOrQuit(frameBuffer.IsEmpty(), "IsEmpty() failed after Clear()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after Clear()");
|
||||
VerifyOrQuit(frameBuffer.IsEmpty(), "after Clear()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after Clear()");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer));
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.Clear();
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize), "CanWrite(kBufferSize) failed unexpectedly");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize));
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize + 1) == false, "CanWrite(kBufferSize + 1) did not fail as expected");
|
||||
|
||||
for (uint16_t i = 0; i < kBufferSize; i++)
|
||||
{
|
||||
VerifyOrQuit(frameBuffer.CanWrite(1), "CanWrite() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.WriteByte(i & 0xff), "WriteByte() failed unexpectedly");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(1));
|
||||
SuccessOrQuit(frameBuffer.WriteByte(i & 0xff));
|
||||
}
|
||||
|
||||
VerifyOrQuit(frameBuffer.CanWrite(1) == false, "CanWrite() did not fail with full buffer");
|
||||
VerifyOrQuit(frameBuffer.WriteByte(0) == OT_ERROR_NO_BUFS, "WriteByte() did not fail with full buffer");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(1) == false, "did not fail with full buffer");
|
||||
VerifyOrQuit(frameBuffer.WriteByte(0) == OT_ERROR_NO_BUFS, "did not fail with full buffer");
|
||||
|
||||
printf(" -- PASS\n");
|
||||
}
|
||||
@@ -139,88 +136,81 @@ void TestHdlcMultiFrameBuffer(void)
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Check state after constructor
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() failed after constructor");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "HasSavedFrame() failed after constructor");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after constructor");
|
||||
VerifyOrQuit(frameBuffer.GetNextSavedFrame(frame, length) == OT_ERROR_NOT_FOUND,
|
||||
"GetNextSavedFrame() incorrect behavior after constructor");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after constructor");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "after constructor");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after constructor");
|
||||
VerifyOrQuit(frameBuffer.GetNextSavedFrame(frame, length) == OT_ERROR_NOT_FOUND, "after constructor");
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Write multiple frames, save them and read later
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer));
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() failed after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasSavedFrame() failed after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after SaveFrame()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after SaveFrame()");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHelloText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHelloText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() failed after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasSavedFrame() failed after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after SaveFrame()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after SaveFrame()");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.DiscardFrame();
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() failed after DiscardFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasSavedFrame() failed after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after DiscardFrame()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after DiscardFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after DiscardFrame()");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.DiscardFrame();
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() failed after DiscardFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after DiscardFrame()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after DiscardFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after DiscardFrame()");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sHexText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHexText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHexText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
SuccessOrQuit(WriteToBuffer(sHexText, frameBuffer));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHexText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHexText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() failed after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasSavedFrame() failed after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after SaveFrame()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after SaveFrame()");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
// Read the first saved frame and check the content
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sMottoText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sMottoText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
// Read the second saved frame and check the content
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHelloText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHelloText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
// Read the third saved frame and check the content
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHexText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHexText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
@@ -230,35 +220,35 @@ void TestHdlcMultiFrameBuffer(void)
|
||||
"GetNextSavedFrame() incorrect behavior after all frames were read");
|
||||
VerifyOrQuit(newFrame == nullptr, "GetNextSavedFrame() incorrect behavior after all frames were read");
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
// Read the fourth saved frame and check the content
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sOpenThreadText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sOpenThreadText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
// Re-read all the saved frames
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sMottoText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sMottoText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
// Second saved frame
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHelloText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHelloText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
// Third saved frame
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHexText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHexText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
// Fourth saved frame and check the content
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sOpenThreadText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sOpenThreadText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
@@ -267,94 +257,85 @@ void TestHdlcMultiFrameBuffer(void)
|
||||
|
||||
frameBuffer.Clear();
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() failed after Clear()");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "HasSavedFrame() failed after Clear()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "GetLength() failed after Clear()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after Clear()");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "after Clear()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == 0, "after Clear()");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer));
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer));
|
||||
frameBuffer.SaveFrame();
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasFrame() incorrect behavior after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after SaveFrame()");
|
||||
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasFrame() incorrect behavior after SaveFrame()");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after GetNextSavedFrame()");
|
||||
|
||||
frameBuffer.Clear();
|
||||
|
||||
frame = nullptr;
|
||||
VerifyOrQuit(frameBuffer.GetNextSavedFrame(frame, length) == OT_ERROR_NOT_FOUND,
|
||||
"GetNextSavedFrame() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.GetNextSavedFrame(frame, length) == OT_ERROR_NOT_FOUND, "after Clear()");
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "HasFrame() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - (kFrameHeaderSize - 1)) == false,
|
||||
"CanWrite() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - kFrameHeaderSize) == true,
|
||||
"CanWrite() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after Clear()");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "after Clear()");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - (kFrameHeaderSize - 1)) == false, "after Clear()");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - kFrameHeaderSize) == true, "after Clear()");
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Verify behavior of `ClearSavedFrames()`
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer));
|
||||
frameBuffer.SaveFrame();
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer));
|
||||
frameBuffer.SaveFrame();
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer));
|
||||
frameBuffer.SaveFrame();
|
||||
SuccessOrQuit(WriteToBuffer(sHexText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sHexText, frameBuffer));
|
||||
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHelloText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHelloText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
frameBuffer.ClearSavedFrames();
|
||||
|
||||
VerifyOrQuit(frameBuffer.HasFrame(), "HasFrame() failed after ClearSavedFrames()");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "HasSavedFrame() failed after ClearSavedFrames()");
|
||||
VerifyOrQuit(frameBuffer.HasFrame(), "after ClearSavedFrames()");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "after ClearSavedFrames()");
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHexText) - 1, "Frame length is incorrect after ClearSavedFrames()");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHexText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect after ClearSavedFrames()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHexText) - 1, "after ClearSavedFrames()");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHexText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer));
|
||||
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHexText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHexText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText) - 1,
|
||||
"Frame length is incorrect after ClearSavedFrames()");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHelloText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect after ClearSavedFrames()");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText) - 1, "after ClearSavedFrames()");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHelloText, frameBuffer.GetLength()) == 0, "after ClearSavedFrames()");
|
||||
|
||||
frameBuffer.ClearSavedFrames();
|
||||
frameBuffer.DiscardFrame();
|
||||
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() incorrect behavior after all frames are read and discarded");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "HasFrame() incorrect behavior after all read or discarded");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - (kFrameHeaderSize - 1)) == false,
|
||||
"CanWrite() incorrect behavior after all read or discarded");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - kFrameHeaderSize) == true,
|
||||
"CanWrite() incorrect behavior after all read of discarded");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after all frames are read and discarded");
|
||||
VerifyOrQuit(!frameBuffer.HasSavedFrame(), "after all read or discarded");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - (kFrameHeaderSize - 1)) == false, "after all read or discarded");
|
||||
VerifyOrQuit(frameBuffer.CanWrite(kBufferSize - kFrameHeaderSize) == true, "after all read of discarded");
|
||||
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer), "WriteByte() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sHelloText, frameBuffer));
|
||||
|
||||
frameBuffer.ClearSavedFrames();
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHelloText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sHelloText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHelloText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHelloText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
@@ -363,97 +344,89 @@ void TestHdlcMultiFrameBuffer(void)
|
||||
|
||||
frameBuffer.Clear();
|
||||
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == 0, "GetSkipLength() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(sizeof(sSkipText)) == OT_ERROR_NONE, "SetSkipLength() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == 0, "after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(sizeof(sSkipText)) == OT_ERROR_NONE);
|
||||
SuccessOrQuit(WriteToBuffer(sMottoText, frameBuffer));
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0);
|
||||
memcpy(frameBuffer.GetFrame() - sizeof(sSkipText), sSkipText, sizeof(sSkipText));
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == sizeof(sSkipText), "GetSkipLength() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == sizeof(sSkipText));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sMottoText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() incorrect behavior after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasFrame() incorrect behavior after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == 0, "GetSkipLength() incorrect behavior after SaveFrame()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == 0, "after SaveFrame()");
|
||||
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(sizeof(sSkipText)) == OT_ERROR_NONE, "SetSkipLength() failed");
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer), "WriteByte() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(sizeof(sSkipText)) == OT_ERROR_NONE);
|
||||
SuccessOrQuit(WriteToBuffer(sOpenThreadText, frameBuffer));
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0);
|
||||
memcpy(frameBuffer.GetFrame() - sizeof(sSkipText), sSkipText, sizeof(sSkipText));
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == sizeof(sSkipText), "GetSkipLength() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1, "GetLength() failed");
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0,
|
||||
"GetFrame() content is incorrect");
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == sizeof(sSkipText));
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sOpenThreadText) - 1);
|
||||
VerifyOrQuit(memcmp(frameBuffer.GetFrame(), sOpenThreadText, frameBuffer.GetLength()) == 0);
|
||||
|
||||
frameBuffer.SaveFrame();
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() incorrect behavior after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "HasFrame() incorrect behavior after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == 0, "GetSkipLength() incorrect behavior after SaveFrame()");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.HasSavedFrame(), "after SaveFrame()");
|
||||
VerifyOrQuit(frameBuffer.GetSkipLength() == 0, "after SaveFrame()");
|
||||
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sMottoText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sMottoText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
VerifyOrQuit(memcmp(frame - sizeof(sSkipText), sSkipText, sizeof(sSkipText)) == 0,
|
||||
"GetNextSavedFrame() reserved frame buffer content is incorrect");
|
||||
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sOpenThreadText) - 1, "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sOpenThreadText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
VerifyOrQuit(memcmp(frame - sizeof(sSkipText), sSkipText, sizeof(sSkipText)) == 0,
|
||||
"GetNextSavedFrame() reserved frame buffer content is incorrect");
|
||||
|
||||
frameBuffer.Clear();
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(kBufferSize - (kFrameHeaderSize - 1)) == OT_ERROR_NO_BUFS,
|
||||
"SetSkipLength() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(kBufferSize - kFrameHeaderSize) == OT_ERROR_NONE,
|
||||
"SetSkipLength() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(kBufferSize - (kFrameHeaderSize - 1)) == OT_ERROR_NO_BUFS, "after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetSkipLength(kBufferSize - kFrameHeaderSize) == OT_ERROR_NONE, "after Clear()");
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Verify behavior of `SetLength()` and `GetLength()`
|
||||
|
||||
frameBuffer.Clear();
|
||||
VerifyOrQuit((frame = frameBuffer.GetFrame()) != nullptr, "GetFrame() failed");
|
||||
VerifyOrQuit((frame = frameBuffer.GetFrame()) != nullptr);
|
||||
memcpy(frame, sHelloText, sizeof(sHelloText));
|
||||
VerifyOrQuit(frameBuffer.SetLength(sizeof(sHelloText)) == OT_ERROR_NONE, "SetLength() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText), "GetLength() failed");
|
||||
VerifyOrQuit(frameBuffer.HasFrame(), "HasFrame() is incorrect");
|
||||
VerifyOrQuit(frameBuffer.SetLength(sizeof(sHelloText)) == OT_ERROR_NONE);
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHelloText));
|
||||
VerifyOrQuit(frameBuffer.HasFrame());
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
VerifyOrQuit((frame = frameBuffer.GetFrame()) != nullptr, "GetFrame() failed");
|
||||
VerifyOrQuit((frame = frameBuffer.GetFrame()) != nullptr);
|
||||
memcpy(frame, sMottoText, sizeof(sMottoText));
|
||||
VerifyOrQuit(frameBuffer.SetLength(sizeof(sMottoText)) == OT_ERROR_NONE, "SetLength() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText), "GetLength() failed");
|
||||
VerifyOrQuit(frameBuffer.HasFrame(), "HasFrame() is incorrect");
|
||||
VerifyOrQuit(frameBuffer.SetLength(sizeof(sMottoText)) == OT_ERROR_NONE);
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sMottoText));
|
||||
VerifyOrQuit(frameBuffer.HasFrame());
|
||||
frameBuffer.SaveFrame();
|
||||
|
||||
VerifyOrQuit((frame = frameBuffer.GetFrame()) != nullptr, "GetFrame() failed");
|
||||
VerifyOrQuit((frame = frameBuffer.GetFrame()) != nullptr);
|
||||
memcpy(frame, sHexText, sizeof(sHexText));
|
||||
VerifyOrQuit(frameBuffer.SetLength(sizeof(sHexText)) == OT_ERROR_NONE, "SetLength() failed");
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHexText), "GetLength() failed");
|
||||
VerifyOrQuit(frameBuffer.SetLength(sizeof(sHexText)) == OT_ERROR_NONE);
|
||||
VerifyOrQuit(frameBuffer.GetLength() == sizeof(sHexText));
|
||||
frameBuffer.DiscardFrame();
|
||||
VerifyOrQuit(!frameBuffer.HasFrame(), "HasFrame() is incorrect");
|
||||
VerifyOrQuit(!frameBuffer.HasFrame());
|
||||
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHelloText), "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sHelloText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(frameBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sMottoText), "GetNextSavedFrame() length is incorrect");
|
||||
VerifyOrQuit(memcmp(frame, sMottoText, length) == 0, "GetNextSavedFrame() frame content is incorrect");
|
||||
|
||||
SuccessOrQuit(!frameBuffer.GetNextSavedFrame(frame, length), "GetNextSavedFrame() failed unexpectedly");
|
||||
SuccessOrQuit(!frameBuffer.GetNextSavedFrame(frame, length));
|
||||
|
||||
frameBuffer.Clear();
|
||||
VerifyOrQuit(frameBuffer.SetLength(kBufferSize - (kFrameHeaderSize - 1)) == OT_ERROR_NO_BUFS,
|
||||
"SetLength() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetLength(kBufferSize - kFrameHeaderSize) == OT_ERROR_NONE,
|
||||
"SetLength() incorrect behavior after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetLength(kBufferSize - (kFrameHeaderSize - 1)) == OT_ERROR_NO_BUFS, "after Clear()");
|
||||
VerifyOrQuit(frameBuffer.SetLength(kBufferSize - kFrameHeaderSize) == OT_ERROR_NONE, "after Clear()");
|
||||
|
||||
printf(" -- PASS\n");
|
||||
}
|
||||
@@ -487,35 +460,35 @@ void TestEncoderDecoder(void)
|
||||
|
||||
printf("Testing Hdlc::Encoder and Hdlc::Decoder");
|
||||
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.Encode(sOpenThreadText, sizeof(sOpenThreadText) - 1), "Encoder::Encode() failed");
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
SuccessOrQuit(encoder.Encode(sOpenThreadText, sizeof(sOpenThreadText) - 1));
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
encoderBuffer.SaveFrame();
|
||||
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.Encode(sMottoText, sizeof(sMottoText) - 1), "Encoder::Encode() failed");
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
SuccessOrQuit(encoder.Encode(sMottoText, sizeof(sMottoText) - 1));
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
encoderBuffer.SaveFrame();
|
||||
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.Encode(sHdlcSpecials, sizeof(sHdlcSpecials)), "Encoder::Encode() failed");
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
SuccessOrQuit(encoder.Encode(sHdlcSpecials, sizeof(sHdlcSpecials)));
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
encoderBuffer.SaveFrame();
|
||||
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.Encode(sHelloText, sizeof(sHelloText) - 1), "Encoder::Encode() failed");
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
SuccessOrQuit(encoder.Encode(sHelloText, sizeof(sHelloText) - 1));
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
encoderBuffer.SaveFrame();
|
||||
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
// Empty frame
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
encoderBuffer.SaveFrame();
|
||||
|
||||
byte = kFlagSequence;
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.Encode(&byte, sizeof(uint8_t)), "Encoder::Encode() failed");
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
SuccessOrQuit(encoder.Encode(&byte, sizeof(uint8_t)));
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
encoderBuffer.SaveFrame();
|
||||
|
||||
// Feed the encoded frames to decoder and save the content
|
||||
@@ -525,7 +498,7 @@ void TestEncoderDecoder(void)
|
||||
|
||||
decoder.Decode(frame, length);
|
||||
|
||||
VerifyOrQuit(decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(decoderContext.mWasCalled);
|
||||
VerifyOrQuit(decoderContext.mError == OT_ERROR_NONE, "Decoder::Decode() returned incorrect error code");
|
||||
|
||||
decoderBuffer.SaveFrame();
|
||||
@@ -533,26 +506,26 @@ void TestEncoderDecoder(void)
|
||||
|
||||
// Verify the decoded frames match the original frames
|
||||
frame = nullptr;
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length), "Incorrect decoded frame");
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sOpenThreadText) - 1, "Decoded frame length does not match original frame");
|
||||
VerifyOrQuit(memcmp(frame, sOpenThreadText, length) == 0, "Decoded frame content does not match original frame");
|
||||
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length), "Incorrect decoded frame");
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sMottoText) - 1, "Decoded frame length does not match original frame");
|
||||
VerifyOrQuit(memcmp(frame, sMottoText, length) == 0, "Decoded frame content does not match original frame");
|
||||
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length), "Incorrect decoded frame");
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHdlcSpecials), "Decoded frame length does not match original frame");
|
||||
VerifyOrQuit(memcmp(frame, sHdlcSpecials, length) == 0, "Decoded frame content does not match original frame");
|
||||
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length), "Incorrect decoded frame");
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(sHelloText) - 1, "Decoded frame length does not match original frame");
|
||||
VerifyOrQuit(memcmp(frame, sHelloText, length) == 0, "Decoded frame content does not match original frame");
|
||||
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length), "Incorrect decoded frame");
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == 0, "Decoded frame length does not match original frame");
|
||||
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length), "Incorrect decoded frame");
|
||||
SuccessOrQuit(decoderBuffer.GetNextSavedFrame(frame, length));
|
||||
VerifyOrQuit(length == sizeof(uint8_t), "Decoded frame length does not match original frame");
|
||||
VerifyOrQuit(*frame == kFlagSequence, "Decoded frame content does not match original frame");
|
||||
|
||||
@@ -562,7 +535,7 @@ void TestEncoderDecoder(void)
|
||||
decoderBuffer.Clear();
|
||||
|
||||
// Test `Encoder` behavior when running out of buffer space
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
|
||||
error = OT_ERROR_NONE;
|
||||
|
||||
@@ -580,15 +553,15 @@ void TestEncoderDecoder(void)
|
||||
|
||||
// Test `Decoder` behavior with incorrect FCS
|
||||
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.Encode(sMottoText, sizeof(sMottoText) - 1), "Encoder::Encode() failed");
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
SuccessOrQuit(encoder.Encode(sMottoText, sizeof(sMottoText) - 1));
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
|
||||
encoderBuffer.GetFrame()[0] ^= 0x0a; // Change the first byte in the frame to cause FCS failure
|
||||
|
||||
decoderContext.mWasCalled = false;
|
||||
decoder.Decode(encoderBuffer.GetFrame(), encoderBuffer.GetLength());
|
||||
VerifyOrQuit(decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(decoderContext.mWasCalled);
|
||||
VerifyOrQuit(decoderContext.mError == OT_ERROR_PARSE, "Decoder::Decode() did not fail with bad FCS");
|
||||
|
||||
decoderBuffer.Clear();
|
||||
@@ -597,7 +570,7 @@ void TestEncoderDecoder(void)
|
||||
|
||||
decoderContext.mWasCalled = false;
|
||||
decoder.Decode(badShortFrame, sizeof(badShortFrame));
|
||||
VerifyOrQuit(decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(decoderContext.mWasCalled);
|
||||
VerifyOrQuit(decoderContext.mError == OT_ERROR_PARSE, "Decoder::Decode() did not fail for short frame");
|
||||
|
||||
decoderBuffer.Clear();
|
||||
@@ -607,13 +580,13 @@ void TestEncoderDecoder(void)
|
||||
byte = kFlagSequence;
|
||||
decoderContext.mWasCalled = false;
|
||||
decoder.Decode(&byte, sizeof(uint8_t));
|
||||
VerifyOrQuit(!decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(!decoderContext.mWasCalled);
|
||||
decoder.Decode(&byte, sizeof(uint8_t));
|
||||
VerifyOrQuit(!decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(!decoderContext.mWasCalled);
|
||||
decoder.Decode(&byte, sizeof(uint8_t));
|
||||
VerifyOrQuit(!decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(!decoderContext.mWasCalled);
|
||||
decoder.Decode(&byte, sizeof(uint8_t));
|
||||
VerifyOrQuit(!decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(!decoderContext.mWasCalled);
|
||||
|
||||
printf(" -- PASS\n");
|
||||
}
|
||||
@@ -650,16 +623,16 @@ void TestFuzzEncoderDecoder(void)
|
||||
frame[i] = static_cast<uint8_t>(GetRandom(256));
|
||||
}
|
||||
|
||||
SuccessOrQuit(encoder.BeginFrame(), "Encoder::BeginFrame() failed");
|
||||
SuccessOrQuit(encoder.Encode(frame, length), "Encoder::Encode() failed");
|
||||
SuccessOrQuit(encoder.EndFrame(), "Encoder::EndFrame() failed");
|
||||
SuccessOrQuit(encoder.BeginFrame());
|
||||
SuccessOrQuit(encoder.Encode(frame, length));
|
||||
SuccessOrQuit(encoder.EndFrame());
|
||||
|
||||
VerifyOrQuit(!encoderBuffer.IsEmpty(), "Encoded frame is empty");
|
||||
VerifyOrQuit(encoderBuffer.GetLength() > length, "Encoded frame is too short");
|
||||
|
||||
decoderContext.mWasCalled = false;
|
||||
decoder.Decode(encoderBuffer.GetFrame(), encoderBuffer.GetLength());
|
||||
VerifyOrQuit(decoderContext.mWasCalled, "Decoder::Decode() failed");
|
||||
VerifyOrQuit(decoderContext.mWasCalled);
|
||||
VerifyOrQuit(decoderContext.mError == OT_ERROR_NONE, "Decoder::Decode() returned incorrect error code");
|
||||
|
||||
VerifyOrQuit(!decoderBuffer.IsEmpty(), "Decoded frame is empty");
|
||||
|
||||
Reference in New Issue
Block a user