• Home
  • Raw
  • Download

Lines Matching +full:is +full:- +full:buffer

16  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
43 // This module implements unit-test for Spinel::Buffer class.
65 uint32_t mFrameAddedCount; // Number of times FrameAddedCallback is invoked.
66 uint32_t mFrameRemovedCount; // Number of times FrameRemovedCallback is invoked.
81 Spinel::Buffer::FrameTag sTagHistoryArray[kNumPrios][kTagArraySize];
84 Spinel::Buffer::FrameTag sExpectedRemovedTag = Spinel::Buffer::kInvalidTag;
94 void AddTagToHistory(Spinel::Buffer::FrameTag aTag, Spinel::Buffer::Priority aPriority) in AddTagToHistory()
109 void VerifyAndRemoveTagFromHistory(Spinel::Buffer::FrameTag aTag, Spinel::Buffer::Priority aPriorit… in VerifyAndRemoveTagFromHistory()
113 VerifyOrQuit(sTagHistoryHead[priority] != sTagHistoryTail[priority], "Tag history is empty,"); in VerifyAndRemoveTagFromHistory()
122 if (sExpectedRemovedTag != Spinel::Buffer::kInvalidTag) in VerifyAndRemoveTagFromHistory()
125 sExpectedRemovedTag = Spinel::Buffer::kInvalidTag; in VerifyAndRemoveTagFromHistory()
130 Spinel::Buffer::FrameTag aTag, in FrameAddedCallback()
131 Spinel::Buffer::Priority aPriority, in FrameAddedCallback()
132 Spinel::Buffer *aNcpBuffer) in FrameAddedCallback()
136 VerifyOrQuit(aNcpBuffer != nullptr, "Null Spinel::Buffer in the callback"); in FrameAddedCallback()
138 VerifyOrQuit(aTag != Spinel::Buffer::kInvalidTag, "Invalid tag in the callback"); in FrameAddedCallback()
139 …VerifyOrQuit(aTag == aNcpBuffer->InFrameGetLastTag(), "InFrameGetLastTag() does not match the tag … in FrameAddedCallback()
143 callbackContext->mFrameAddedCount++; in FrameAddedCallback()
147 Spinel::Buffer::FrameTag aTag, in FrameRemovedCallback()
148 Spinel::Buffer::Priority aPriority, in FrameRemovedCallback()
149 Spinel::Buffer *aNcpBuffer) in FrameRemovedCallback()
153 VerifyOrQuit(aNcpBuffer != nullptr, "Null Spinel::Buffer in the callback"); in FrameRemovedCallback()
155 VerifyOrQuit(aTag != Spinel::Buffer::kInvalidTag, "Invalid tag in the callback"); in FrameRemovedCallback()
159 callbackContext->mFrameRemovedCount++; in FrameRemovedCallback()
162 // Reads bytes from the ncp buffer, and verifies that it matches with the given content buffer.
163 void ReadAndVerifyContent(Spinel::Buffer &aNcpBuffer, const uint8_t *aContentBuffer, uint16_t aBuff… in ReadAndVerifyContent()
165 while (aBufferLength--) in ReadAndVerifyContent()
174 void WriteTestFrame1(Spinel::Buffer &aNcpBuffer, Spinel::Buffer::Priority aPriority) in WriteTestFrame1()
179 message = sMessagePool->Allocate(Message::kTypeIp6); in WriteTestFrame1()
181 SuccessOrQuit(message->SetLength(sizeof(sMottoText))); in WriteTestFrame1()
182 message->Write(0, sMottoText); in WriteTestFrame1()
195 void VerifyAndRemoveFrame1(Spinel::Buffer &aNcpBuffer) in VerifyAndRemoveFrame1()
209 …VerifyOrQuit(aNcpBuffer.OutFrameReadByte() == 0, "ReadByte() returned non-zero after end of frame.… in VerifyAndRemoveFrame1()
217 void WriteTestFrame2(Spinel::Buffer &aNcpBuffer, Spinel::Buffer::Priority aPriority) in WriteTestFrame2()
223 message1 = sMessagePool->Allocate(Message::kTypeIp6); in WriteTestFrame2()
225 SuccessOrQuit(message1->SetLength(sizeof(sMysteryText))); in WriteTestFrame2()
226 message1->Write(0, sMysteryText); in WriteTestFrame2()
228 message2 = sMessagePool->Allocate(Message::kTypeIp6); in WriteTestFrame2()
230 SuccessOrQuit(message2->SetLength(sizeof(sHelloText))); in WriteTestFrame2()
231 message2->Write(0, sHelloText); in WriteTestFrame2()
243 void VerifyAndRemoveFrame2(Spinel::Buffer &aNcpBuffer) in VerifyAndRemoveFrame2()
254 …VerifyOrQuit(aNcpBuffer.OutFrameReadByte() == 0, "ReadByte() returned non-zero after end of frame.… in VerifyAndRemoveFrame2()
263 void WriteTestFrame3(Spinel::Buffer &aNcpBuffer, Spinel::Buffer::Priority aPriority) in WriteTestFrame3()
268 message1 = sMessagePool->Allocate(Message::kTypeIp6); in WriteTestFrame3()
272 SuccessOrQuit(message1->SetLength(0)); in WriteTestFrame3()
283 void VerifyAndRemoveFrame3(Spinel::Buffer &aNcpBuffer) in VerifyAndRemoveFrame3()
292 …VerifyOrQuit(aNcpBuffer.OutFrameReadByte() == 0, "ReadByte() returned non-zero after end of frame.… in VerifyAndRemoveFrame3()
301 void WriteTestFrame4(Spinel::Buffer &aNcpBuffer, Spinel::Buffer::Priority aPriority) in WriteTestFrame4()
313 void VerifyAndRemoveFrame4(Spinel::Buffer &aNcpBuffer) in VerifyAndRemoveFrame4()
322 …VerifyOrQuit(aNcpBuffer.OutFrameReadByte() == 0, "ReadByte() returned non-zero after end of frame.… in VerifyAndRemoveFrame4()
331 // This function implements the Spinel::Buffer tests
335 uint8_t buffer[kTestBufferSize]; in TestBuffer() local
336 Spinel::Buffer ncpBuffer(buffer, kTestBufferSize); in TestBuffer()
341 Spinel::Buffer::WritePosition pos1, pos2; in TestBuffer()
344 sMessagePool = &sInstance->Get<MessagePool>(); in TestBuffer()
346 for (i = 0; i < sizeof(buffer); i++) in TestBuffer()
348 buffer[i] = 0; in TestBuffer()
359 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
360 printf("\nTest 1: Check initial buffer state"); in TestBuffer()
363 …VerifyOrQuit(ncpBuffer.InFrameGetLastTag() == Spinel::Buffer::kInvalidTag, "Incorrect tag after in… in TestBuffer()
364 …VerifyOrQuit(ncpBuffer.OutFrameGetTag() == Spinel::Buffer::kInvalidTag, "Incorrect OutFrameTag aft… in TestBuffer()
366 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
369 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
370 DumpBuffer("\nBuffer after frame1 (low priority)", buffer, kTestBufferSize); in TestBuffer()
371 printf("\nFrameLen is %u", ncpBuffer.OutFrameGetLength()); in TestBuffer()
374 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
375 DumpBuffer("\nBuffer after frame1 (high priority)", buffer, kTestBufferSize); in TestBuffer()
376 printf("\nFrameLen is %u", ncpBuffer.OutFrameGetLength()); in TestBuffer()
385 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
386 … VerifyOrQuit(ncpBuffer.IsEmpty() == false, "IsEmpty() is incorrect when buffer is non-empty"); in TestBuffer()
389 VerifyOrQuit(ncpBuffer.IsEmpty(), "IsEmpty() is incorrect when buffer is empty."); in TestBuffer()
396 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
397 … VerifyOrQuit(ncpBuffer.IsEmpty() == false, "IsEmpty() is incorrect when buffer is non-empty"); in TestBuffer()
400 VerifyOrQuit(ncpBuffer.IsEmpty(), "IsEmpty() is incorrect when buffer is empty."); in TestBuffer()
407 …WriteTestFrame1(ncpBuffer, ((j % 5) == 0) ? Spinel::Buffer::kPriorityHigh : Spinel::Buffer::kPrior… in TestBuffer()
408 … VerifyOrQuit(ncpBuffer.IsEmpty() == false, "IsEmpty() is incorrect when buffer is non-empty"); in TestBuffer()
411 VerifyOrQuit(ncpBuffer.IsEmpty(), "IsEmpty() is incorrect when buffer is empty."); in TestBuffer()
414 printf(" -- PASS\n"); in TestBuffer()
416 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
419 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
420 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
421 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
422 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
424 DumpBuffer("\nBuffer after multiple frames", buffer, kTestBufferSize); in TestBuffer()
438 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
439 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
440 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
445 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
446 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
452 VerifyOrQuit(ncpBuffer.IsEmpty(), "IsEmpty() is incorrect when buffer is empty."); in TestBuffer()
455 printf(" -- PASS\n"); in TestBuffer()
457 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
460 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
461 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
465 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
466 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
467 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
468 WriteTestFrame4(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
474 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
475 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
476 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
477 WriteTestFrame4(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
483 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
484 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
485 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
486 WriteTestFrame4(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
492 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
493 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
494 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
495 WriteTestFrame4(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
501 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
502 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
503 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
505 WriteTestFrame4(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
510 printf(" -- PASS\n"); in TestBuffer()
512 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
513 printf("\nTest 5: Frame discard when buffer full and partial read restart"); in TestBuffer()
523 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
524 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
526 …ncpBuffer.InFrameBegin((j % 2) == 0 ? Spinel::Buffer::kPriorityHigh : Spinel::Buffer::kPriorityLow… in TestBuffer()
529 message = sMessagePool->Allocate(Message::kTypeIp6); in TestBuffer()
531 SuccessOrQuit(message->SetLength(sizeof(sMysteryText))); in TestBuffer()
532 message->Write(0, sMysteryText); in TestBuffer()
536 … // Start writing a new frame in middle of an unfinished frame. Ensure the first one is discarded. in TestBuffer()
537 …riteTestFrame1(ncpBuffer, frame1IsHighPriority ? Spinel::Buffer::kPriorityHigh : Spinel::Buffer::k… in TestBuffer()
539 …// Note that message will not be freed by the NCP buffer since the frame associated with it was di… in TestBuffer()
563 VerifyOrQuit(ncpBuffer.IsEmpty(), "IsEmpty() is incorrect when buffer is empty."); in TestBuffer()
566 printf(" -- PASS\n"); in TestBuffer()
568 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
569 printf("\nTest 6: Clear() and empty buffer method tests"); in TestBuffer()
571 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
576 …VerifyOrQuit(ncpBuffer.InFrameGetLastTag() == Spinel::Buffer::kInvalidTag, "Incorrect last tag aft… in TestBuffer()
577 …VerifyOrQuit(ncpBuffer.OutFrameGetTag() == Spinel::Buffer::kInvalidTag, "Incorrect OutFrameTag aft… in TestBuffer()
578 VerifyOrQuit(ncpBuffer.IsEmpty(), "IsEmpty() is incorrect when buffer is empty."); in TestBuffer()
579 …ifyOrQuit(ncpBuffer.OutFrameHasEnded(), "OutFrameHasEnded() is incorrect when no data in buffer."); in TestBuffer()
581 "Remove() returned incorrect error status when buffer is empty."); in TestBuffer()
583 "OutFrameGetLength() returned non-zero length when buffer is empty."); in TestBuffer()
585 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
588 VerifyOrQuit(ncpBuffer.IsEmpty(), "IsEmpty() is incorrect when buffer is empty."); in TestBuffer()
589 …ifyOrQuit(ncpBuffer.OutFrameHasEnded(), "OutFrameHasEnded() is incorrect when no data in buffer."); in TestBuffer()
591 "Remove() returned incorrect error status when buffer is empty."); in TestBuffer()
593 "OutFrameGetLength() returned non-zero length when buffer is empty."); in TestBuffer()
595 printf(" -- PASS\n"); in TestBuffer()
597 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
600 ncpBuffer.InFrameBegin(Spinel::Buffer::kPriorityLow); in TestBuffer()
621 printf("\n -- PASS\n"); in TestBuffer()
623 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
626 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
627 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
631 printf(" -- PASS\n"); in TestBuffer()
633 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
634 … printf("\nTest 9: Check length when front frame gets changed (a higher priority frame is added)"); in TestBuffer()
635 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
637 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
641 printf(" -- PASS\n"); in TestBuffer()
643 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
644 …printf("\nTest 10: Active out frame remaining unchanged when a higher priority frame is written wh… in TestBuffer()
645 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
650 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
660 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
661 WriteTestFrame4(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
668 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
673 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
683 WriteTestFrame3(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
684 WriteTestFrame4(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
690 printf(" -- PASS\n"); in TestBuffer()
692 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
694 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
695 ncpBuffer.InFrameBegin(Spinel::Buffer::kPriorityHigh); in TestBuffer()
702 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
703 ncpBuffer.InFrameBegin(Spinel::Buffer::kPriorityLow); in TestBuffer()
710 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
711 ncpBuffer.InFrameBegin(Spinel::Buffer::kPriorityHigh); in TestBuffer()
717 printf(" -- PASS\n"); in TestBuffer()
719 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
721 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
722 ncpBuffer.InFrameBegin(Spinel::Buffer::kPriorityHigh); in TestBuffer()
723 VerifyOrQuit(ncpBuffer.InFrameFeedData(buffer, sizeof(buffer)) == OT_ERROR_NO_BUFS); in TestBuffer()
727 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
728 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
734 message = sMessagePool->Allocate(Message::kTypeIp6); in TestBuffer()
736 SuccessOrQuit(message->SetLength(sizeof(sMysteryText))); in TestBuffer()
737 message->Write(0, sMysteryText); in TestBuffer()
739 message->Free(); in TestBuffer()
745 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
748 printf(" -- PASS\n"); in TestBuffer()
750 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
751 … printf("\n Test 13: Ensure we can utilize the full buffer size when frames removed during write"); in TestBuffer()
752 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
753 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
754 ncpBuffer.InFrameBegin(Spinel::Buffer::kPriorityHigh); in TestBuffer()
757 SuccessOrQuit(ncpBuffer.InFrameFeedData(buffer, sizeof(buffer) - 4)); in TestBuffer()
760 // Repeat the test with a low priority buffer write in TestBuffer()
761 WriteTestFrame1(ncpBuffer, Spinel::Buffer::kPriorityHigh); in TestBuffer()
762 WriteTestFrame2(ncpBuffer, Spinel::Buffer::kPriorityLow); in TestBuffer()
763 ncpBuffer.InFrameBegin(Spinel::Buffer::kPriorityLow); in TestBuffer()
766 SuccessOrQuit(ncpBuffer.InFrameFeedData(buffer, sizeof(buffer) - 4)); in TestBuffer()
769 printf(" -- PASS\n"); in TestBuffer()
771 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
779 Spinel::Buffer::Priority priority; in TestBuffer()
782 priority = ((j % 3) == 0) ? Spinel::Buffer::kPriorityHigh : Spinel::Buffer::kPriorityLow; in TestBuffer()
787 SuccessOrQuit(ncpBuffer.InFrameFeedData(sMysteryText, sizeof(sHexText) - index)); in TestBuffer()
788 VerifyOrQuit(ncpBuffer.InFrameGetDistance(pos1) == sizeof(sHexText) - index); in TestBuffer()
795 SuccessOrQuit(ncpBuffer.InFrameOverwrite(pos1, sHexText + index, sizeof(sHexText) - index), in TestBuffer()
798 sizeof(sHexText) - index + (addExtra ? sizeof(sHelloText) : 0), in TestBuffer()
815 printf(" -- PASS\n"); in TestBuffer()
817 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
825 Spinel::Buffer::Priority priority; in TestBuffer()
828 priority = ((j % 3) == 0) ? Spinel::Buffer::kPriorityHigh : Spinel::Buffer::kPriorityLow; in TestBuffer()
833 SuccessOrQuit(ncpBuffer.InFrameFeedData(sMysteryText, sizeof(sHexText) - index)); in TestBuffer()
834 VerifyOrQuit(ncpBuffer.InFrameGetDistance(pos1) == sizeof(sHexText) - index); in TestBuffer()
842 SuccessOrQuit(ncpBuffer.InFrameFeedData(sHexText + index, sizeof(sHexText) - index)); in TestBuffer()
847 SuccessOrQuit(ncpBuffer.InFrameFeedData(sHexText + index, sizeof(sHexText) - index)); in TestBuffer()
850 VerifyOrQuit(ncpBuffer.InFrameGetDistance(pos1) == sizeof(sHexText) - index); in TestBuffer()
857 printf(" -- PASS\n"); in TestBuffer()
863 * NCP Buffer Fuzz testing
865 …* Randomly decide if to read or write a frame to the NCP buffer (use `kReadProbability` in percent…
870 * Handle the cases where buffer gets full or empty.
876 kFuzTestBufferSize = 2000, // Size of the buffer used during fuzz testing
904 otError WriteRandomFrame(uint32_t aLength, Spinel::Buffer &aNcpBuffer, Spinel::Buffer::Priority aPr… in WriteRandomFrame()
914 while (aLength--) in WriteRandomFrame()
933 otError ReadRandomFrame(uint32_t aLength, Spinel::Buffer &aNcpBuffer, uint8_t priority) in ReadRandomFrame()
940 // Read and verify that the content is same as sFrameBuffer values... in ReadRandomFrame()
946 sFrameBufferTailIndex[priority] -= aLength; in ReadRandomFrame()
956 // This runs a fuzz test of NCP buffer
959 uint8_t buffer[kFuzTestBufferSize]; in TestFuzzBuffer() local
960 Spinel::Buffer ncpBuffer(buffer, kFuzTestBufferSize); in TestFuzzBuffer()
967 sMessagePool = &sInstance->Get<MessagePool>(); in TestFuzzBuffer()
969 memset(buffer, 0, sizeof(buffer)); in TestFuzzBuffer()
990 else if (lensArrayCount[0] == kLensArraySize - 1 || lensArrayCount[1] == kLensArraySize - 1) in TestFuzzBuffer()
1005 … priority = (lensArrayCount[Spinel::Buffer::kPriorityHigh] != 0) ? Spinel::Buffer::kPriorityHigh in TestFuzzBuffer()
1006 … : Spinel::Buffer::kPriorityLow; in TestFuzzBuffer()
1010 lensArrayCount[priority]--; in TestFuzzBuffer()
1012 printf("R%c%d ", priority == Spinel::Buffer::kPriorityHigh ? 'H' : 'L', len); in TestFuzzBuffer()
1019 Spinel::Buffer::Priority priority; in TestFuzzBuffer()
1023 priority = Spinel::Buffer::kPriorityHigh; in TestFuzzBuffer()
1027 priority = Spinel::Buffer::kPriorityLow; in TestFuzzBuffer()
1035 printf("W%c%d ", priority == Spinel::Buffer::kPriorityHigh ? 'H' : 'L', len); in TestFuzzBuffer()
1050 printf("\n -- PASS\n"); in TestFuzzBuffer()