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