Lines Matching +full:fuzz +full:- +full:priority
43 // This module implements unit-test for Spinel::Buffer class.
73 kNumPrios = 2, // Number of priority levels.
88 for (uint8_t priority = 0; priority < kNumPrios; priority++) in ClearTagHistory() local
90 sTagHistoryHead[priority] = sTagHistoryTail[priority]; in ClearTagHistory()
94 void AddTagToHistory(Spinel::Buffer::FrameTag aTag, Spinel::Buffer::Priority aPriority) in AddTagToHistory()
96 uint8_t priority = static_cast<uint8_t>(aPriority); in AddTagToHistory() local
98 sTagHistoryArray[priority][sTagHistoryTail[priority]] = aTag; in AddTagToHistory()
100 if (++sTagHistoryTail[priority] == kTagArraySize) in AddTagToHistory()
102 sTagHistoryTail[priority] = 0; in AddTagToHistory()
105 VerifyOrQuit(sTagHistoryTail[priority] != sTagHistoryHead[priority], in AddTagToHistory()
109 void VerifyAndRemoveTagFromHistory(Spinel::Buffer::FrameTag aTag, Spinel::Buffer::Priority aPriorit… in VerifyAndRemoveTagFromHistory()
111 uint8_t priority = static_cast<uint8_t>(aPriority); in VerifyAndRemoveTagFromHistory() local
113 VerifyOrQuit(sTagHistoryHead[priority] != sTagHistoryTail[priority], "Tag history is empty,"); in VerifyAndRemoveTagFromHistory()
114 VerifyOrQuit(aTag == sTagHistoryArray[priority][sTagHistoryHead[priority]], in VerifyAndRemoveTagFromHistory()
117 if (++sTagHistoryHead[priority] == kTagArraySize) in VerifyAndRemoveTagFromHistory()
119 sTagHistoryHead[priority] = 0; in VerifyAndRemoveTagFromHistory()
131 Spinel::Buffer::Priority aPriority, in FrameAddedCallback()
139 …VerifyOrQuit(aTag == aNcpBuffer->InFrameGetLastTag(), "InFrameGetLastTag() does not match the tag … in FrameAddedCallback()
143 callbackContext->mFrameAddedCount++; in FrameAddedCallback()
148 Spinel::Buffer::Priority aPriority, in FrameRemovedCallback()
159 callbackContext->mFrameRemovedCount++; in FrameRemovedCallback()
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()
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()
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()
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()
322 …VerifyOrQuit(aNcpBuffer.OutFrameReadByte() == 0, "ReadByte() returned non-zero after end of frame.… in VerifyAndRemoveFrame4()
344 sMessagePool = &sInstance->Get<MessagePool>(); in TestBuffer()
359 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
366 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
370 DumpBuffer("\nBuffer after frame1 (low priority)", buffer, kTestBufferSize); in TestBuffer()
375 DumpBuffer("\nBuffer after frame1 (high priority)", buffer, kTestBufferSize); in TestBuffer()
381 // Always add as low priority. in TestBuffer()
386 … VerifyOrQuit(ncpBuffer.IsEmpty() == false, "IsEmpty() is incorrect when buffer is non-empty"); in TestBuffer()
392 // Always add as high priority. in TestBuffer()
397 … VerifyOrQuit(ncpBuffer.IsEmpty() == false, "IsEmpty() is incorrect when buffer is non-empty"); in TestBuffer()
403 // Every 5th add as high priority. in TestBuffer()
408 … VerifyOrQuit(ncpBuffer.IsEmpty() == false, "IsEmpty() is incorrect when buffer is non-empty"); in TestBuffer()
414 printf(" -- PASS\n"); in TestBuffer()
416 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
417 printf("\nTest 3: Multiple frames write and read (same priority)"); in TestBuffer()
455 printf(" -- PASS\n"); in TestBuffer()
457 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
458 printf("\nTest 4: Multiple frames write and read (mixed priority)"); in TestBuffer()
510 printf(" -- PASS\n"); in TestBuffer()
512 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); 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()
566 printf(" -- PASS\n"); in TestBuffer()
568 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
583 "OutFrameGetLength() returned non-zero length 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()
621 printf("\n -- PASS\n"); in TestBuffer()
623 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); 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()
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()
667 // Repeat test reversing frame priority orders. in TestBuffer()
690 printf(" -- PASS\n"); in TestBuffer()
692 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
717 printf(" -- PASS\n"); in TestBuffer()
719 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); 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()
748 printf(" -- PASS\n"); in TestBuffer()
750 printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); in TestBuffer()
757 SuccessOrQuit(ncpBuffer.InFrameFeedData(buffer, sizeof(buffer) - 4)); in TestBuffer()
760 // Repeat the test with a low priority buffer write 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() local
782 priority = ((j % 3) == 0) ? Spinel::Buffer::kPriorityHigh : Spinel::Buffer::kPriorityLow; in TestBuffer()
784 ncpBuffer.InFrameBegin(priority); 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() local
828 priority = ((j % 3) == 0) ? Spinel::Buffer::kPriorityHigh : Spinel::Buffer::kPriorityLow; in TestBuffer()
830 ncpBuffer.InFrameBegin(priority); 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
876 kFuzTestBufferSize = 2000, // Size of the buffer used during fuzz testing
881 … kHighPriorityProbability = 20, // Probability (in percent) to write a high priority frame
904 otError WriteRandomFrame(uint32_t aLength, Spinel::Buffer &aNcpBuffer, Spinel::Buffer::Priority aPr… in WriteRandomFrame()
908 uint8_t priority = static_cast<uint8_t>(aPriority); in WriteRandomFrame() local
910 uint32_t tail = sFrameBufferTailIndex[priority]; in WriteRandomFrame()
914 while (aLength--) in WriteRandomFrame()
918 sFrameBuffer[priority][tail++] = byte; in WriteRandomFrame()
923 sFrameBufferTailIndex[priority] = tail; in WriteRandomFrame()
933 otError ReadRandomFrame(uint32_t aLength, Spinel::Buffer &aNcpBuffer, uint8_t priority) in ReadRandomFrame() argument
941 ReadAndVerifyContent(aNcpBuffer, sFrameBuffer[priority], static_cast<uint16_t>(aLength)); in ReadRandomFrame()
946 sFrameBufferTailIndex[priority] -= aLength; in ReadRandomFrame()
947 …memmove(sFrameBuffer[priority], sFrameBuffer[priority] + aLength, sFrameBufferTailIndex[priority]); in ReadRandomFrame()
956 // This runs a fuzz test of NCP buffer
967 sMessagePool = &sInstance->Get<MessagePool>(); in TestFuzzBuffer()
990 else if (lensArrayCount[0] == kLensArraySize - 1 || lensArrayCount[1] == kLensArraySize - 1) in TestFuzzBuffer()
1003 uint8_t priority; in TestFuzzBuffer() local
1005 … priority = (lensArrayCount[Spinel::Buffer::kPriorityHigh] != 0) ? Spinel::Buffer::kPriorityHigh in TestFuzzBuffer()
1008 len = lensArray[priority][lensArrayStart[priority]]; in TestFuzzBuffer()
1009 lensArrayStart[priority] = (lensArrayStart[priority] + 1) % kLensArraySize; in TestFuzzBuffer()
1010 lensArrayCount[priority]--; in TestFuzzBuffer()
1012 printf("R%c%d ", priority == Spinel::Buffer::kPriorityHigh ? 'H' : 'L', len); in TestFuzzBuffer()
1014 … SuccessOrQuit(ReadRandomFrame(len, ncpBuffer, priority), "Failed to read random frame."); in TestFuzzBuffer()
1019 Spinel::Buffer::Priority priority; in TestFuzzBuffer() local
1023 priority = Spinel::Buffer::kPriorityHigh; in TestFuzzBuffer()
1027 priority = Spinel::Buffer::kPriorityLow; in TestFuzzBuffer()
1030 if (WriteRandomFrame(len, ncpBuffer, priority) == OT_ERROR_NONE) in TestFuzzBuffer()
1032 … lensArray[priority][(lensArrayStart[priority] + lensArrayCount[priority]) % kLensArraySize] = len; in TestFuzzBuffer()
1033 lensArrayCount[priority]++; in TestFuzzBuffer()
1035 printf("W%c%d ", priority == Spinel::Buffer::kPriorityHigh ? 'H' : 'L', len); in TestFuzzBuffer()
1050 printf("\n -- PASS\n"); in TestFuzzBuffer()