Files
libucore/test/test_ringbuf.c
T
2025-07-05 20:03:24 +02:00

49 lines
984 B
C

#include <check.h>
#include <unistd.h>
#include "ucore/ringbuf.h"
START_TEST (test_ringbuf)
{
UCRingBuf rb;
int rc;
int pgsize = getpagesize();
rc = uc_ringbuf_init(&rb, pgsize);
ck_assert_int_eq(rc, 0);
ck_assert_int_eq(uc_ringbuf_available(&rb), pgsize);
for (int i = 0 ; i < pgsize; i++) {
unsigned char data = i % 256;
rc = uc_ringbuf_write(&rb, &data, 1);
ck_assert_int_eq(rc, 0);
}
ck_assert_int_eq(uc_ringbuf_available(&rb), 0);
for (int i = 0; i < pgsize; i++) {
unsigned char data = 0;
rc = uc_ringbuf_read(&rb, &data, 1);
ck_assert_int_eq(rc, 0);
ck_assert_int_eq(data, i % 256);
}
ck_assert_int_eq(uc_ringbuf_available(&rb), pgsize);
}
Suite *ringbuf_suite(void)
{
Suite *s = suite_create("ringbuf");
TCase *tc1 = tcase_create("ringbuf");
tcase_add_test(tc1, test_ringbuf);
#ifndef __APPLE__
#endif
suite_add_tcase(s, tc1);
return s;
}