test: core: add error and ringbuffer tests
This commit is contained in:
6
core-test/errors.c
Normal file
6
core-test/errors.c
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#include <blue/core/error.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
66
core-test/ringbuffers.c
Normal file
66
core-test/ringbuffers.c
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
#include <assert.h>
|
||||||
|
#include <blue/core/ringbuffer.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define BUF_SIZE 32
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
b_ringbuffer *buf = b_ringbuffer_create(BUF_SIZE);
|
||||||
|
|
||||||
|
size_t read_available = b_ringbuffer_available_data_remaining(buf);
|
||||||
|
size_t write_available = b_ringbuffer_write_capacity_remaining(buf);
|
||||||
|
|
||||||
|
printf("read available: %zu\n", read_available);
|
||||||
|
printf("write available: %zu\n", write_available);
|
||||||
|
|
||||||
|
assert(read_available == 0);
|
||||||
|
assert(write_available == BUF_SIZE - 1);
|
||||||
|
|
||||||
|
const char ch = 'X';
|
||||||
|
printf("putc(%c)\n", ch);
|
||||||
|
|
||||||
|
b_ringbuffer_putc(buf, ch);
|
||||||
|
read_available = b_ringbuffer_available_data_remaining(buf);
|
||||||
|
write_available = b_ringbuffer_write_capacity_remaining(buf);
|
||||||
|
printf("read available: %zu\n", read_available);
|
||||||
|
printf("write available: %zu\n", write_available);
|
||||||
|
assert(read_available == 1);
|
||||||
|
assert(write_available == BUF_SIZE - 2);
|
||||||
|
|
||||||
|
int c = b_ringbuffer_getc(buf);
|
||||||
|
printf("getc() = %c\n", c);
|
||||||
|
assert(c == ch);
|
||||||
|
|
||||||
|
const char s[]
|
||||||
|
= "A very long string that is designed to overflow the "
|
||||||
|
"ringbuffer";
|
||||||
|
size_t s_len = strlen(s);
|
||||||
|
|
||||||
|
size_t nr_written = 0;
|
||||||
|
printf("write(%s)\n", s);
|
||||||
|
b_ringbuffer_write(buf, s, s_len, &nr_written);
|
||||||
|
read_available = b_ringbuffer_available_data_remaining(buf);
|
||||||
|
write_available = b_ringbuffer_write_capacity_remaining(buf);
|
||||||
|
printf("read available: %zu\n", read_available);
|
||||||
|
printf("write available: %zu\n", write_available);
|
||||||
|
assert(read_available == BUF_SIZE - 1);
|
||||||
|
assert(write_available == 0);
|
||||||
|
|
||||||
|
char data[BUF_SIZE + 32] = {0};
|
||||||
|
size_t nr_read = 0;
|
||||||
|
b_ringbuffer_read(buf, data, sizeof data, &nr_read);
|
||||||
|
printf("read(%u) = %zu bytes\n", BUF_SIZE + 32, nr_read);
|
||||||
|
printf(" = %s\n", data);
|
||||||
|
read_available = b_ringbuffer_available_data_remaining(buf);
|
||||||
|
write_available = b_ringbuffer_write_capacity_remaining(buf);
|
||||||
|
printf("read available: %zu\n", read_available);
|
||||||
|
printf("write available: %zu\n", write_available);
|
||||||
|
assert(read_available == 0);
|
||||||
|
assert(write_available == BUF_SIZE - 1);
|
||||||
|
|
||||||
|
b_ringbuffer_destroy(buf);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user