summaryrefslogtreecommitdiff
path: root/android/tester-main.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-main.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-main.c')
-rw-r--r--android/tester-main.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/android/tester-main.c b/android/tester-main.c
index bb064b7bb..141e4c64d 100644
--- a/android/tester-main.c
+++ b/android/tester-main.c
@@ -773,6 +773,21 @@ static bool match_data(struct step *step)
return false;
}
+ if (exp->callback_result.srvc_handle &&
+ step->callback_result.srvc_handle)
+ if (*exp->callback_result.srvc_handle !=
+ *step->callback_result.srvc_handle) {
+ tester_debug("Gatt service handle mismatch: %d vs %d",
+ *step->callback_result.srvc_handle,
+ *exp->callback_result.srvc_handle);
+ return false;
+ }
+
+ if (exp->store_srvc_handle)
+ memcpy(exp->store_srvc_handle,
+ step->callback_result.srvc_handle,
+ sizeof(*exp->store_srvc_handle));
+
return true;
}
@@ -876,6 +891,9 @@ static void destroy_callback_step(void *data)
if (step->callback_result.notify_params)
free(step->callback_result.notify_params);
+ if (step->callback_result.srvc_handle)
+ free(step->callback_result.srvc_handle);
+
g_free(step);
g_atomic_int_dec_and_test(&scheduled_cbacks_num);
}
@@ -1480,6 +1498,23 @@ static void gatts_connection_cb(int conn_id, int server_if, int connected,
schedule_callback_verification(step);
}
+static void gatts_service_added_cb(int status, int server_if,
+ btgatt_srvc_id_t *srvc_id,
+ int srvc_handle)
+{
+ struct step *step = g_new0(struct step, 1);
+
+ step->callback = CB_GATTS_SERVICE_ADDED;
+
+ step->callback_result.status = status;
+ step->callback_result.gatt_app_id = server_if;
+ step->callback_result.service = g_memdup(srvc_id, sizeof(*srvc_id));
+ step->callback_result.srvc_handle = g_memdup(&srvc_handle,
+ sizeof(srvc_handle));
+
+ schedule_callback_verification(step);
+}
+
static void pan_control_state_cb(btpan_control_state_t state,
bt_status_t error, int local_role,
const char *ifname)
@@ -1603,7 +1638,7 @@ static const btgatt_client_callbacks_t btgatt_client_callbacks = {
static const btgatt_server_callbacks_t btgatt_server_callbacks = {
.register_server_cb = gatts_register_server_cb,
.connection_cb = gatts_connection_cb,
- .service_added_cb = NULL,
+ .service_added_cb = gatts_service_added_cb,
.included_service_added_cb = NULL,
.characteristic_added_cb = NULL,
.descriptor_added_cb = NULL,