diff --git a/test/gatt_client/gatt_client.c b/test/gatt_client/gatt_client.c index 0bd400b05..8b38e9257 100644 --- a/test/gatt_client/gatt_client.c +++ b/test/gatt_client/gatt_client.c @@ -61,7 +61,7 @@ uint8_t characteristic_uuid128[] = {0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x10, 0 uint16_t characteristic_uuid16 = 0xF000; static int result_index; -static uint8_t result_found; +static uint8_t result_counter; static le_service_t services[50]; static le_service_t included_services[50]; @@ -142,7 +142,7 @@ static void verify_blob(uint16_t value_length, uint16_t value_offset, uint8_t * CHECK(value_length); CHECK_EQUAL_ARRAY(expected_value, value, value_length); if (value_offset + value_length != sizeof(long_value)) return; - result_found++; + result_counter++; } static void handle_ble_client_event(le_event_t * event){ @@ -150,37 +150,37 @@ static void handle_ble_client_event(le_event_t * event){ switch(event->type){ case GATT_SERVICE_QUERY_RESULT: services[result_index++] = ((le_service_event_t *) event)->service; - result_found++; + result_counter++; break; case GATT_INCLUDED_SERVICE_QUERY_RESULT: included_services[result_index++] = ((le_service_event_t *) event)->service; - result_found++; + result_counter++; break; case GATT_CHARACTERISTIC_QUERY_RESULT:{ characteristics[result_index++] = ((le_characteristic_event_t *) event)->characteristic; - result_found++; + result_counter++; break; } case GATT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT:{ le_characteristic_descriptor_event *descriptor_event = (le_characteristic_descriptor_event_t *) event; descriptors[result_index++] = descriptor_event->characteristic_descriptor; - result_found++; + result_counter++; break; } case GATT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT: { le_characteristic_descriptor_event *descriptor_event = (le_characteristic_descriptor_event_t *) event; CHECK_EQUAL(short_value_length, descriptor_event->value_length); CHECK_EQUAL_ARRAY((uint8_t*)short_value, descriptor_event->value, short_value_length); - result_found++; + result_counter++; break; } case GATT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT:{ le_characteristic_descriptor_event_t *descriptor_event = (le_characteristic_descriptor_event_t *) event; verify_blob(descriptor_event->value_length, descriptor_event->value_offset, descriptor_event->value); - result_found++; + result_counter++; break; } @@ -188,13 +188,13 @@ static void handle_ble_client_event(le_event_t * event){ le_characteristic_value_event *cs = (le_characteristic_value_event *) event; CHECK_EQUAL(short_value_length, cs->blob_length); CHECK_EQUAL_ARRAY((uint8_t*)short_value, cs->blob, short_value_length); - result_found++; + result_counter++; break; } case GATT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT:{ le_characteristic_value_event *cl = (le_characteristic_value_event *) event; verify_blob(cl->blob_length, cl->value_offset, cl->blob); - result_found++; + result_counter++; break; } default: @@ -210,13 +210,13 @@ extern "C" int att_write_callback(uint16_t con_handle, uint16_t attribute_handle CHECK_EQUAL(ATT_TRANSACTION_MODE_NONE, transaction_mode); CHECK_EQUAL(0, offset); CHECK_EQUAL_ARRAY(indication, buffer, 2); - result_found++; + result_counter++; break; case WRITE_CHARACTERISTIC_VALUE: CHECK_EQUAL(ATT_TRANSACTION_MODE_NONE, transaction_mode); CHECK_EQUAL(0, offset); CHECK_EQUAL_ARRAY((uint8_t *)short_value, buffer, short_value_length); - result_found++; + result_counter++; break; case WRITE_LONG_CHARACTERISTIC_DESCRIPTOR: case WRITE_LONG_CHARACTERISTIC_VALUE: @@ -225,7 +225,7 @@ extern "C" int att_write_callback(uint16_t con_handle, uint16_t attribute_handle CHECK_EQUAL(ATT_TRANSACTION_MODE_ACTIVE, transaction_mode); CHECK_EQUAL_ARRAY((uint8_t *)&long_value[offset], buffer, buffer_size); if (offset + buffer_size != sizeof(long_value)) break; - result_found++; + result_counter++; break; default: break; @@ -242,21 +242,18 @@ int copy_bytes(uint8_t * value, uint16_t value_length, uint16_t offset, uint8_t } extern "C" uint16_t att_read_callback(uint16_t handle, uint16_t attribute_handle, uint16_t offset, uint8_t * buffer, uint16_t buffer_size){ + //printf("gatt client test, att_read_callback_t handle 0x%04x, offset %u, buffer %p, buffer_size %u\n", handle, offset, buffer, buffer_size); switch(test){ case READ_CHARACTERISTIC_DESCRIPTOR: case READ_CHARACTERISTIC_VALUE: - result_found++; - if (test== READ_CHARACTERISTIC_DESCRIPTOR){ - printf("gatt client test, att_read_callback_t handle 0x%04x, offset %u, buffer %p, buffer_size %u\n", handle, offset, buffer, buffer_size); - printf("result_found %d\n", result_found); - } + result_counter++; if (buffer){ return copy_bytes((uint8_t *)short_value, short_value_length, offset, buffer, buffer_size); } return short_value_length; case READ_LONG_CHARACTERISTIC_DESCRIPTOR: case READ_LONG_CHARACTERISTIC_VALUE: - result_found++; + result_counter++; if (buffer) { return copy_bytes((uint8_t *)long_value, long_value_length, offset, buffer, buffer_size); } @@ -273,7 +270,7 @@ TEST_GROUP(GATTClient){ uint8_t acl_buffer[27]; void setup(){ - result_found = 0; + result_counter = 0; result_index = 0; test = IDLE; @@ -285,8 +282,8 @@ TEST_GROUP(GATTClient){ gatt_client_register_packet_handler(handle_ble_client_event); } - void set_query_step(){ - result_found = 0; + void reset_query_state(){ + result_counter = 0; result_index = 0; } }; @@ -295,7 +292,7 @@ TEST_GROUP(GATTClient){ TEST(GATTClient, TestDiscoverPrimaryServices){ test = DISCOVER_PRIMARY_SERVICES; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services(gatt_client_handle); verify_primary_services(); } @@ -303,37 +300,36 @@ TEST(GATTClient, TestDiscoverPrimaryServices){ TEST(GATTClient, TestDiscoverPrimaryServicesByUUID16){ test = DISCOVER_PRIMARY_SERVICE_WITH_UUID16; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); verify_primary_services_with_uuid16(); } TEST(GATTClient, TestDiscoverPrimaryServicesByUUID128){ test = DISCOVER_PRIMARY_SERVICE_WITH_UUID128; gatt_client_discover_primary_services_by_uuid128(gatt_client_handle, primary_service_uuid128); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); verify_primary_services_with_uuid128(); } TEST(GATTClient, TestFindIncludedServicesForServiceWithUUID16){ test = DISCOVER_INCLUDED_SERVICE_FOR_SERVICE_WITH_UUID16; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - set_query_step(); - result_index = 0; + reset_query_state(); gatt_client_find_included_services_for_service(gatt_client_handle, &services[0]); verify_included_services_uuid16(); } TEST(GATTClient, TestFindIncludedServicesForServiceWithUUID128){ test = DISCOVER_INCLUDED_SERVICE_FOR_SERVICE_WITH_UUID128; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid128(gatt_client_handle, primary_service_uuid128); - set_query_step(); + reset_query_state(); gatt_client_find_included_services_for_service(gatt_client_handle, &services[0]); verify_included_services_uuid128(); } @@ -342,10 +338,10 @@ TEST(GATTClient, TestFindIncludedServicesForServiceWithUUID128){ TEST(GATTClient, TestDiscoverCharacteristicsForService){ test = DISCOVER_CHARACTERISTICS_FOR_SERVICE_WITH_UUID16; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service(gatt_client_handle, &services[0]); verify_charasteristics(); } @@ -353,67 +349,67 @@ TEST(GATTClient, TestDiscoverCharacteristicsForService){ TEST(GATTClient, TestDiscoverCharacteristicsByUUID16){ test = DISCOVER_CHARACTERISTICS_BY_UUID16; - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_handle_range_by_uuid16(gatt_client_handle, 0x30, 0x32, 0xF102); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestDiscoverCharacteristicsByUUID128){ test = DISCOVER_CHARACTERISTICS_BY_UUID128; - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_handle_range_by_uuid128(gatt_client_handle, characteristic_handles[1][0], characteristic_handles[1][1], characteristic_uuids[1]); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestDiscoverCharacteristics4ServiceByUUID128){ test = DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid128(gatt_client_handle, primary_service_uuid128); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); uint8_t characteristic_uuid[] = {0x00, 0x00, 0xF2, 0x01, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB}; gatt_client_discover_characteristics_for_service_by_uuid128(gatt_client_handle, &services[0], characteristic_uuid); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF200); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestDiscoverCharacteristics4ServiceByUUID16){ test = DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); uint8_t characteristic_uuid[]= { 0x00, 0x00, 0xF1, 0x05, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB}; gatt_client_discover_characteristics_for_service_by_uuid128(gatt_client_handle, &services[0], characteristic_uuid); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestDiscoverCharacteristicDescriptor){ test = DISCOVER_CHARACTERISTIC_DESCRIPTORS; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristic_descriptors(gatt_client_handle, &characteristics[0]); - CHECK(result_found); + CHECK(result_counter); CHECK_EQUAL(3, result_index); CHECK_EQUAL(0x2902, descriptors[0].uuid16); CHECK_EQUAL(0x2900, descriptors[1].uuid16); @@ -422,181 +418,181 @@ TEST(GATTClient, TestDiscoverCharacteristicDescriptor){ TEST(GATTClient, TestReadCharacteristicDescriptor){ test = READ_CHARACTERISTIC_DESCRIPTOR; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristic_descriptors(gatt_client_handle, &characteristics[0]); - CHECK_EQUAL(result_found, 3); + CHECK_EQUAL(result_counter, 3); - set_query_step(); + reset_query_state(); gatt_client_read_characteristic_descriptor(gatt_client_handle, &descriptors[0]); - CHECK_EQUAL(result_found, 3); + CHECK_EQUAL(result_counter, 3); } TEST(GATTClient, TestWriteCharacteristicDescriptor){ test = WRITE_CHARACTERISTIC_DESCRIPTOR; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristic_descriptors(gatt_client_handle, &characteristics[0]); - CHECK_EQUAL(result_found, 3); + CHECK_EQUAL(result_counter, 3); - set_query_step(); + reset_query_state(); gatt_client_write_characteristic_descriptor(gatt_client_handle, &descriptors[0], sizeof(indication), indication); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestWriteClientCharacteristicConfiguration){ test = WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_write_client_characteristic_configuration(gatt_client_handle, &characteristics[0], GATT_CLIENT_CHARACTERISTICS_CONFIGURATION_NOTIFICATION); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestReadLongCharacteristicDescriptor){ test = READ_LONG_CHARACTERISTIC_DESCRIPTOR; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid128(gatt_client_handle, primary_service_uuid128); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF200); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristic_descriptors(gatt_client_handle, &characteristics[0]); - CHECK_EQUAL(result_found, 3); + CHECK_EQUAL(result_counter, 3); - result_found = 0; + result_counter = 0; gatt_client_read_long_characteristic_descriptor(gatt_client_handle, &descriptors[0]); - CHECK_EQUAL(result_found, 7); + CHECK_EQUAL(result_counter, 7); } TEST(GATTClient, TestWriteLongCharacteristicDescriptor){ test = WRITE_LONG_CHARACTERISTIC_DESCRIPTOR; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid128(gatt_client_handle, primary_service_uuid128); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF200); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristic_descriptors(gatt_client_handle, &characteristics[0]); - CHECK_EQUAL(result_found, 3); + CHECK_EQUAL(result_counter, 3); - result_found = 0; + result_counter = 0; gatt_client_write_long_characteristic_descriptor(gatt_client_handle, &descriptors[0], sizeof(long_value), (uint8_t *)long_value); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestReadCharacteristicValue){ test = READ_CHARACTERISTIC_VALUE; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_read_value_of_characteristic(gatt_client_handle, &characteristics[0]); - CHECK_EQUAL(result_found, 3); + CHECK_EQUAL(result_counter, 3); } TEST(GATTClient, TestReadLongCharacteristicValue){ test = READ_LONG_CHARACTERISTIC_VALUE; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_read_long_value_of_characteristic(gatt_client_handle, &characteristics[0]); - CHECK_EQUAL(result_found, 7); + CHECK_EQUAL(result_counter, 7); } TEST(GATTClient, TestWriteCharacteristicValue){ test = WRITE_CHARACTERISTIC_VALUE; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_write_value_of_characteristic(gatt_client_handle, characteristics[0].value_handle, short_value_length, (uint8_t*)short_value); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestWriteLongCharacteristicValue){ test = WRITE_LONG_CHARACTERISTIC_VALUE; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_write_long_value_of_characteristic(gatt_client_handle, characteristics[0].value_handle, long_value_length, (uint8_t*)long_value); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); } TEST(GATTClient, TestWriteReliableLongCharacteristicValue){ test = WRITE_RELIABLE_LONG_CHARACTERISTIC_VALUE; - set_query_step(); + reset_query_state(); gatt_client_discover_primary_services_by_uuid16(gatt_client_handle, service_uuid16); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_discover_characteristics_for_service_by_uuid16(gatt_client_handle, &services[0], 0xF100); - CHECK_EQUAL(result_found, 1); + CHECK_EQUAL(result_counter, 1); - set_query_step(); + reset_query_state(); gatt_client_reliable_write_long_value_of_characteristic(gatt_client_handle, characteristics[0].value_handle, long_value_length, (uint8_t*)long_value); - CHECK(result_found); + CHECK(result_counter); }