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