summaryrefslogtreecommitdiff
path: root/android/tester-gatt.c
diff options
context:
space:
mode:
authorGrzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com>2014-10-06 14:54:00 +0200
committerSzymon Janc <szymon.janc@tieto.com>2014-10-06 16:01:52 +0200
commit5040ae422bd94235e08016ee6913c4bdc41c44b2 (patch)
tree3491cd6ffced494769650a7ee156f6e159dcddec /android/tester-gatt.c
parent60e419330ab4fbacd5fc6575960fa51bad349dc6 (diff)
downloadbluez-5040ae422bd94235e08016ee6913c4bdc41c44b2.tar.gz
android/tester: Add GATT server add service test cases
This adds service add by server test cases.
Diffstat (limited to 'android/tester-gatt.c')
-rw-r--r--android/tester-gatt.c118
1 files changed, 118 insertions, 0 deletions
diff --git a/android/tester-gatt.c b/android/tester-gatt.c
index 68279954e..61fa9002b 100644
--- a/android/tester-gatt.c
+++ b/android/tester-gatt.c
@@ -109,6 +109,12 @@ struct notif_data {
btgatt_gatt_id_t *charac;
};
+struct add_service_data {
+ int app_id;
+ btgatt_srvc_id_t *service;
+ int num_handles;
+};
+
static bt_bdaddr_t emu_remote_bdaddr_val = {
.address = { 0x00, 0xaa, 0x01, 0x01, 0x00, 0x00 },
};
@@ -181,6 +187,33 @@ static btgatt_srvc_id_t service_2 = {
}
};
+static btgatt_srvc_id_t service_add_1 = {
+ .is_primary = true,
+ .id = {
+ .inst_id = 0,
+ .uuid.uu = {0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
+ 0x00, 0x10, 0x00, 0x00, 0xFF, 0xEF, 0x00, 0x00},
+ }
+};
+
+static btgatt_srvc_id_t service_add_2 = {
+ .is_primary = true,
+ .id = {
+ .inst_id = 1,
+ .uuid.uu = {0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
+ 0x00, 0x10, 0x00, 0x00, 0xFF, 0xDF, 0x00, 0x00},
+ }
+};
+
+static btgatt_srvc_id_t service_add_3 = {
+ .is_primary = true,
+ .id = {
+ .inst_id = 2,
+ .uuid.uu = {0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
+ 0x00, 0x10, 0x00, 0x00, 0xFF, 0xCF, 0x00, 0x00},
+ }
+};
+
static btgatt_srvc_id_t included_1 = {
.is_primary = false,
.id = {
@@ -304,6 +337,36 @@ static struct notif_data notif_data_1 = {
.bdaddr = &emu_remote_bdaddr_val,
};
+static struct add_service_data add_service_data_1 = {
+ .app_id = APP1_ID,
+ .service = &service_add_1,
+ .num_handles = 1
+};
+
+static struct add_service_data add_service_data_2 = {
+ .app_id = APP1_ID,
+ .service = &service_add_2,
+ .num_handles = 1
+};
+
+static struct add_service_data add_service_data_3 = {
+ .app_id = APP1_ID,
+ .service = &service_add_3,
+ .num_handles = 1
+};
+
+static struct add_service_data add_bad_service_data_1 = {
+ .app_id = APP1_ID,
+ .service = &service_add_1,
+ .num_handles = 0
+};
+
+static struct add_service_data add_sec_service_data_1 = {
+ .app_id = APP1_ID,
+ .service = &included_1,
+ .num_handles = 1
+};
+
struct set_read_params {
btgatt_read_params_t *params;
btgatt_srvc_id_t *srvc_id;
@@ -1003,6 +1066,21 @@ static void gatt_server_disconnect_action(void)
schedule_action_verification(step);
}
+static void gatt_server_add_service_action(void)
+{
+ struct test_data *data = tester_get_data();
+ struct step *current_data_step = queue_peek_head(data->steps);
+ struct add_service_data *add_srvc_data = current_data_step->set_data;
+ struct step *step = g_new0(struct step, 1);
+
+ step->action_status = data->if_gatt->server->add_service(
+ add_srvc_data->app_id,
+ add_srvc_data->service,
+ add_srvc_data->num_handles);
+
+ schedule_action_verification(step);
+}
+
static void gatt_cid_hook_cb(const void *data, uint16_t len, void *user_data)
{
struct test_data *t_data = tester_get_data();
@@ -2272,6 +2350,46 @@ static struct test_case test_cases[] = {
ACTION_SUCCESS(bluetooth_disable_action, NULL),
CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
),
+ TEST_CASE_BREDRLE("Gatt Server - Add Single Service Successful",
+ ACTION_SUCCESS(gatt_server_register_action, &app1_uuid),
+ CALLBACK_STATUS(CB_GATTS_REGISTER_SERVER, BT_STATUS_SUCCESS),
+ ACTION_SUCCESS(gatt_server_add_service_action,
+ &add_service_data_1),
+ CALLBACK_GATTS_SERVICE_ADDED(GATT_STATUS_SUCCESS, APP1_ID,
+ &service_add_1, NULL, NULL),
+ ),
+ TEST_CASE_BREDRLE("Gatt Server - Add Multiple Services Successful",
+ ACTION_SUCCESS(gatt_server_register_action, &app1_uuid),
+ CALLBACK_STATUS(CB_GATTS_REGISTER_SERVER, BT_STATUS_SUCCESS),
+ ACTION_SUCCESS(gatt_server_add_service_action,
+ &add_service_data_1),
+ CALLBACK_GATTS_SERVICE_ADDED(GATT_STATUS_SUCCESS, APP1_ID,
+ &service_add_1, NULL, NULL),
+ ACTION_SUCCESS(gatt_server_add_service_action,
+ &add_service_data_2),
+ CALLBACK_GATTS_SERVICE_ADDED(GATT_STATUS_SUCCESS, APP1_ID,
+ &service_add_2, NULL, NULL),
+ ACTION_SUCCESS(gatt_server_add_service_action,
+ &add_service_data_3),
+ CALLBACK_GATTS_SERVICE_ADDED(GATT_STATUS_SUCCESS, APP1_ID,
+ &service_add_3, NULL, NULL),
+ ),
+ TEST_CASE_BREDRLE("Gatt Server - Add Service with 0 handles",
+ ACTION_SUCCESS(gatt_server_register_action, &app1_uuid),
+ CALLBACK_STATUS(CB_GATTS_REGISTER_SERVER, BT_STATUS_SUCCESS),
+ ACTION_FAIL(gatt_server_add_service_action,
+ &add_bad_service_data_1),
+ CALLBACK_GATTS_SERVICE_ADDED(GATT_STATUS_FAILURE, APP1_ID,
+ &service_add_1, NULL, NULL),
+ ),
+ TEST_CASE_BREDRLE("Gatt Server - Add Secondary Service",
+ ACTION_SUCCESS(gatt_server_register_action, &app1_uuid),
+ CALLBACK_STATUS(CB_GATTS_REGISTER_SERVER, BT_STATUS_SUCCESS),
+ ACTION_SUCCESS(gatt_server_add_service_action,
+ &add_sec_service_data_1),
+ CALLBACK_GATTS_SERVICE_ADDED(GATT_STATUS_SUCCESS, APP1_ID,
+ &included_1, NULL, NULL),
+ ),
};
struct queue *get_gatt_tests(void)