10
#include <embox/test.h>
11
#include <lib/libds/msg_buff.h>
13
EMBOX_TEST_SUITE("tests for msg_buff");
15
#define MAX_MSG_SIZE 16
16
#define MSG_BUFF_SIZE (32 + (4 * sizeof(size_t)))
18
TEST_CASE("Write/read messages") {
19
char storage[MSG_BUFF_SIZE];
20
char message[MAX_MSG_SIZE + 1];
25
msg_buff_init(&buf, storage, sizeof(storage));
27
test_assert_true(msg_buff_empty(&buf));
29
msg_len = msg_buff_dequeue(&buf, message, MSG_BUFF_SIZE);
31
test_assert_equal(msg_len, 0);
33
msg_len = msg_buff_enqueue(&buf, "abcd", 4);
34
test_assert_equal(msg_len, 4);
36
msg_len = msg_buff_enqueue(&buf, "ef", 2);
37
test_assert_equal(msg_len, 2);
39
msg_len = msg_buff_enqueue(&buf, "hello", 5);
40
test_assert_equal(msg_len, 5);
42
msg_len = msg_buff_enqueue(&buf, "--------------------------", 26);
43
test_assert_equal(msg_len, 0);
45
space = msg_buff_space(&buf);
46
test_assert_equal(space, 20);
48
msg_len = msg_buff_enqueue(&buf, "---------------!----", 20);
49
test_assert_equal(msg_len, 20);
51
msg_len = msg_buff_dequeue(&buf, message, MAX_MSG_SIZE);
52
test_assert_equal(msg_len, 4);
53
message[msg_len] = '\0';
54
test_assert_str_equal("abcd", message);
56
msg_len = msg_buff_dequeue(&buf, message, MAX_MSG_SIZE);
57
test_assert_equal(msg_len, 2);
58
message[msg_len] = '\0';
59
test_assert_str_equal("ef", message);
61
msg_len = msg_buff_dequeue(&buf, message, MAX_MSG_SIZE);
62
test_assert_equal(msg_len, 5);
63
message[msg_len] = '\0';
64
test_assert_str_equal("hello", message);
66
msg_len = msg_buff_dequeue(&buf, message, MAX_MSG_SIZE);
67
test_assert_equal(msg_len, 0);
68
message[MAX_MSG_SIZE] = '\0';
69
test_assert_str_equal("---------------!", message);