xref: /btstack/test/embedded/hci_dump_test.cpp (revision 0a29b348938b19ae9b0e15209680646862bf0aa3)
14902524cSMatthias Ringwald #include "CppUTest/TestHarness.h"
24902524cSMatthias Ringwald #include "CppUTest/CommandLineTestRunner.h"
34902524cSMatthias Ringwald 
44902524cSMatthias Ringwald #include "hci_dump.h"
54902524cSMatthias Ringwald #include "btstack_util.h"
64902524cSMatthias Ringwald 
hci_dump_embedded_stdout_log_packet(uint8_t packet_type,uint8_t in,uint8_t * packet,uint16_t len)74902524cSMatthias Ringwald static void hci_dump_embedded_stdout_log_packet(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len){
84902524cSMatthias Ringwald }
hci_dump_embedded_stdout_log_message(int log_level,const char * format,va_list argptr)9*0a29b348SMatthias Ringwald static void hci_dump_embedded_stdout_log_message(int log_level, const char * format, va_list argptr){
104902524cSMatthias Ringwald }
hci_dump_embedded_stdout_reset(void)114902524cSMatthias Ringwald static void hci_dump_embedded_stdout_reset(void){}
124902524cSMatthias Ringwald 
134902524cSMatthias Ringwald static const hci_dump_t hci_dump_instance_without_reset = {
144902524cSMatthias Ringwald     // void (*reset)(void);
154902524cSMatthias Ringwald     NULL,
164902524cSMatthias Ringwald     // void (*log_packet)(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len);
174902524cSMatthias Ringwald     &hci_dump_embedded_stdout_log_packet,
184902524cSMatthias Ringwald     // void (*log_message)(int log_level, const char * format, va_list argptr);
194902524cSMatthias Ringwald     &hci_dump_embedded_stdout_log_message,
204902524cSMatthias Ringwald };
214902524cSMatthias Ringwald 
224902524cSMatthias Ringwald static const hci_dump_t hci_dump_instance_with_reset = {
234902524cSMatthias Ringwald         // void (*reset)(void);
244902524cSMatthias Ringwald         &hci_dump_embedded_stdout_reset,
254902524cSMatthias Ringwald         // void (*log_packet)(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len);
264902524cSMatthias Ringwald         &hci_dump_embedded_stdout_log_packet,
274902524cSMatthias Ringwald         // void (*log_message)(int log_level, const char * format, va_list argptr);
284902524cSMatthias Ringwald         &hci_dump_embedded_stdout_log_message,
294902524cSMatthias Ringwald };
304902524cSMatthias Ringwald 
TEST_GROUP(hci_dump)314902524cSMatthias Ringwald TEST_GROUP(hci_dump){
324902524cSMatthias Ringwald         void setup(void){
334902524cSMatthias Ringwald         }
344902524cSMatthias Ringwald         void teardown(void){
354902524cSMatthias Ringwald         }
364902524cSMatthias Ringwald };
374902524cSMatthias Ringwald 
TEST(hci_dump,init)384902524cSMatthias Ringwald TEST(hci_dump, init){
394902524cSMatthias Ringwald     hci_dump_init(&hci_dump_instance_without_reset);
404902524cSMatthias Ringwald     hci_dump_set_max_packets(0);
414902524cSMatthias Ringwald     hci_dump_enable_packet_log(false);
424902524cSMatthias Ringwald }
434902524cSMatthias Ringwald 
TEST(hci_dump,log_level)444902524cSMatthias Ringwald TEST(hci_dump, log_level){
454902524cSMatthias Ringwald     hci_dump_init(&hci_dump_instance_without_reset);
464902524cSMatthias Ringwald     hci_dump_log(HCI_DUMP_LOG_LEVEL_DEBUG - 1, "");
474902524cSMatthias Ringwald     hci_dump_log(HCI_DUMP_LOG_LEVEL_ERROR + 1, "");
484902524cSMatthias Ringwald     hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_DEBUG - 1, 0);
494902524cSMatthias Ringwald     hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_ERROR + 1, 0);
504902524cSMatthias Ringwald     hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_ERROR, 1);
514902524cSMatthias Ringwald }
524902524cSMatthias Ringwald 
TEST(hci_dump,log_not_enabled)534902524cSMatthias Ringwald TEST(hci_dump, log_not_enabled){
544902524cSMatthias Ringwald     hci_dump_init(&hci_dump_instance_without_reset);
554902524cSMatthias Ringwald     hci_dump_enable_packet_log(false);
564902524cSMatthias Ringwald     hci_dump_packet(0, 0, NULL, 0);
574902524cSMatthias Ringwald }
584902524cSMatthias Ringwald 
TEST(hci_dump,log_reset)594902524cSMatthias Ringwald TEST(hci_dump, log_reset){
604902524cSMatthias Ringwald     hci_dump_init(&hci_dump_instance_without_reset);
614902524cSMatthias Ringwald     hci_dump_set_max_packets(1);
624902524cSMatthias Ringwald     hci_dump_packet(0, 0, NULL, 0);
634902524cSMatthias Ringwald     hci_dump_packet(0, 0, NULL, 0);
644902524cSMatthias Ringwald }
654902524cSMatthias Ringwald 
TEST(hci_dump,log_max_packets)664902524cSMatthias Ringwald TEST(hci_dump, log_max_packets){
674902524cSMatthias Ringwald     hci_dump_init(&hci_dump_instance_with_reset);
684902524cSMatthias Ringwald     hci_dump_set_max_packets(1);
694902524cSMatthias Ringwald     hci_dump_packet(0, 0, NULL, 0);
704902524cSMatthias Ringwald     hci_dump_packet(0, 0, NULL, 0);
714902524cSMatthias Ringwald }
724902524cSMatthias Ringwald 
TEST(hci_dump,header_setup_packetlogger)734902524cSMatthias Ringwald TEST(hci_dump, header_setup_packetlogger){
744902524cSMatthias Ringwald     uint8_t buffer[100];
754902524cSMatthias Ringwald     hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
764902524cSMatthias Ringwald     hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_ACL_DATA_PACKET, 0, 0);
774902524cSMatthias Ringwald     hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_SCO_DATA_PACKET, 0, 0);
784902524cSMatthias Ringwald     hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_EVENT_PACKET, 0, 0);
794902524cSMatthias Ringwald     hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
804902524cSMatthias Ringwald     hci_dump_setup_header_packetlogger(buffer, 0, 0, LOG_MESSAGE_PACKET, 0, 0);
814902524cSMatthias Ringwald     hci_dump_setup_header_packetlogger(buffer, 0, 0, 0x77, 0, 0);
824902524cSMatthias Ringwald }
834902524cSMatthias Ringwald 
TEST(hci_dump,header_setup_bluez)844902524cSMatthias Ringwald TEST(hci_dump, header_setup_bluez){
854902524cSMatthias Ringwald     uint8_t buffer[100];
864902524cSMatthias Ringwald     hci_dump_setup_header_bluez(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
874902524cSMatthias Ringwald     hci_dump_setup_header_bluez(buffer, 0, 0, HCI_ACL_DATA_PACKET, 0, 0);
884902524cSMatthias Ringwald     hci_dump_setup_header_bluez(buffer, 0, 0, HCI_SCO_DATA_PACKET, 0, 0);
894902524cSMatthias Ringwald     hci_dump_setup_header_bluez(buffer, 0, 0, HCI_EVENT_PACKET, 0, 0);
904902524cSMatthias Ringwald     hci_dump_setup_header_bluez(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
914902524cSMatthias Ringwald     hci_dump_setup_header_bluez(buffer, 0, 0, LOG_MESSAGE_PACKET, 0, 0);
924902524cSMatthias Ringwald     hci_dump_setup_header_bluez(buffer, 0, 0, 0x77, 0, 0);
934902524cSMatthias Ringwald }
944902524cSMatthias Ringwald 
TEST(hci_dump,header_setup_btsnoop)954902524cSMatthias Ringwald TEST(hci_dump, header_setup_btsnoop){
964902524cSMatthias Ringwald     uint8_t buffer[100];
974902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
984902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_ACL_DATA_PACKET, 0, 0);
994902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_ACL_DATA_PACKET, 1, 0);
1004902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_SCO_DATA_PACKET, 0, 0);
1014902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_EVENT_PACKET, 0, 0);
1024902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
1034902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, LOG_MESSAGE_PACKET, 0, 0);
1044902524cSMatthias Ringwald     hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, 0x77, 0, 0);
1054902524cSMatthias Ringwald }
1064902524cSMatthias Ringwald 
main(int argc,const char * argv[])1074902524cSMatthias Ringwald int main (int argc, const char * argv[]){
1084902524cSMatthias Ringwald     return CommandLineTestRunner::RunAllTests(argc, argv);
1094902524cSMatthias Ringwald }
110