diff options
author | Grzegorz Kolodziejczyk <grzegorz.kolodziejczyk@tieto.com> | 2014-10-06 14:54:00 +0200 |
---|---|---|
committer | Szymon Janc <szymon.janc@tieto.com> | 2014-10-06 16:01:52 +0200 |
commit | 5040ae422bd94235e08016ee6913c4bdc41c44b2 (patch) | |
tree | 3491cd6ffced494769650a7ee156f6e159dcddec /android/tester-main.c | |
parent | 60e419330ab4fbacd5fc6575960fa51bad349dc6 (diff) | |
download | bluez-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.c | 37 |
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, |