xref: /btstack/test/embedded/l2cap_le_signaling_test.cpp (revision 4a9eead824c50b40e12b6f72611a74a3f57a47f6)
1 #include "CppUTest/TestHarness.h"
2 #include "CppUTest/CommandLineTestRunner.h"
3 
4 #include "l2cap_signaling.h"
5 
6 TEST_GROUP(L2CAP_LE_Signaling){
7     void setup(void){
8     }
9     void teardown(void){
10     }
11 };
12 
13 static uint16_t l2cap_send_le_signaling_packet(hci_con_handle_t handle, L2CAP_SIGNALING_COMMANDS cmd, int identifier, ...){
14     static uint8_t acl_buffer[100];
15     va_list argptr;
16     va_start(argptr, identifier);
17     uint16_t len = l2cap_create_signaling_packet(acl_buffer, handle, 0x00, L2CAP_CID_SIGNALING_LE, cmd, identifier, argptr);
18     va_end(argptr);
19     return len;
20 }
21 
22 #if 0
23 // invalid cmds trigger assert
24 TEST(L2CAP_LE_Signaling, l2cap_create_signaling_le_invalid_cmd){
25     uint16_t size = l2cap_send_le_signaling_packet((hci_con_handle_t) 0x01, (L2CAP_SIGNALING_COMMANDS)(CONNECTION_PARAMETER_UPDATE_REQUEST-1), 1);
26     CHECK_EQUAL(0, size);
27 }
28 
29 TEST(L2CAP_LE_Signaling, l2cap_create_signaling_le_invalid_cmd_0){
30     uint16_t size = l2cap_send_le_signaling_packet((hci_con_handle_t) 0x01, (L2CAP_SIGNALING_COMMANDS)0, 1);
31     CHECK_EQUAL(0, size);
32 }
33 
34 TEST(L2CAP_LE_Signaling, l2cap_create_signaling_le_invalid_cmd_FF){
35     uint16_t size = l2cap_send_le_signaling_packet((hci_con_handle_t) 0x01, (L2CAP_SIGNALING_COMMANDS)0xFF, 1);
36     CHECK_EQUAL(0, size);
37 }
38 #endif
39 
40 TEST(L2CAP_LE_Signaling, l2cap_create_signaling_le_invalid_cmd_M_format){
41     uint16_t size = l2cap_send_le_signaling_packet((hci_con_handle_t) 0x01, COMMAND_WITH_INVALID_FORMAT, 1);
42     CHECK_EQUAL(12, size);
43 }
44 
45 TEST(L2CAP_LE_Signaling, l2cap_create_signaling_le_valid_cmd_2_format){
46     uint16_t size = l2cap_send_le_signaling_packet((hci_con_handle_t) 0x01, INFORMATION_REQUEST, 1, 0);
47     CHECK_EQUAL(14, size);
48 }
49 
50 TEST(L2CAP_LE_Signaling, l2cap_create_signaling_le_valid_cmd_C_format){
51     uint16_t cids[2] = { 0x3333, 0xffff };
52     uint16_t size = l2cap_send_le_signaling_packet((hci_con_handle_t) 0x01, L2CAP_CREDIT_BASED_RECONFIGURE_REQUEST, 1, 0x1111, 0x2222, cids);
53     CHECK_EQUAL(18, size);
54 }
55 
56 TEST(L2CAP_LE_Signaling, l2cap_create_signaling_le_valid_cmd_D_format){
57     uint16_t size = l2cap_send_le_signaling_packet((hci_con_handle_t) 0x01, ECHO_REQUEST, 1, 0, NULL);
58     CHECK_EQUAL(12, size);
59 }
60 
61 int main (int argc, const char * argv[]){
62     return CommandLineTestRunner::RunAllTests(argc, argv);
63 }
64