| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #include <string.h>
- #include <gtest/gtest.h>
- #include "cb_ringbuffer.h"
- TEST(testCase, cb_ringbuffer_test01)
- {
- cb_ringbuffer_t ringbuff;
- cb_ringbuffer_t *rb;
- char buff[16];
- rb = cb_ringbuffer_init(&ringbuff, buff, sizeof(buff));
- EXPECT_NE(cb_ringbuffer_isempty(rb), 0);
- EXPECT_EQ(cb_ringbuffer_isfull(rb), 0);
- EXPECT_EQ(cb_ringbuffer_total(rb), sizeof(buff));
- EXPECT_EQ(cb_ringbuffer_free(rb), cb_ringbuffer_total(rb));
- EXPECT_EQ(cb_ringbuffer_used(rb), 0);
- EXPECT_EQ(cb_ringbuffer_peek(rb, buff, sizeof(buff)), 0);
- EXPECT_EQ(cb_ringbuffer_discard(rb, sizeof(buff)), 0);
- EXPECT_EQ(cb_ringbuffer_read(rb, buff, sizeof(buff)), 0);
- }
- TEST(testCase, cb_ringbuffer_test02)
- {
- cb_ringbuffer_t ringbuff;
- cb_ringbuffer_t* rb;
- char buff[17];
- char tmp[sizeof(buff)];
- unsigned int buff_size;
- for (unsigned int i = 0; i < sizeof(buff); i++)
- {
- buff[i] = (char)(i & 0xff);
- }
- for (unsigned int i = 0; i < sizeof(buff); i++)
- {
- buff_size = i;
- rb = cb_ringbuffer_init(&ringbuff, buff, buff_size);
- for (unsigned int a = 0; a < buff_size; a++)
- {
- EXPECT_EQ(cb_ringbuffer_write(rb, buff, a), a);
- EXPECT_EQ(!!cb_ringbuffer_isempty(rb), !a);
- EXPECT_EQ(!!cb_ringbuffer_isfull(rb), a == buff_size);
- EXPECT_EQ(cb_ringbuffer_used(rb), a);
- EXPECT_EQ(cb_ringbuffer_free(rb), buff_size - a);
- memset(tmp, '#', sizeof(tmp));
- for (unsigned int b = 0; b < a; b++)
- {
- EXPECT_EQ(cb_ringbuffer_peek(rb, tmp, b), b);
- EXPECT_EQ(memcmp(buff, tmp, b), 0);
- memset(tmp, '#', sizeof(tmp));
- EXPECT_EQ(cb_ringbuffer_peek(rb, tmp, b), b);
- EXPECT_EQ(memcmp(buff, tmp, b), 0);
- }
- memset(tmp, '#', sizeof(tmp));
- EXPECT_EQ(cb_ringbuffer_read(rb, tmp, a), a);
- EXPECT_EQ(memcmp(buff, tmp, a), 0);
- EXPECT_EQ(cb_ringbuffer_write(rb, buff, a), a);
- EXPECT_EQ(cb_ringbuffer_discard(rb, a), a);
- EXPECT_EQ(cb_ringbuffer_free(rb), cb_ringbuffer_total(rb));
- }
- }
- }
- TEST(testCase, cb_ringbuffer_test03)
- {
- cb_ringbuffer_t ringbuff;
- cb_ringbuffer_t* rb;
- char buff[17];
- char tmp[sizeof(buff)];
- unsigned int buff_size;
- for (unsigned int i = 0; i < sizeof(buff); i++)
- {
- buff[i] = (char)(i & 0xff);
- }
- for (unsigned int i = 0; i < sizeof(buff); i++)
- {
- buff_size = i;
- rb = cb_ringbuffer_init(&ringbuff, buff, buff_size);
- for (unsigned int a = 0; a < buff_size; a++)
- {
- for (unsigned int b = 0; b < a; b++)
- {
- EXPECT_EQ(cb_ringbuffer_write(rb, buff, a), a);
- memset(tmp, '#', sizeof(tmp));
- EXPECT_EQ(cb_ringbuffer_peek(rb, tmp, a), a);
- EXPECT_EQ(memcmp(buff, tmp, a), 0);
- memset(tmp, '#', sizeof(tmp));
- EXPECT_EQ(cb_ringbuffer_read(rb, tmp, b), b);
- EXPECT_EQ(cb_ringbuffer_read(rb, tmp + b, a - b), a - b);
- EXPECT_EQ(memcmp(buff, tmp, a), 0);
- }
- }
- }
- }
- TEST(testCase, cb_ringbuffer_test04)
- {
- cb_ringbuffer_t ringbuff;
- cb_ringbuffer_t* rb;
- char buff[17];
- char tmp[sizeof(buff)];
- unsigned int buff_size;
- for (unsigned int i = 0; i < sizeof(buff); i++)
- {
- buff[i] = (char)(i & 0xff);
- }
- for (unsigned int i = 1; i < sizeof(buff); i++)
- {
- buff_size = i;
- rb = cb_ringbuffer_init(&ringbuff, buff, buff_size);
- for (unsigned int a = 0; a < 32; a++)
- {
- EXPECT_EQ(cb_ringbuffer_write(rb, buff, buff_size), buff_size);
- memset(tmp, '#', sizeof(tmp));
- EXPECT_EQ(cb_ringbuffer_peek(rb, tmp, buff_size), buff_size);
- EXPECT_EQ(memcmp(buff, tmp, buff_size), 0);
- memset(tmp, '#', sizeof(tmp));
- EXPECT_EQ(cb_ringbuffer_read(rb, tmp, buff_size), buff_size);
- EXPECT_EQ(memcmp(buff, tmp, buff_size), 0);
- }
- }
- }
- TEST(testCase, cb_ringbuffer_test05)
- {
- cb_ringbuffer_t ringbuff;
- cb_ringbuffer_t* rb;
- char buff[8];
- char read_buf[sizeof(buff) * 2];
- char src_buf[sizeof(buff) * 2];
- unsigned int buff_size;
- for (unsigned int i = 0; i < sizeof(src_buf); i++)
- {
- src_buf[i] = (char)(i & 0xff);
- }
- rb = cb_ringbuffer_init(&ringbuff, buff, sizeof(buff));
- for (unsigned int i = 0; i < sizeof(buff) * 2; i++)
- {
- for (unsigned int j = 0; j < i; j++)
- {
- cb_ringbuffer_overwrite(rb, &src_buf[j], 1);
- }
- if (i < sizeof(buff))
- {
- buff_size = i;
- }
- else
- {
- buff_size = sizeof(buff);
- }
- EXPECT_EQ(cb_ringbuffer_read(rb, read_buf, i), buff_size);
- if (i < sizeof(buff))
- {
- for (unsigned j = 0; j < buff_size; j++)
- {
- EXPECT_EQ(read_buf[j], src_buf[j]);
- }
- }
- else
- {
- for (unsigned j = 0; j < buff_size; j++)
- {
- EXPECT_EQ(read_buf[j], src_buf[j + i - sizeof(buff)]);
- }
- }
- }
- }
|