xref: /btstack/test/embedded/freertos_test.cpp (revision 4902524cc6a45a01cfead054f48b6584dbb1f1cc)
1 #include <stdint.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5 
6 #include "CppUTest/TestHarness.h"
7 #include "CppUTest/CommandLineTestRunner.h"
8 
9 #include "ble/att_db.h"
10 #include "ble/att_db_util.h"
11 #include "btstack_util.h"
12 #include "bluetooth.h"
13 #include "btstack_audio.h"
14 
15 #include "hal_audio.h"
16 #include "hal_cpu.h"
17 #include "hal_em9304_spi.h"
18 #include "hal_flash_bank.h"
19 #include "hal_flash_bank_memory.h"
20 #include "hal_led.h"
21 #include "hal_stdin.h"
22 #include "hal_tick.h"
23 #include "hal_time_ms.h"
24 #include "hal_uart_dma.h"
25 
26 #include "queue.h"
27 #include "task.h"
28 #include "event_groups.h"
29 
30 // quick mock to add freertos support to coverage
31 
32 // hal_cpu
hal_cpu_disable_irqs(void)33 void hal_cpu_disable_irqs(void){}
hal_cpu_enable_irqs(void)34 void hal_cpu_enable_irqs(void){}
hal_cpu_enable_irqs_and_sleep(void)35 void hal_cpu_enable_irqs_and_sleep(void){}
36 
37 // hal_em9304_spi
hal_em9304_spi_init(void)38 void hal_em9304_spi_init(void){}
hal_em9304_spi_deinit(void)39 void hal_em9304_spi_deinit(void){}
hal_em9304_spi_set_ready_callback(void (* callback)(void))40 void hal_em9304_spi_set_ready_callback(void (*callback)(void)){}
hal_em9304_spi_set_transfer_done_callback(void (* callback)(void))41 void hal_em9304_spi_set_transfer_done_callback(void (*callback)(void)){}
hal_em9304_spi_enable_ready_interrupt(void)42 void hal_em9304_spi_enable_ready_interrupt(void){}
hal_em9304_spi_disable_ready_interrupt(void)43 void hal_em9304_spi_disable_ready_interrupt(void){}
hal_em9304_spi_get_ready()44 int  hal_em9304_spi_get_ready(){ return 0; }
hal_em9304_spi_set_chip_select(int enable)45 void hal_em9304_spi_set_chip_select(int enable){}
hal_em9304_spi_get_fullduplex_support(void)46 int  hal_em9304_spi_get_fullduplex_support(void){ return 0; }
hal_em9304_spi_transceive(const uint8_t * tx_data,uint8_t * rx_data,uint16_t len)47 void hal_em9304_spi_transceive(const uint8_t * tx_data, uint8_t * rx_data, uint16_t len){}
hal_em9304_spi_transmit(const uint8_t * tx_data,uint16_t len)48 void hal_em9304_spi_transmit(const uint8_t * tx_data, uint16_t len){}
hal_em9304_spi_receive(uint8_t * rx_data,uint16_t len)49 void hal_em9304_spi_receive(uint8_t * rx_data, uint16_t len){}
50 
51 // hal_stdin_setup
hal_stdin_setup(void (* handler)(char c))52 void hal_stdin_setup(void (*handler)(char c)){}
53 
54 // hal_uart_dma
hal_uart_dma_init(void)55 void hal_uart_dma_init(void){}
hal_uart_dma_set_block_received(void (* callback)(void))56 void hal_uart_dma_set_block_received( void (*callback)(void)){}
hal_uart_dma_set_block_sent(void (* callback)(void))57 void hal_uart_dma_set_block_sent( void (*callback)(void)){}
hal_uart_dma_set_baud(uint32_t baud)58 int  hal_uart_dma_set_baud(uint32_t baud){ return 0; }
hal_uart_dma_set_flowcontrol(int flowcontrol)59 int  hal_uart_dma_set_flowcontrol(int flowcontrol){ return 0;}
hal_uart_dma_send_block(const uint8_t * buffer,uint16_t length)60 void hal_uart_dma_send_block(const uint8_t *buffer, uint16_t length){}
hal_uart_dma_receive_block(uint8_t * buffer,uint16_t len)61 void hal_uart_dma_receive_block(uint8_t *buffer, uint16_t len){}
hal_uart_dma_set_csr_irq_handler(void (* csr_irq_handler)(void))62 void hal_uart_dma_set_csr_irq_handler( void (*csr_irq_handler)(void)){}
hal_uart_dma_set_sleep(uint8_t sleep)63 void hal_uart_dma_set_sleep(uint8_t sleep){}
hal_uart_dma_get_supported_sleep_modes(void)64 int  hal_uart_dma_get_supported_sleep_modes(void){ return 0; }
65 // void hal_uart_dma_set_sleep_mode(btstack_uart_sleep_mode_t sleep_mode){}
66 
67 // hal_audio_sink
hal_audio_sink_init(uint8_t channels,uint32_t sample_rate,void (* buffer_played_callback)(uint8_t buffer_index))68 void hal_audio_sink_init(uint8_t channels, uint32_t sample_rate,void (*buffer_played_callback)(uint8_t buffer_index)){}
hal_audio_sink_get_num_output_buffers(void)69 uint16_t hal_audio_sink_get_num_output_buffers(void){ return 0; }
hal_audio_sink_get_num_output_buffer_samples(void)70 uint16_t hal_audio_sink_get_num_output_buffer_samples(void){ return 0; }
hal_audio_sink_get_output_buffer(uint8_t buffer_index)71 int16_t * hal_audio_sink_get_output_buffer(uint8_t buffer_index){ return NULL; }
hal_audio_sink_start(void)72 void hal_audio_sink_start(void){}
hal_audio_sink_stop(void)73 void hal_audio_sink_stop(void){}
hal_audio_sink_close(void)74 void hal_audio_sink_close(void){}
hal_audio_source_init(uint8_t channels,uint32_t sample_rate,void (* buffer_recorded_callback)(const int16_t * buffer,uint16_t num_samples))75 void hal_audio_source_init(uint8_t channels, uint32_t sample_rate, void (*buffer_recorded_callback)(const int16_t * buffer, uint16_t num_samples)){}
hal_audio_source_start(void)76 void hal_audio_source_start(void){}
hal_audio_source_stop(void)77 void hal_audio_source_stop(void){}
hal_audio_source_close(void)78 void hal_audio_source_close(void){}
79 
80 // hal_time_ms
hal_time_ms(void)81 uint32_t hal_time_ms(void){ return 0; }
82 
xQueueSendToBack(QueueHandle_t xQueue,const void * pvItemToQueue,TickType_t xTicksToWait)83 BaseType_t xQueueSendToBack(QueueHandle_t xQueue, const void * pvItemToQueue, TickType_t xTicksToWait){
84 	return 0;
85 }
xQueueSendToBackFromISR(QueueHandle_t xQueue,const void * pvItemToQueue,BaseType_t * pxHigherPriorityTaskWoken)86 BaseType_t xQueueSendToBackFromISR(QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t *pxHigherPriorityTaskWoken){
87 	return 0;
88 }
xQueueReceive(QueueHandle_t xQueue,void * pvBuffer,TickType_t xTicksToWait)89 BaseType_t xQueueReceive(QueueHandle_t xQueue,void *pvBuffer,TickType_t xTicksToWait){
90 	return 0;
91 }
xQueueCreateStatic(UBaseType_t uxQueueLength,UBaseType_t uxItemSize,uint8_t * pucQueueStorageBuffer,StaticQueue_t * pxQueueBuffer)92 QueueHandle_t xQueueCreateStatic( UBaseType_t uxQueueLength, UBaseType_t uxItemSize, uint8_t *pucQueueStorageBuffer, StaticQueue_t *pxQueueBuffer ){
93 	return 0;
94 }
95 
xEventGroupCreate(void)96 EventGroupHandle_t xEventGroupCreate( void ){
97 	return 0;
98 }
xEventGroupSetBits(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet)99 EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ){
100 	return 0;
101 }
xEventGroupSetBitsFromISR(EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToSet,BaseType_t * pxHigherPriorityTaskWoken)102 BaseType_t xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, BaseType_t *pxHigherPriorityTaskWoken ){
103 	return 0;
104 }
xEventGroupWaitBits(const EventGroupHandle_t xEventGroup,const EventBits_t uxBitsToWaitFor,const BaseType_t xClearOnExit,const BaseType_t xWaitForAllBits,TickType_t xTicksToWait)105 EventBits_t xEventGroupWaitBits( const EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ){
106 	return 0;
107 }
xTaskGetCurrentTaskHandle(void)108 TaskHandle_t xTaskGetCurrentTaskHandle( void ){
109 	return 0;
110 }
111 
TEST_GROUP(FreeRTOS)112 TEST_GROUP(FreeRTOS){
113     void setup(void){
114     }
115 };
116 
TEST(FreeRTOS,Init)117 TEST(FreeRTOS, Init){
118 
119 }
120 
main(int argc,const char * argv[])121 int main (int argc, const char * argv[]){
122     return CommandLineTestRunner::RunAllTests(argc, argv);
123 }
124