diff --git a/test/mesh/mesh_message_test.c b/test/mesh/mesh_message_test.c index 4527c872e..b787c02ef 100644 --- a/test/mesh/mesh_message_test.c +++ b/test/mesh/mesh_message_test.c @@ -12,9 +12,36 @@ extern "C" int mock_process_hci_cmd(void); -void adv_bearer_register_for_mesh_message(btstack_packet_handler_t packet_handler){} -void adv_bearer_request_can_send_now_for_mesh_message(void){} -void adv_bearer_send_mesh_message(const uint8_t * network_pdu, uint16_t size){} +static mesh_network_pdu_t * received_network_pdu; +static mesh_network_pdu_t * received_unsegmented_transport_pdu; +static mesh_transport_pdu_t * received_segmented_transport_pdu; + +static uint8_t sent_network_pdu_data[29]; +static uint8_t sent_network_pdu_len; + +static btstack_packet_handler_t mesh_packet_handler; +void adv_bearer_register_for_mesh_message(btstack_packet_handler_t packet_handler){ + mesh_packet_handler = packet_handler; +} +void adv_bearer_request_can_send_now_for_mesh_message(void){ + // simulate can send now + uint8_t event[3]; + event[0] = HCI_EVENT_MESH_META; + event[1] = 1; + event[2] = MESH_SUBEVENT_CAN_SEND_NOW; + (*mesh_packet_handler)(HCI_EVENT_PACKET, 0, &event[0], sizeof(event)); +} +void adv_bearer_send_mesh_message(const uint8_t * network_pdu, uint16_t size){ + memcpy(sent_network_pdu_data, network_pdu, size); + sent_network_pdu_len = size; +} +void adv_bearer_emit_sent(void){ + uint8_t event[3]; + event[0] = HCI_EVENT_MESH_META; + event[1] = 1; + event[2] = MESH_SUBEVENT_CAN_SEND_NOW; + (*mesh_packet_handler)(HCI_EVENT_PACKET, 0, &event[0], sizeof(event)); +} void CHECK_EQUAL_ARRAY(uint8_t * expected, uint8_t * actual, int size){ int i; @@ -84,10 +111,6 @@ static void load_provisioning_data_test_message(void){ mesh_transport_set_device_key(device_key); } -static mesh_network_pdu_t * received_network_pdu; -static mesh_network_pdu_t * received_unsegmented_transport_pdu; -static mesh_transport_pdu_t * received_segmented_transport_pdu; - static void test_lower_transport_callback_handler(mesh_network_callback_type_t callback_type, mesh_network_pdu_t * network_pdu){ switch (callback_type){ case MESH_NETWORK_PDU_RECEIVED: @@ -120,16 +143,15 @@ TEST_GROUP(MessageTest){ received_network_pdu = NULL; received_segmented_transport_pdu = NULL; received_unsegmented_transport_pdu = NULL; + sent_network_pdu_len = 0; } }; static uint8_t transport_pdu_data[64]; static uint16_t transport_pdu_len; -static const char * transport_pdu_string; static uint8_t test_network_pdu_len; static uint8_t test_network_pdu_data[29]; -static const char * test_network_pdu_string; char * message1_network_pdus[] = { @@ -150,7 +172,7 @@ char * message6_lower_transport_pdus[] = { }; char * message6_upper_transport_pdu = (char *) "0056341263964771734fbd76e3b40519d1d94a48"; -void inject_network_pdus(int count, char ** network_pdus, char ** lower_transport_pdus, char * access_pdu){ +void test_receive_network_puds(int count, char ** network_pdus, char ** lower_transport_pdus, char * access_pdu){ int i; for (i=0;i