Tactiliest/tests/tactility-core/message_queue_test.cpp
Ken Van Hoeylandt b659d5b940
Added Dispatcher and fix sim (#54)
- Add dispatcher mechanism (a queue for function calls) and tests
- Added tests for MessageQueue
- Fix FreeRTOS config for simulator
- Explicit dependencies for touch-related libs, because minor version changes caused broken builds on CI.
2024-08-24 19:21:22 +02:00

82 lines
2.2 KiB
C++

#include "doctest.h"
#include "message_queue.h"
TEST_CASE("message queue capacity should be correct") {
MessageQueue* queue = tt_message_queue_alloc(10, 1);
uint32_t capacity = tt_message_queue_get_capacity(queue);
CHECK_EQ(capacity, 10);
tt_message_queue_free(queue);
}
TEST_CASE("message queue initial count should be 0") {
MessageQueue* queue = tt_message_queue_alloc(10, 1);
uint32_t count = tt_message_queue_get_count(queue);
CHECK_EQ(count, 0);
tt_message_queue_free(queue);
}
TEST_CASE("message queue size should be correct") {
MessageQueue* queue = tt_message_queue_alloc(1, 123);
uint32_t size = tt_message_queue_get_message_size(queue);
CHECK_EQ(size, 123);
tt_message_queue_free(queue);
}
TEST_CASE("message queue count should increase when message is added") {
MessageQueue* queue = tt_message_queue_alloc(10, sizeof(uint32_t));
uint32_t message = 123;
tt_message_queue_put(queue, &message, 100);
uint32_t count = tt_message_queue_get_count(queue);
CHECK_EQ(count, 1);
tt_message_queue_free(queue);
}
TEST_CASE("message queue count should be 0 when message is added and queue is reset") {
MessageQueue* queue = tt_message_queue_alloc(10, sizeof(uint32_t));
uint32_t message = 123;
tt_message_queue_put(queue, &message, 100);
tt_message_queue_reset(queue);
uint32_t count = tt_message_queue_get_count(queue);
CHECK_EQ(count, 0);
tt_message_queue_free(queue);
}
TEST_CASE("message queue consumption should work") {
MessageQueue* queue = tt_message_queue_alloc(10, sizeof(uint32_t));
uint32_t out_message = 123;
tt_message_queue_put(queue, &out_message, 100);
uint32_t in_message = 0;
tt_message_queue_get(queue, &in_message, 100);
CHECK_EQ(in_message, 123);
tt_message_queue_free(queue);
}
TEST_CASE("message queue count should decrease when message is consumed") {
MessageQueue* queue = tt_message_queue_alloc(10, sizeof(uint32_t));
uint32_t out_message = 123;
tt_message_queue_put(queue, &out_message, 100);
uint32_t in_message = 0;
tt_message_queue_get(queue, &in_message, 100);
uint32_t count = tt_message_queue_get_count(queue);
CHECK_EQ(count, 0);
tt_message_queue_free(queue);
}