1 #include "CppUTest/TestHarness.h"
2 #include "CppUTest/CommandLineTestRunner.h"
3
4 #include "hci_dump.h"
5 #include "btstack_util.h"
6
hci_dump_embedded_stdout_log_packet(uint8_t packet_type,uint8_t in,uint8_t * packet,uint16_t len)7 static void hci_dump_embedded_stdout_log_packet(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len){
8 }
hci_dump_embedded_stdout_log_message(int log_level,const char * format,va_list argptr)9 static void hci_dump_embedded_stdout_log_message(int log_level, const char * format, va_list argptr){
10 }
hci_dump_embedded_stdout_reset(void)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
TEST_GROUP(hci_dump)31 TEST_GROUP(hci_dump){
32 void setup(void){
33 }
34 void teardown(void){
35 }
36 };
37
TEST(hci_dump,init)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
TEST(hci_dump,log_level)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
TEST(hci_dump,log_not_enabled)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
TEST(hci_dump,log_reset)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
TEST(hci_dump,log_max_packets)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
TEST(hci_dump,header_setup_packetlogger)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
TEST(hci_dump,header_setup_bluez)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
TEST(hci_dump,header_setup_btsnoop)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
main(int argc,const char * argv[])107 int main (int argc, const char * argv[]){
108 return CommandLineTestRunner::RunAllTests(argc, argv);
109 }
110