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