xref: /btstack/test/embedded/hci_dump_test.cpp (revision cbf509016daa1295a6a8b22d7314db50b88c6c9a)
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