1 #include "CppUTest/TestHarness.h" 2 #include "CppUTest/CommandLineTestRunner.h" 3 4 #include "hci_dump.h" 5 #include "btstack_util.h" 6 7 static void hci_dump_embedded_stdout_log_packet(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len){ 8 } 9 static void hci_dump_embedded_stdout_log_message(int log_level, const char * format, va_list argptr){ 10 } 11 static void hci_dump_embedded_stdout_reset(void){} 12 13 static const hci_dump_t hci_dump_instance_without_reset = { 14 // void (*reset)(void); 15 NULL, 16 // void (*log_packet)(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len); 17 &hci_dump_embedded_stdout_log_packet, 18 // void (*log_message)(int log_level, const char * format, va_list argptr); 19 &hci_dump_embedded_stdout_log_message, 20 }; 21 22 static const hci_dump_t hci_dump_instance_with_reset = { 23 // void (*reset)(void); 24 &hci_dump_embedded_stdout_reset, 25 // void (*log_packet)(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len); 26 &hci_dump_embedded_stdout_log_packet, 27 // void (*log_message)(int log_level, const char * format, va_list argptr); 28 &hci_dump_embedded_stdout_log_message, 29 }; 30 31 TEST_GROUP(hci_dump){ 32 void setup(void){ 33 } 34 void teardown(void){ 35 } 36 }; 37 38 TEST(hci_dump, init){ 39 hci_dump_init(&hci_dump_instance_without_reset); 40 hci_dump_set_max_packets(0); 41 hci_dump_enable_packet_log(false); 42 } 43 44 TEST(hci_dump, log_level){ 45 hci_dump_init(&hci_dump_instance_without_reset); 46 hci_dump_log(HCI_DUMP_LOG_LEVEL_DEBUG - 1, ""); 47 hci_dump_log(HCI_DUMP_LOG_LEVEL_ERROR + 1, ""); 48 hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_DEBUG - 1, 0); 49 hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_ERROR + 1, 0); 50 hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_ERROR, 1); 51 } 52 53 TEST(hci_dump, log_not_enabled){ 54 hci_dump_init(&hci_dump_instance_without_reset); 55 hci_dump_enable_packet_log(false); 56 hci_dump_packet(0, 0, NULL, 0); 57 } 58 59 TEST(hci_dump, log_reset){ 60 hci_dump_init(&hci_dump_instance_without_reset); 61 hci_dump_set_max_packets(1); 62 hci_dump_packet(0, 0, NULL, 0); 63 hci_dump_packet(0, 0, NULL, 0); 64 } 65 66 TEST(hci_dump, log_max_packets){ 67 hci_dump_init(&hci_dump_instance_with_reset); 68 hci_dump_set_max_packets(1); 69 hci_dump_packet(0, 0, NULL, 0); 70 hci_dump_packet(0, 0, NULL, 0); 71 } 72 73 TEST(hci_dump, header_setup_packetlogger){ 74 uint8_t buffer[100]; 75 hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0); 76 hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_ACL_DATA_PACKET, 0, 0); 77 hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_SCO_DATA_PACKET, 0, 0); 78 hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_EVENT_PACKET, 0, 0); 79 hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0); 80 hci_dump_setup_header_packetlogger(buffer, 0, 0, LOG_MESSAGE_PACKET, 0, 0); 81 hci_dump_setup_header_packetlogger(buffer, 0, 0, 0x77, 0, 0); 82 } 83 84 TEST(hci_dump, header_setup_bluez){ 85 uint8_t buffer[100]; 86 hci_dump_setup_header_bluez(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0); 87 hci_dump_setup_header_bluez(buffer, 0, 0, HCI_ACL_DATA_PACKET, 0, 0); 88 hci_dump_setup_header_bluez(buffer, 0, 0, HCI_SCO_DATA_PACKET, 0, 0); 89 hci_dump_setup_header_bluez(buffer, 0, 0, HCI_EVENT_PACKET, 0, 0); 90 hci_dump_setup_header_bluez(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0); 91 hci_dump_setup_header_bluez(buffer, 0, 0, LOG_MESSAGE_PACKET, 0, 0); 92 hci_dump_setup_header_bluez(buffer, 0, 0, 0x77, 0, 0); 93 } 94 95 TEST(hci_dump, header_setup_btsnoop){ 96 uint8_t buffer[100]; 97 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0); 98 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_ACL_DATA_PACKET, 0, 0); 99 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_ACL_DATA_PACKET, 1, 0); 100 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_SCO_DATA_PACKET, 0, 0); 101 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_EVENT_PACKET, 0, 0); 102 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0); 103 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, LOG_MESSAGE_PACKET, 0, 0); 104 hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, 0x77, 0, 0); 105 } 106 107 int main (int argc, const char * argv[]){ 108 return CommandLineTestRunner::RunAllTests(argc, argv); 109 } 110