Exemplo n.º 1
0
TEST(ringbuffer, aaa) {

    unsigned int len;
    unsigned char buf1[20];
    unsigned char buf2[20];

    (void)memset(buf2, 0x28, sizeof(buf2));

    RingBuffer_Clear(&forTest);
    TEST_ASSERT_EQUAL(TEST_RINGBUFFER_SIZE, RingBuffer_LeftSpace(&forTest));
    TEST_ASSERT_EQUAL(56, RingBuffer_PutData(&forTest, 0x28, 56));
    TEST_ASSERT_EQUAL(TEST_RINGBUFFER_SIZE - 56, RingBuffer_LeftSpace(&forTest));

    for (len = 0; len < 56; ) {
        int read = 56 - len;
        read = read > sizeof(buf1) ? sizeof(buf1) : read;
        TEST_ASSERT_EQUAL(read, RingBuffer_Read(&forTest, buf1, read));
        TEST_ASSERT_EQUAL_UINT8_ARRAY(buf1, buf2, read);
        //TEST_ASSERT_EQUAL_UINT8_ARRAY(buf1, "Hello world!!!", read);
        len += read;
    }


    (void)strcpy(buf1, "Hello world\n");
    TEST_ASSERT_EQUAL(strlen(buf1) + 1, RingBuffer_Write(&forTest, buf1, strlen(buf1) + 1));
    TEST_ASSERT_EQUAL(strlen(buf1) + 1, RingBuffer_PopString(&forTest, buf2, sizeof(buf2)));
    TEST_ASSERT_EQUAL_STRING(buf1, buf2);



    (void)strcpy(buf1, "Hello world\n");
    len = sizeof(buf2);
    TEST_ASSERT_EQUAL(strlen(buf1), RingBuffer_Write(&forTest, buf1, strlen(buf1)));
    TEST_ASSERT(RingBuffer_PopStringIsStartWith(&forTest, "Hello", buf2, &len));
    TEST_ASSERT_EQUAL(strlen(buf1), len);
    TEST_ASSERT_EQUAL_STRING(buf1, buf2);

    (void)strcpy(buf1, "Hello world\n");
    len = sizeof(buf2);
    TEST_ASSERT_EQUAL(strlen(buf1), RingBuffer_Write(&forTest, buf1, strlen(buf1)));
    TEST_ASSERT_FALSE(RingBuffer_PopStringIsStartWith(&forTest, "world", buf2, &len));
    TEST_ASSERT_EQUAL(strlen(buf1), len);
    TEST_ASSERT_EQUAL_STRING(buf1, buf2);
}
Exemplo n.º 2
0
uint16_t ReadLineInto(RingBuffer *inputBuffer)
{
    RingBuffer_Clear(inputBuffer);
    return StreamReader_ReadLine(Console, inputBuffer->Buffer, RingBuffer_MaxCapacity);
}