2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 * @file bt_unit_test.c
20 * @brief This is the source file for capi unit test.
33 #include <sys/socket.h>
34 #include <arpa/inet.h>
37 #include <sys/types.h>
39 #include <linux/if_link.h>
40 #include <app_control.h>
41 #include <system_info.h>
43 #include "bluetooth.h"
44 #include "bluetooth_internal.h"
45 #include "bluetooth_extension.h"
46 #include "bluetooth_private.h"
47 #include "bluetooth-telephony-api.h"
48 #include "bt_unit_test.h"
50 const char *spp_uuid = "00001101-0000-1000-8000-00805F9B34FB";
51 const char *hid_uuid = "00001124-0000-1000-8000-00805f9b34fb";
52 const char *opp_uuid = "00001105-0000-1000-8000-00805f9b34fb";
53 const char *custom_uuid = "fa87c0d0-afac-11de-8a39-0800200c9a66";
55 /* HPS UUIDs. defined by SIG */
56 #define HPS_UUID "1823"
57 #define HTTP_URI_UUID "2ab6"
58 #define HTTP_HDR_UUID "2ab7"
59 #define HTTP_ENTITY_UUID "2ab9"
60 #define HTTP_CP_UUID "2aba"
61 #define HTTP_STATUS_UUID "2ab8"
62 #define HTTP_SECURITY_UUID "2abb"
63 #define HTTP_STATUS_DESC_UUID "2902"
64 #define IPSP_PORT 3344
65 static bt_unit_test_table_e current_tc_table;
66 static char remote_addr[18] = "F6:FB:8F:D8:C8:7C";
67 static char ipsp_iface_name[17] = "";
68 static bool input_automated_test_delay = false;
70 /* For HDP profile TEST */
71 static char *appid = "/org/bluez/health_app_2";
72 static char *data_hdp = "aaa";
73 static unsigned channel_hdp = 0;
75 static bool need_to_set_params = false;
76 static int g_test_id = -1;
77 static tc_params_t g_test_param = {0,};
81 static int custom_server_fd;
82 static int custom_client_fd;
83 static int ipsp_server_sock = 0;
84 static int ipsp_client_sock = 0;
86 static int bt_onoff_cnt = 0;
87 static int bt_onoff_cnt_success = 0;
88 static int bt_onoff_cnt_fail = 0;
89 static int total_time = 0;
90 static struct timeval check_time = {0,};
92 static int absolute_volume = 0;
95 int char_service_index;
97 static bt_advertiser_h advertiser = NULL;
98 static bt_advertiser_h advertiser_list[3] = {NULL, };
99 static int advertiser_index = 0;
101 bt_gatt_client_h client = NULL;
102 bt_gatt_client_h hps_client = NULL;
104 bt_gatt_server_h server = NULL;
110 gatt_handle_t battery_h;
111 gatt_handle_t heart_rate_h;
112 gatt_handle_t thermometer_h;
113 gatt_handle_t custom_h;
114 gatt_handle_t ipsp_h;
116 bt_proximity_reporter_h reporter;
117 bt_proximity_monitor_h monitor;
118 bt_scan_filter_h pxp_scan_filter;
120 bt_tds_provider_h provider;
121 char *tds_act_address;
122 bt_tds_seeker_h seeker;
124 bt_otp_client_h otp_client;
125 bt_hrp_collector_h collector;
126 bool set_notif = true;
129 static unsigned char *hash = NULL;
130 static unsigned char *randomizer = NULL;
134 bt_call_list_h call_list;
135 GMainLoop *main_loop = NULL;
137 tc_table_t tc_main[] = {
140 , BT_UNIT_TEST_FUNCTION_SET_ADDRESS},
142 , BT_UNIT_TEST_FUNCTION_INITIALIZE},
144 , BT_UNIT_TEST_FUNCTION_DEINITIALIZE},
146 , BT_UNIT_TEST_TABLE_ADAPTER},
148 , BT_UNIT_TEST_TABLE_ADAPTER_LE},
150 , BT_UNIT_TEST_TABLE_DEVICE},
152 , BT_UNIT_TEST_TABLE_SOCKET},
154 , BT_UNIT_TEST_TABLE_OPP},
155 {"Audio(ag, a2dp, call)"
156 , BT_UNIT_TEST_TABLE_AUDIO},
158 , BT_UNIT_TEST_TABLE_PAN},
160 , BT_UNIT_TEST_TABLE_GATT},
162 , BT_UNIT_TEST_TABLE_HPS},
164 , BT_UNIT_TEST_TABLE_AVRCP},
166 , BT_UNIT_TEST_TABLE_HID},
168 , BT_UNIT_TEST_TABLE_IPSP},
170 , BT_UNIT_TEST_TABLE_HDP},
172 , BT_UNIT_TEST_TABLE_DPM},
174 , BT_UNIT_TEST_TABLE_PXP},
176 , BT_UNIT_TEST_TABLE_HF},
178 , BT_UNIT_TEST_TABLE_PBAP_CLIENT},
179 {"etc.(Automated test, AppControl)"
180 , BT_UNIT_TEST_TABLE_ETC},
182 , BT_UNIT_TEST_TABLE_TDS_PROVIDER},
184 , BT_UNIT_TEST_TABLE_TDS_SEEKER},
186 , BT_UNIT_TEST_TABLE_OTP},
188 , BT_UNIT_TEST_TABLE_HRP_SENSOR},
190 , BT_UNIT_TEST_TABLE_HRP_COLLECTOR},
192 , BT_UNIT_TEST_FUNCTION_INITIALIZE_ALL},
194 , BT_UNIT_TEST_TABLE_FINISH},
198 tc_table_t tc_adapter[] = {
199 /* Adapter functions */
201 , BT_UNIT_TEST_FUNCTION_BACK},
202 {"bt_adapter_get_state"
203 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_STATE},
205 , BT_UNIT_TEST_FUNCTION_ADAPTER_ENABLE},
206 {"bt_adapter_disable"
207 , BT_UNIT_TEST_FUNCTION_ADAPTER_DISABLE},
208 {"bt_adapter_recover"
209 , BT_UNIT_TEST_FUNCTION_ADAPTER_RECOVER},
210 {"bt_adapter_start_device_discovery"
211 , BT_UNIT_TEST_FUNCTION_ADAPTER_START_DEVICE_DISCOVERY},
212 {"bt_adapter_stop_device_discovery"
213 , BT_UNIT_TEST_FUNCTION_ADAPTER_STOP_DEVICE_DISCOVERY},
214 {"bt_adapter_is_discovering"
215 , BT_UNIT_TEST_FUNCTION_ADAPTER_IS_DISCOVERING},
216 {"bt_adapter_foreach_bonded_device"
217 , BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_BONDED_DEVICE},
218 {"bt_adapter_foreach_profile_connected_devices"
219 , BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_PROFILE_CONNECTED_DEVICES},
220 {"bt_adapter_get_bonded_device_info"
221 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_BONDED_DEVICE_INFO},
222 {"bt_adapter_is_service_used"
223 , BT_UNIT_TEST_FUNCTION_ADAPTER_IS_SERVICE_USED},
224 {"bt_adapter_get_visibility"
225 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_VISIBILITY},
226 {"bt_adapter_set_visibility"
227 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY},
228 {"bt_adapter_set_device_discovery_state_changed_cb"
229 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_DEVICE_DISCOVERY_STATE_CHANGED_CB},
230 {"bt_adapter_unset_device_discovery_state_changed_cb"
231 , BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_DEVICE_DISCOVERY_STATE_CHANGED_CB},
232 {"bt_adapter_get_local_oob_data"
233 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_LOCAL_OOB_DATA},
234 {"bt_adapter_set_remote_oob_data"
235 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_REMOTE_OOB_DATA},
236 {"bt_adapter_remove_remote_oob_data"
237 , BT_UNIT_TEST_FUNCTION_ADAPTER_REMOVE_REMOTE_OOB_DATA},
238 {"bt_adapter_get_local_oob_ext_data"
239 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_LOCAL_OOB_EXT_DATA},
240 {"bt_adapter_set_remote_oob_ext_data"
241 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_REMOTE_OOB_EXT_DATA},
242 {"bt_adapter_read_battery_info"
243 , BT_UNIT_TEST_FUNCTION_ADAPTER_READ_BATTERY_INFO},
244 {"bt_adapter_init_battery_monitor"
245 , BT_UNIT_TEST_FUNCTION_ADAPTER_INIT_BATTERY_MONITOR},
246 {"bt_adapter_deinit_battery_monitor"
247 , BT_UNIT_TEST_FUNCTION_ADAPTER_DEINIT_BATTERY_MONITOR},
248 {"bt_adapter_set_visibility_mode_changed_cb"
249 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY_MODE_CHANGED_CB},
250 {"bt_adapter_unset_visibility_mode_changed_cb"
251 , BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_VISIBILITY_MODE_CHANGED_CB},
252 {"bt_adapter_set_visibility_duration_changed_cb"
253 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY_DURATION_CHANGED_CB},
254 {"bt_adapter_unset_visibility_duration_changed_cb"
255 , BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_VISIBILITY_DURATION_CHANGED_CB},
256 {"bt_adapter_set_connectable_changed_cb"
257 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_CONNECTABLE_CHANGED_CB},
258 {"bt_adapter_unset_connectable_changed_cb"
259 , BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_CONNECTABLE_CHANGED_CB},
260 {"bt_adapter_get_connectable"
261 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_CONNECTABLE},
262 {"bt_adapter_set_connectable"
263 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_CONNECTABLE},
264 {"bt_adapter_get_version"
265 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_VERSION},
266 {"bt_adapter_get_local_info"
267 , BT_UNIT_TEST_FUNCTION_ADAPTER_GET_LOCAL_INFO},
268 {"bt_adapter_set_manufacturer_data_changed_cb"
269 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_MANUFACTURER_DATA_CHANGED_CB},
270 {"bt_adapter_unset_manufacturer_data_changed_cb"
271 , BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_MANUFACTURER_DATA_CHANGED_CB},
272 {"bt_adapter_set_manufacturer_data"
273 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_MANUFACTURER_DATA},
274 {"bt_adapter_set_authentication_req_cb"
275 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_AUTHENTICATION_REQUSET_CB},
276 {"bt_adapter_set_authentication_request_cb"
277 , BT_UNIT_TEST_FUNCTION_ADAPTER_SET_AUTHENTICATION_REQUEST_CB_NEW},
278 {"bt_adapter_unset_authentication_req_cb"
279 , BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_AUTHENTICATION_REQUSET_CB},
280 {"bt_adapter_unset_authentication_request_cb"
281 , BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_AUTHENTICATION_REQUEST_CB_NEW},
282 {"bt_adapter_passkey_reply(passkey, TRUE)"
283 , BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_REPLY_ACCEPT},
284 {"bt_adapter_passkey_reply(passkey, FALSE)"
285 , BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_REPLY_CANCEL},
286 {"bt_adapter_passkey_confirmation_reply(TRUE)"
287 , BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_CONFIRMATION_REPLY_ACCEPT},
288 {"bt_adapter_passkey_confirmation_reply(FALSE)"
289 , BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_CONFIRMATION_REPLY_REJECT},
290 {"Select this menu to set parameters and then select the function again."
291 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
295 tc_table_t tc_adapter_le[] = {
296 /* Adapter functions */
298 , BT_UNIT_TEST_FUNCTION_BACK},
299 {"bt_adapter_le_get_state"
300 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_GET_STATE},
301 {"bt_adapter_le_enable"
302 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE},
303 {"bt_adapter_le_disable"
304 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_DISABLE},
305 {"bt_adapter_le_set_scan_mode"
306 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_MODE},
307 {"bt_adapter_le_set_scan_type"
308 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_TYPE},
309 {"bt_adapter_le_set_customized_scan_mode"
310 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_CUSTOMIZED},
311 {"bt_adapter_le_start_scan"
312 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_SCAN},
313 {"bt_adapter_le_stop_scan"
314 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_SCAN},
315 {"bt_adapter_le_add_advertising_data"
316 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_ADVERTISING_DATA},
317 {"bt_adapter_le_set_advertising_mode"
318 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_MODE},
319 {"bt_adapter_le_set_advertising_filter_policy"
320 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_FILTER_POLICY},
321 {"bt_adapter_le_set_advertising_connectable"
322 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CONNECTABLE},
323 {"bt_adapter_le_set_advertising_custom_tx_power_level"
324 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CUSTOM_TX_POWER},
325 {"bt_adapter_le_start_advertising_new"
326 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_ADVERTISING_NEW},
327 {"bt_adapter_le_stop_advertising"
328 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_ADVERTISING},
329 {"bt_adapter_le_add_white_list"
330 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_WHITE_LIST},
331 {"bt_adapter_le_remove_white_list"
332 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REMOVE_WHITE_LIST},
333 {"bt_adapter_le_enable_privacy"
334 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE_PRIVACY},
335 {"bt_adapter_le_get_local_oob_ext_data"
336 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_GET_LOCAL_OOB_EXT_DATA},
337 {"bt_adapter_le_set_remote_oob_ext_data"
338 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_REMOTE_OOB_EXT_DATA},
339 {"Register scan filter (Device Address)"
340 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_ADDRESS},
341 {"Register scan filter (Device Name)"
342 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_NAME},
343 {"Register scan filter (Service UUID)"
344 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_UUID},
345 {"Register scan filter (Service Solicitation UUID)"
346 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_SOLICITATION_UUID},
347 {"Register scan filter (Manufacturer DATA)"
348 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_MANUFACTURER_DATA},
349 {"Register iBeaconscan filter (Manufacturer DATA)"
350 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_IBEACON_DATA},
351 {"Unregister all scan filters"
352 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNREGISTER_ALL_SCAN_FILTERS},
353 {"bt_adater_le_read_maximum_data_length"
354 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_READ_MAXIMUM_DATA_LENGTH},
355 {"bt_adater_le_wite_host_suggested_def_data_length"
356 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_WRITE_HOST_SUGGESTED_DEFAULT_DATA_LENGTH},
357 {"bt_adater_le_read_host_suggested_def_data_length"
358 , BT_UNIT_TEST_FUNCTION_ADAPTER_LE_READ_HOST_SUGGESTED_DEFAULT_DATA_LENGTH},
359 {"bt_adapter_le_is_2m_phy_supported"
360 , BT_UNIT_TEST_FUNCTION_LE_2M_PHY_SUPPORT},
361 {"bt_adapter_le_is_coded_phy_supported"
362 , BT_UNIT_TEST_FUNCTION_LE_CODED_PHY_SUPPORT},
363 {"Select this menu to set parameters and then select the function again."
364 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
368 tc_table_t tc_device[] = {
369 /* Device functions */
371 , BT_UNIT_TEST_FUNCTION_BACK},
372 {"bt_device_set_authorization (true)"
373 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_AUTHORIZATION_TRUE},
374 {"bt_device_set_authorization (false)"
375 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_AUTHORIZATION_FALSE},
376 {"bt_device_set_authorization_changed_cb"
377 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_AUTHORIZATION_CHANGED_CB},
378 {"bt_device_unset_authorization_changed_cb"
379 , BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_AUTHORIZATION_CHANGED_CB},
380 {"bt_device_set_connection_state_changed_cb"
381 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_CONNECTION_STAET_CHANGED_CB},
382 {"bt_device_unset_connection_state_changed_cb"
383 , BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_CONNECTION_STAET_CHANGED_CB},
384 {"bt_device_foreach_connected_profiles"
385 , BT_UNIT_TEST_FUNCTION_DEVICE_FOREACH_CONNECTED_PROFILES},
386 {"bt_device_is_profile_connected"
387 , BT_UNIT_TEST_FUNCTION_DEVICE_IS_PROFILE_CONNECTED},
388 {"bt_device_set_bond_created_cb"
389 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_BOND_CREATED_CB},
390 {"bt_device_set_bond_destroyed_cb"
391 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_BOND_DESTROYED_CB},
392 {"bt_device_disconnect"
393 , BT_UNIT_TEST_FUNCTION_DEVICE_DISCONNECT},
394 {"bt_device_create_bond"
395 , BT_UNIT_TEST_FUNCTION_DEVICE_CREATE_BOND},
396 {"bt_device_create_bond_by_type"
397 , BT_UNIT_TEST_FUNCTION_DEVICE_CREATE_BOND_BY_TYPE},
398 {"bt_device_destroy_bond"
399 , BT_UNIT_TEST_FUNCTION_DEVICE_DESTROY_BOND},
400 {"bt_device_update_le_connection_mode"
401 , BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION_MODE},
402 {"bt_device_le_conn_update"
403 , BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION},
404 {"bt_device_request_att_mtu"
405 , BT_UNIT_TEST_FUNCTION_DEVICE_REQUEST_ATT_MTU},
406 {"bt_device_set_att_mtu_changed_cb"
407 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_REQUEST_ATT_MTU_CHANGED_CB},
408 {"bt_device_unset_att_mtu_changed_cb"
409 , BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_REQUEST_ATT_MTU_CHANGED_CB},
410 {"bt_device_get_att_mtu"
411 , BT_UNIT_TEST_FUNCTION_DEVICE_GET_ATT_MTU},
412 {"bt_device_le_set_data_length"
413 , BT_UNIT_TEST_FUNCTION_LE_DEVICE_SET_DATA_LENGTH},
414 {"bt_device_le_data_length_changed_cb"
415 , BT_UNIT_TEST_FUNCTION_LE_DEVICE_DATA_LENGTH_CHANGED_CB},
416 {"Select this menu to set parameters and then select the function again."
417 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
418 {"bt_device_set_profile_trusted_A2DP(true)"
419 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_A2DP_TRUE},
420 {"bt_device_set_profile_trusted_A2DP(false)"
421 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_A2DP_FALSE},
422 {"bt_device_set_profile_trusted_HFP_HF(true)"
423 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_HFP_TRUE},
424 {"bt_device_set_profile_trusted_HFP_HF(false)"
425 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_HFP_FALSE},
426 {"bt_device_set_trusted_profile_cb"
427 , BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_CB},
428 {"bt_device_unset_trusted_profile_cb"
429 , BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_PROFILE_TRUSTED_CB},
433 tc_table_t tc_socket[] = {
434 /* Socket functions */
436 , BT_UNIT_TEST_FUNCTION_BACK},
437 {"bt_socket_create_rfcomm"
438 , BT_UNIT_TEST_FUNCTION_SOCKET_CREATE_RFCOMM},
439 {"bt_socket_destroy_rfcomm"
440 , BT_UNIT_TEST_FUNCTION_SOCKET_DESTROY_RFCOMM},
441 {"bt_socket_listen_and_accept_rfcomm"
442 , BT_UNIT_TEST_FUNCTION_SOCKET_LISTEN_AND_ACCEPT_RFCOMM},
444 , BT_UNIT_TEST_FUNCTION_SOCKET_LISTEN},
446 , BT_UNIT_TEST_FUNCTION_SOCKET_ACCEPT},
448 , BT_UNIT_TEST_FUNCTION_SOCKET_REJECT},
449 {"bt_socket_connect_rfcomm"
450 , BT_UNIT_TEST_FUNCTION_SOCKET_CONNECT_RFCOMM},
451 {"bt_socket_disconnect_rfcomm"
452 , BT_UNIT_TEST_FUNCTION_SOCKET_DISCONNECT_RFCOMM},
453 {"bt_socket_send_data"
454 , BT_UNIT_TEST_FUNCTION_SOCKET_SEND_DATA},
455 {"bt_socket_create_rfcomm with custom uuid"
456 , BT_UNIT_TEST_FUNCTION_SOCKET_CREATE_RFCOMM_CUSTOM_UUID},
457 {"bt_socket_destroy_rfcomm with custom uuid"
458 , BT_UNIT_TEST_FUNCTION_SOCKET_DESTROY_RFCOMM_CUSTOM_UUID},
459 {"bt_socket_listen_and_accept_rfcomm with custom uuid"
460 , BT_UNIT_TEST_FUNCTION_SOCKET_LISTEN_AND_ACCEPT_RFCOMM_CUSTOM_UUID},
461 {"bt_socket_connect_rfcomm with custom uuid"
462 , BT_UNIT_TEST_FUNCTION_SOCKET_CONNECT_RFCOMM_CUSTOM_UUID},
463 {"bt_socket_disconnect_rfcomm with custom uuid"
464 , BT_UNIT_TEST_FUNCTION_SOCKET_DISCONNECT_RFCOMM_CUSTOM_UUID},
465 {"bt_socket_send_data with custom uuid"
466 , BT_UNIT_TEST_FUNCTION_SOCKET_SEND_DATA_CUSTOM_UUID},
467 {"bt_socket_set_data_received_cb"
468 , BT_UNIT_TEST_FUNCTION_SOCKET_SET_DATA_RECEIVED_CB},
469 {"bt_socket_unset_data_received_cb"
470 , BT_UNIT_TEST_FUNCTION_SOCKET_UNSET_DATA_RECEIVED_CB},
471 {"bt_socket_set_connection_requested_cb"
472 , BT_UNIT_TEST_FUNCTION_SOCKET_SET_CONNECTION_REQUESTED_CB},
473 {"bt_socket_unset_connection_requested_cb"
474 , BT_UNIT_TEST_FUNCTION_SOCKET_UNSET_CONNECTION_REQUESTED_CB},
475 {"bt_socket_set_connection_state_changed_cb"
476 , BT_UNIT_TEST_FUNCTION_SOCKET_SET_CONNECTION_STATE_CHANGED_CB},
477 {"bt_socket_unset_connection_state_changed_cb"
478 , BT_UNIT_TEST_FUNCTION_SOCKET_UNSET_CONNECTION_STATE_CHANGED_CB},
479 {"Select this menu to set parameters and then select the function again."
480 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
484 tc_table_t tc_opp[] = {
487 , BT_UNIT_TEST_FUNCTION_BACK},
488 {"bt_opp_client_initialize"
489 , BT_UNIT_TEST_FUNCTION_OPP_CLIENT_INITIALIZE},
490 {"bt_opp_client_deinitialize"
491 , BT_UNIT_TEST_FUNCTION_OPP_CLIENT_DEINITIALIZE},
492 {"bt_opp_client_add_file"
493 , BT_UNIT_TEST_FUNCTION_OPP_CLIENT_ADD_FILE},
494 {"bt_opp_client_clear_files"
495 , BT_UNIT_TEST_FUNCTION_OPP_CLIENT_CLEAR_FILES},
496 {"bt_opp_client_push_files"
497 , BT_UNIT_TEST_FUNCTION_OPP_CLIENT_PUSH_FILES},
498 {"bt_opp_client_cancel_push"
499 , BT_UNIT_TEST_FUNCTION_OPP_CLIENT_CANCEL_PUSH},
500 {"Select this menu to set parameters and then select the function again."
501 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
505 tc_table_t tc_audio[] = {
508 , BT_UNIT_TEST_FUNCTION_BACK},
509 {"bt_audio_initialize"
510 , BT_UNIT_TEST_FUNCTION_AUDIO_INITIALIZE},
511 {"bt_audio_deinitialize"
512 , BT_UNIT_TEST_FUNCTION_AUDIO_DEINITIALIZE},
514 , BT_UNIT_TEST_FUNCTION_AUDIO_CONNECT},
515 {"bt_audio_disconnect"
516 , BT_UNIT_TEST_FUNCTION_AUDIO_DISCONNECT},
517 {"bt_audio_sink_connect"
518 , BT_UNIT_TEST_FUNCTION_AUDIO_SINK_CONNECT},
519 {"bt_audio_sink_disconnect"
520 , BT_UNIT_TEST_FUNCTION_AUDIO_SINK_DISCONNECT},
521 {"bt_audio_set_connection_state_changed_cb"
522 , BT_UNIT_TEST_FUNCTION_AUDIO_SET_CONNECTION_STATE_CHANGED_CB},
523 {"bt_audio_unset_connection_state_changed_cb"
524 , BT_UNIT_TEST_FUNCTION_AUDIO_UNSET_CONNECTION_STATE_CHANGED_CB},
526 , BT_UNIT_TEST_FUNCTION_AG_OPEN_SCO},
528 , BT_UNIT_TEST_FUNCTION_AG_CLOSE_SCO},
529 {"bt_ag_is_sco_opened"
530 , BT_UNIT_TEST_FUNCTION_AG_IS_SCO_OPENED},
531 {"bt_ag_set_sco_state_changed_cb"
532 , BT_UNIT_TEST_FUNCTION_AG_SET_SCO_STATE_CHANGED_CB},
533 {"bt_ag_unset_sco_state_changed_cb"
534 , BT_UNIT_TEST_FUNCTION_AG_UNSET_SCO_STATE_CHANGED_CB},
535 {"bt_ag_set_speaker_gain_changed_cb"
536 , BT_UNIT_TEST_FUNCTION_AG_SET_SPEAKER_GAIN_CHANGED_CB},
537 {"bt_ag_unset_speaker_gain_changed_cb"
538 , BT_UNIT_TEST_FUNCTION_AG_UNSET_SPEAKER_GAIN_CHANGED_CB},
539 {"bt_ag_set_microphone_gain_changed_cb"
540 , BT_UNIT_TEST_FUNCTION_AG_SET_MICRO_GAIN_CHANGED_CB},
541 {"bt_ag_unset_microphone_gain_changed_cb"
542 , BT_UNIT_TEST_FUNCTION_AG_UNSET_MICRO_GAIN_CHANGED_CB},
543 {"bt_ag_is_connected"
544 , BT_UNIT_TEST_FUNCTION_AG_IS_CONNECTED},
545 {"BT_AG_CALL_EVENT_IDLE"
546 , BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_IDLE},
547 {"BT_AG_CALL_EVENT_ANSWERED"
548 , BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_ANSWERED},
549 {"BT_AG_CALL_EVENT_DIALING"
550 , BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_DIALING},
551 {"BT_AG_CALL_EVENT_ALERTING"
552 , BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_ALERTING},
553 {"BT_AG_CALL_EVENT_INCOMING"
554 , BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_INCOMING},
555 {"bt_call_list_create"
556 , BT_UNIT_TEST_FUNCTION_CALL_LIST_CREATE},
557 {"bt_call_list_destroy"
558 , BT_UNIT_TEST_FUNCTION_CALL_LIST_DESTROY},
559 {"bt_call_list_reset"
560 , BT_UNIT_TEST_FUNCTION_CALL_LIST_RESET},
562 , BT_UNIT_TEST_FUNCTION_CALL_LIST_ADD},
563 {"bt_ag_notify_call_list"
564 , BT_UNIT_TEST_FUNCTION_AG_NOTIFY_CALL_LIST},
565 {"bt_ag_set_call_handling_event_cb"
566 , BT_UNIT_TEST_FUNCTION_AG_SET_CALL_HANDLING_EVENT_CB},
567 {"bt_ag_is_nrec_enabled"
568 , BT_UNIT_TEST_FUNCTION_AG_IS_NREC_ENABLED},
569 {"bt_ag_switch_headset"
570 , BT_UNIT_TEST_FUNCTION_AG_SWITCH_HEADSET},
571 {"bt_audio_select_role(source)"
572 , BT_UNIT_TEST_FUNCTION_A2DP_SOURCE_ROLE},
573 {"bt_audio_select_role(sink)"
574 , BT_UNIT_TEST_FUNCTION_A2DP_SINK_ROLE},
575 {"bt_audio_set_absolute_volume"
576 , BT_UNIT_TEST_FUNCTION_AUDIO_SET_ABSOLUTE_VOLUME},
577 {"bt_audio_get_absolute_volume"
578 , BT_UNIT_TEST_FUNCTION_AUDIO_GET_ABSOLUTE_VOLUME},
579 {"bt_audio_is_avc_activated"
580 , BT_UNIT_TEST_FUNCTION_AUDIO_IS_AVC_ACTIVATED},
581 {"bt_audio_set_absolute_volume_changed_cb"
582 , BT_UNIT_TEST_FUNCTION_AUDIO_SET_ABSOLUTE_VOLUME_CHANGED_CB},
583 {"bt_audio_unset_absolute_volume_changed_cb"
584 , BT_UNIT_TEST_FUNCTION_AUDIO_UNSET_ABSOLUTE_VOLUME_CHANGED_CB},
585 {"bt_audio_set_avc_status_changed_cb"
586 , BT_UNIT_TEST_FUNCTION_AUDIO_SET_AVC_STATUE_CHANGED_CB},
587 {"bt_audio_unset_avc_status_changed_cb"
588 , BT_UNIT_TEST_FUNCTION_AUDIO_UNSET_AVC_STATUE_CHANGED_CB},
589 /* A2DP SCMS-T functions */
590 {"Select this menu to set parameters and then select the function again."
591 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
595 tc_table_t tc_pan[] = {
596 /* Network functions */
598 , BT_UNIT_TEST_FUNCTION_BACK},
600 , BT_UNIT_TEST_FUNCTION_NAP_ACTIVATE},
602 , BT_UNIT_TEST_FUNCTION_NAP_DEACTIVATE},
603 {"bt_nap_disconnect_all"
604 , BT_UNIT_TEST_FUNCTION_NAP_DISCONNECT_ALL},
606 , BT_UNIT_TEST_FUNCTION_NAP_DISCONNECT},
607 {"bt_panu_set_connection_state_changed_cb"
608 , BT_UNIT_TEST_FUNCTION_PANU_SET_CONNECTION_STATE_CHANGED_CB},
610 , BT_UNIT_TEST_FUNCTION_PANU_CONNECT},
611 {"Select this menu to set parameters and then select the function again."
612 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
616 tc_table_t tc_gatt[] = {
619 , BT_UNIT_TEST_FUNCTION_BACK},
621 , BT_UNIT_TEST_FUNCTION_GATT_CONNECT},
622 {"bt_gatt_disconnect"
623 , BT_UNIT_TEST_FUNCTION_GATT_DISCONNECT},
624 {"bt_gatt_set_connection_state_changed_cb"
625 , BT_UNIT_TEST_FUNCTION_SET_GATT_CONNECTION_STATE_CHANGED_CB},
626 {"bt_gatt_unset_connection_state_changed_cb"
627 , BT_UNIT_TEST_FUNCTION_UNSET_GATT_CONNECTION_STATE_CHANGED_CB},
628 {"bt_gatt_client_create"
629 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_CREATE},
630 {"bt_gatt_client_destroy"
631 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_DESTROY},
632 {"bt_gatt_client_get_remote_address"
633 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_REMOTE_ADDRESS},
634 {"bt_gatt_client_print_all"
635 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_PRINT_ALL},
636 {"bt_gatt_client_read_value"
637 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_READ_VALUE},
638 {"bt_gatt_client_write_value"
639 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_WRITE_VALUE},
640 {"bt_gatt_client_set_char_value_changed_cb"
641 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_CHAR_VALUE_CHANGED_CB},
642 {"bt_gatt_client_unset_char_value_changed_cb"
643 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_CHAR_VALUE_CHANGED_CB},
644 {"bt_gatt_client_foreach_services"
645 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_FOREACH_SERVICES},
646 {"bt_gatt_client_request_att_mtu_change"
647 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_REQUEST_ATT_MTU},
648 {"bt_gatt_client_get_att_mtu"
649 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_ATT_MTU},
650 {"bt_gatt_client_set_service_changed_cb"
651 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_SERVICE_CHANGED_CB},
652 {"bt_gatt_client_unset_service_changed_cb"
653 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_SERVICE_CHANGED_CB},
654 {"bt_gatt_client_set_att_mtu_changed_cb"
655 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_ATT_MTU_CHANGED_CB},
656 {"bt_gatt_client_unset_att_mtu_changed_cb"
657 , BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_ATT_MTU_CHANGED_CB},
658 {"bt_gatt_server_initialize"
659 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_INITIALIZE},
660 {"bt_gatt_server_deinitilaize"
661 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_DEINITIALIZE},
662 {"bt_gatt_server_unregister_all_services"
663 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_UNREGISTER_ALL_SERVICES},
664 {"bt_gatt_server_foreach_services"
665 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_FOREACH_SERVICES},
666 {"bt_gatt_server_get_device_mtu"
667 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_GET_DEVICE_MTU},
668 {"bt_gatt_server_set_att_mtu_changed_cb"
669 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_SET_MTU_CHANGED_CB},
670 {"Register Battery Service"
671 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_BATTERY_SVC},
672 {"Change Battery Level"
673 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_BATTERY_LEVEL},
674 {"Register Heart Rate Service"
675 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_HEART_RATE_SVC},
676 {"Notify Heart Rate Measurement"
677 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_NOTIFY_HEART_RATE_MEASUREMENT},
678 {"Register Thermometer Service"
679 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_THERMOMETER_SVC},
680 {"Change Thermometer Measurement"
681 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_THERMOMETER_MEASUREMENT},
682 {"Register Device Information Service"
683 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_DEVICE_INFORMATION_SVC},
684 {"Register Link Loss Service"
685 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_LINK_LOSS_SVC},
686 {"Register HID Over GATT Service"
687 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_HOGP_SVC},
688 {"Register Custom Service"
689 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_CUSTOM_SVC},
690 {"Change Custom Value"
691 , BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_CUSTOM_VAL},
693 , BT_UNIT_TEST_FUNCTION_GATT_START_SERVER},
694 {"Get Specification Name from UUID"
695 , BT_UNIT_TEST_FUNCTION_GATT_GET_SPEC_NAME_FROM_UUID},
697 , BT_UNIT_TEST_FUNCTION_ANCS_PAIR},
698 {"ANCS (Watch notification)"
699 , BT_UNIT_TEST_FUNCTION_ANCS_WATCH},
700 {"ANCS (Positive action)"
701 , BT_UNIT_TEST_FUNCTION_ANCS_POSITIVE_ACTION},
702 {"ANCS (Negative action)"
703 , BT_UNIT_TEST_FUNCTION_ANCS_NEGATIVE_ACTION},
704 {"ANCS (Get Noti. Attr.)"
705 , BT_UNIT_TEST_FUNCTION_ANCS_GET_NOTI_ATTR},
706 {"bt_gatt_get_available_data_batching_packets"
707 , BT_UNIT_TEST_FUNCTION_GATT_GET_DATA_BATCHING_AVAILABLE_PACKETS},
708 {"bt_gatt_enable_data_batching"
709 , BT_UNIT_TEST_FUNCTION_GATT_ENABLE_DATA_BATCHING},
710 {"bt_gatt_disable_data_batching"
711 , BT_UNIT_TEST_FUNCTION_GATT_DISABLE_DATA_BATCHING},
712 {"Select this menu to set parameters and then select the function again."
713 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
717 tc_table_t tc_hps[] = {
720 , BT_UNIT_TEST_FUNCTION_BACK},
721 {"bt_hps_client_create"
722 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_CREATE},
723 {"bt_hps_client_destroy"
724 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_DESTROY},
725 {"bt_hps_client_print_all"
726 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_PRINT_ALL},
727 {"bt_hps_client_read_value"
728 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_READ_VALUE},
729 {"bt_hps_client_set_uri"
730 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_URI},
731 {"bt_hps_client_set_hdr"
732 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_HDR},
733 {"bt_hps_client_set_entity"
734 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_ENTITY},
735 {"bt_hps_client_set_cp"
736 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_CP},
737 {"bt_hps_client_get_uri"
738 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_URI},
739 {"bt_hps_client_get_hdr"
740 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_HDR},
741 {"bt_hps_client_get_entity"
742 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_ENTITY},
743 {"bt_hps_client_get_security"
744 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_SECURITY},
745 {"bt_hps_client_set_status_notification"
746 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_STATUS_NOTIFICATION},
747 {"bt_hps_client_unset_status_notification"
748 , BT_UNIT_TEST_FUNCTION_HPS_CLIENT_UNSET_STATUS_NOTIFICATION},
749 {"Select this menu to set parameters and then select the function again."
750 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
754 tc_table_t tc_pxp[] = {
757 , BT_UNIT_TEST_FUNCTION_BACK},
758 {"Proximity Reporter(Register)"
759 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_REGISTER},
760 {"Proximity Reporter(Unregister)"
761 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNREGISTER},
762 {"Proximity Reporter(Start Advertising Proximity Reporter)"
763 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_START_ADVERTISING},
764 {"Proximity Reporter (Set State Changed callback)"
765 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_CONNECTION_STATE_CHANGED_CB},
766 {"Proximity Reporter (UnSet State Changed callback)"
767 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_CONNECTION_STATE_CHANGED_CB},
768 {"Proximity Reporter (Set Property Changed callback)"
769 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_PROPERTIES_CHANGED_CB},
770 {"Proximity Reporter (UnSet Property Changed callback)"
771 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_PROPERTIES_CHANGED_CB},
772 {"Proximity Reporter(Read Linkloss Alert Level)"
773 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_LINKLOSS_ALERT},
774 {"Proximity Reporter(Read Immediate Alert Level)"
775 , BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_IMMEDIATE_ALERT},
776 {"Proximity Monitor(Create)"
777 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CREATE},
778 {"Proximity Monitor(Destroy)"
779 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DESTROY},
780 {"Proximity Monitor(Connect)"
781 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CONNECT},
782 {"Proximity Monitor(Disconnect)"
783 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DISCONNECT},
784 {"Proximity Monitor (Set State Changed callback)"
785 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_CONNECTION_STATE_CHANGED_CB},
786 {"Proximity Monitor (UnSet State Changed callback)"
787 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_CONNECTION_STATE_CHANGED_CB},
788 {"Proximity Monitor(Set LE Scan Filter for Proximity UUID)"
789 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_SCAN_FILTER_SERVICE_UUID},
790 {"Proximity Monitor(Unet LE Scan Filter for Proximity UUID)"
791 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_SCAN_FILTER_SERVICE_UUID},
792 {"Proximity Monitor(Write Linkloss Alert Level)"
793 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_LINKLOSS_ALERT},
794 {"Proximity Monitor(Write Immediate Alert Level)"
795 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_IMMEDIATE_ALERT},
796 {"Proximity Monitor(Read Linkloss Alert Level)"
797 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_LINKLOSS_ALERT},
798 {"Proximity Monitor(Read Immediate Alert Level)"
799 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_IMMEDIATE_ALERT},
800 {"Proximity Monitor(Read Signal Level)"
801 , BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_SIGNAL_LEVEL},
802 {"Select this menu to set parameters and then select the function again."
803 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
807 tc_table_t tc_avrcp[] = {
808 /* AVRCP functions */
810 , BT_UNIT_TEST_FUNCTION_BACK},
811 {"bt_avrcp_target_initialize"
812 , BT_UNIT_TEST_FUNCTION_AVRCP_TARGET_INITIALIZE},
813 {"bt_avrcp_target_deinitialize"
814 , BT_UNIT_TEST_FUNCTION_AVRCP_TARGET_DEINITIALIZE},
815 {"bt_avrcp_set_equalizer_state_changed_cb"
816 , BT_UNIT_TEST_FUNCTION_AVRCP_SET_EQUALIZER_STATE_CHANGED_CB},
817 {"bt_avrcp_set_repeat_mode_changed_cb"
818 , BT_UNIT_TEST_FUNCTION_AVRCP_SET_REPEAT_MODE_CHANGED_CB},
819 {"bt_avrcp_set_shuffle_mode_changed_cb"
820 , BT_UNIT_TEST_FUNCTION_AVRCP_SET_SHUFFLE_MODE_CHANGED_CB},
821 {"bt_avrcp_set_scan_mode_changed_cb"
822 , BT_UNIT_TEST_FUNCTION_AVRCP_SET_SCAN_MODE_CHANGED_CB},
823 {"bt_avrcp_unset_equalizer_state_changed_cb"
824 , BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_EQUALIZER_STATE_CHANGED_CB},
825 {"bt_avrcp_unset_repeat_mode_changed_cb"
826 , BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_REPEAT_MODE_CHANGED_CB},
827 {"bt_avrcp_unset_shuffle_mode_changed_cb"
828 , BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_SHUFFLE_MODE_CHANGED_CB},
829 {"bt_avrcp_unset_scan_mode_changed_cb"
830 , BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_SCAN_MODE_CHANGED_CB},
831 {"bt_avrcp_control_initialize"
832 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_INITIALIZE},
833 {"bt_avrcp_control_deinitialize"
834 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_DEINITIALIZE},
835 {"bt_avrcp_control_connect"
836 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_CONNECT},
837 {"bt_avrcp_control_disconnect"
838 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_DISCONNECT},
839 {"bt_avrcp_control_player_PLAY"
840 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PLAY},
841 {"bt_avrcp_control_player_STOP"
842 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_STOP},
843 {"bt_avrcp_control_player_PAUSE"
844 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PAUSE},
845 {"bt_avrcp_control_player_FF"
846 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_FF},
847 {"bt_avrcp_control_player_RW"
848 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_RW},
849 {"bt_avrcp_control_player_NEXT"
850 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_NEXT},
851 {"bt_avrcp_control_player_PREV"
852 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PREV},
853 {"bt_avrcp_control_player_SET_ABSOLUTE_VOLUME"
854 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_ABSOLUTE_VOLUME},
855 {"bt_avrcp_control_player_VOLUME_UP"
856 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_UP},
857 {"bt_avrcp_control_player_VOLUME_DOWN"
858 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_DOWN},
859 {"bt_avrcp_control_player_GET_REPEAT"
860 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_REPEAT},
861 {"bt_avrcp_control_player_SET_REPEAT"
862 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_REPEAT},
863 {"bt_avrcp_control_player_GET_SHUFFLE"
864 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_SHUFFLE},
865 {"bt_avrcp_control_player_SET_SHUFFLE"
866 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_SHUFFLE},
867 {"bt_avrcp_control_player_GET_POSITION"
868 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_POSITION},
869 {"bt_avrcp_control_player_GET_PLAY STATUS"
870 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_PLAY_STATUS},
871 {"bt_avrcp_control_player_GET_TRACK_INFO"
872 , BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_TRACK_INFO},
873 {"bt_avrcp_set_position_changed_cb"
874 , BT_UNIT_TEST_FUNCTION_AVRCP_SET_SONG_POSITION_CHANGED_CB},
875 {"bt_avrcp_set_play_status_changed_cb"
876 , BT_UNIT_TEST_FUNCTION_AVRCP_SET_PLAY_STATE_CHANGED_CB},
877 {"bt_avrcp_set_track_info_changed_cb"
878 , BT_UNIT_TEST_FUNCTION_AVRCP_SET_TRACK_INFO_CHANGED_CB},
879 {"bt_avrcp_unset_position_changed_cb"
880 , BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_SONG_POSITION_CHANGED_CB},
881 {"bt_avrcp_unset_play_status_changed_cb"
882 , BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_PLAY_STATE_CHANGED_CB},
883 {"bt_avrcp_unset_track_info_changed_cb"
884 , BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_TRACK_INFO_CHANGED_CB},
885 {"Select this menu to set parameters and then select the function again."
886 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
890 tc_table_t tc_hid[] = {
893 , BT_UNIT_TEST_FUNCTION_BACK},
894 {"bt_hid_host_initialize"
895 , BT_UNIT_TEST_FUNCTION_HID_HOST_INITIALIZE},
896 {"bt_hid_host_deinitialize"
897 , BT_UNIT_TEST_FUNCTION_HID_HOST_DEINITIALIZE},
898 {"bt_hid_host_connect"
899 , BT_UNIT_TEST_FUNCTION_HID_HOST_CONNECT},
900 {"bt_hid_host_disconnect"
901 , BT_UNIT_TEST_FUNCTION_HID_HOST_DISCONNECT},
902 {"bt_hid_device_activate"
903 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_ACTIVATE},
904 {"bt_hid_device_connect"
905 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_CONNECT},
906 {"bt_hid_device_disconnect"
907 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_DISCONNECT},
908 {"bt_hid_device_deactivate"
909 , BT_UNIT_TEST_FUCNTION_HID_DEVICE_DEACTIVATE},
910 {"bt_hid_device_send_mouse_event"
911 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT},
912 {"bt_hid_device_send_key_event"
913 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_KEY_EVENT},
914 {"bt_hid_device_send_custom_event"
915 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_RC_KEY_EVENT},
916 {"bt_hid_device_set_data_received_cb"
917 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_SET_DATA_RECEIVED_CB},
918 {"bt_hid_device_unset_data_received_cd"
919 , BT_UNIT_TEST_FUNCTION_HID_DEVICE_UNSET_DATA_RECEIVED_CB},
920 {"Select this menu to set parameters and then select the function again."
921 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
925 tc_table_t tc_ipsp[] = {
928 , BT_UNIT_TEST_FUNCTION_BACK},
929 {"bt_ipsp_register[Server role]"
930 , BT_UNIT_TEST_FUNCTION_IPSP_REGISTER},
931 {"bt_ipsp_unregister[Server role]"
932 , BT_UNIT_TEST_FUNCTION_IPSP_UNREGISTER},
933 {"bt_ipsp_initialize[Server role]"
934 , BT_UNIT_TEST_FUNCTION_IPSP_INITIALIZE},
935 {"bt_ipsp_deinitialize[Server role]"
936 , BT_UNIT_TEST_FUNCTION_IPSP_DEINITIALIZE},
937 {"bt_ipsp_connect[Client role]"
938 , BT_UNIT_TEST_FUNCTION_IPSP_CONNECT},
939 {"bt_ipsp_disconnect[Client role]"
940 , BT_UNIT_TEST_FUNCTION_IPSP_DISCONNECT},
941 {"bt_ipsp_start_advertising[Server role]"
942 , BT_UNIT_TEST_FUNCTION_IPSP_START_ADVERTISING},
943 {"bt_ipsp_set_connection_state_changed_cb[Client/Server role]"
944 , BT_UNIT_TEST_FUNCTION_IPSP_SET_CONNECTION_STATE_CHANGED_CB},
945 {"bt_ipsp_unset_connection_state_changed_cb[Client/Server role]"
946 , BT_UNIT_TEST_FUNCTION_IPSP_UNSET_CONNECTION_STATE_CHANGED_CB},
947 {"bt_ipsp_create_ipsp_app_server_socket[Server App role]"
948 , BT_UNIT_TEST_FUNCTION_IPSP_CREATE_APP_SERVER_SOCKET},
949 {"bt_ipsp_connect_with_ipsp_app_server_socket[Client App role]"
950 , BT_UNIT_TEST_FUNCTION_IPSP_CONNECT_WITH_APP_SERVER_SOCKET},
951 {"bt_ipsp_send_ipv6_application_data[Client/Server App role][Max 255 bytes]"
952 , BT_UNIT_TEST_FUNCTION_IPSP_SEND_IPV6_APP_DATA},
953 {"bt_ipsp_recv_ipv6_application_data[Client/Server App role]"
954 , BT_UNIT_TEST_FUNCTION_IPSP_RECV_IPV6_APP_DATA},
955 {"bt_ipsp_close_socket[Client/Server App role]"
956 , BT_UNIT_TEST_FUNCTION_IPSP_CLOSE_SOCKET},
957 {"Select this menu to set parameters and then select the function again."
958 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
962 tc_table_t tc_HDP[] = {
965 , BT_UNIT_TEST_FUNCTION_BACK},
966 {"bt_hdp_register_sink_app"
967 , BT_UNIT_TEST_FUNCTION_HDP_REGISTER_SINK_APP},
968 {"bt_hdp_unregister_sink_app"
969 , BT_UNIT_TEST_FUNCTION_HDP_UNREGISTER_SINK_APP},
970 {"bt_hdp_connect_to_source"
971 , BT_UNIT_TEST_FUNCTION_HDP_CONNECT_TO_SOURCE},
973 , BT_UNIT_TEST_FUNCTION_HDP_DISCONNECT},
975 , BT_UNIT_TEST_FUNCTION_HDP_SEND_DATA},
976 {"bt_hdp_set_connection_state_changed_cb"
977 , BT_UNIT_TEST_FUNCTION_HDP_SET_CONNECTION_CB},
978 {"bt_hdp_unset_connection_state_changed_cb"
979 , BT_UNIT_TEST_FUNCTION_HDP_UNSET_CONNECTION_CB},
980 {"bt_hdp_set_data_received_cb"
981 , BT_UNIT_TEST_FUNCTION_HDP_SET_DATA_RECEIVED_CB},
982 {"bt_hdp_unset_data_received_cb"
983 , BT_UNIT_TEST_FUNCTION_HDP_UNSET_DATA_RECEIVED_CB},
984 {"Select this menu to set parameters and then select the function again."
985 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
989 tc_table_t tc_DPM[] = {
992 , BT_UNIT_TEST_FUNCTION_BACK},
993 {"bt_dpm_Set_default_policies"
994 , BT_UNIT_TEST_FUNCTION_DPM_SET_DEFAULT_POLICIES},
995 {"bt_dpm_set_allow_bluetooth_mode"
996 , BT_UNIT_TEST_FUNCTION_DPM_SET_ALLOW_BLUETOOTH_MODE},
997 {"bt_dpm_get_allow_bluetooth_mode"
998 , BT_UNIT_TEST_FUNCTION_DPM_GET_ALLOW_BLUETOOTH_MODE},
999 {"bt_dpm_activate_device_restriction"
1000 , BT_UNIT_TEST_FUNCTION_DPM_ACTIVATE_DEVICE_RESTRICTION},
1001 {"bt_dpm_is_device_restriction_active"
1002 , BT_UNIT_TEST_FUNCTION_DPM_IS_DEVICE_RESTRICTIO_ACTIVATE},
1003 {"bt_dpm_activate_bluetoooth_uuid_restriction"
1004 , BT_UNIT_TEST_FUNCTION_DPM_ACTIVATE_UUID_RESTRICTION},
1005 {"bt_dpm_is_uuid_restriction_active"
1006 , BT_UNIT_TEST_FUNCTION_DPM_IS_UUID_RESTRICTIO_ACTIVATE},
1007 {"bt_dpm_add_devices_to_blacklist"
1008 , BT_UNIT_TEST_FUNCTION_DPM_ADD_DEVICES_TO_BLACKLIST},
1009 {"bt_dpm_add_devices_to_whitelist"
1010 , BT_UNIT_TEST_FUNCTION_DPM_ADD_DEVICES_TO_WHITELIST},
1011 {"bt_dpm_add_uuids_to_blacklist"
1012 , BT_UNIT_TEST_FUNCTION_DPM_ADD_UUIDS_TO_BLACKLIST},
1013 {"bt_dpm_add_uuids_to_whitelist"
1014 , BT_UNIT_TEST_FUNCTION_DPM_ADD_UUIDS_TO_WHITELIST},
1015 {"bt_dpm_get_devices_from_blacklist"
1016 , BT_UNIT_TEST_FUNCTION_DPM_GET_DEVICES_FROM_BLACKLIST},
1017 {"bt_dpm_get_devices_from_whitelist"
1018 , BT_UNIT_TEST_FUNCTION_DPM_GET_DEVICES_FROM_WHITELIST},
1019 {"bt_dpm_get_uuids_from_blacklist"
1020 , BT_UNIT_TEST_FUNCTION_DPM_GET_UUIDS_FROM_BLACKLIST},
1021 {"bt_dpm_get_uuids_from_whitelist"
1022 , BT_UNIT_TEST_FUNCTION_DPM_GET_UUIDS_FROM_WHITELIST},
1023 {"bt_dpm_clear_devices_from_blacklist"
1024 , BT_UNIT_TEST_FUNCTION_DPM_CLEAR_DEVICES_FROM_BLACKLIST},
1025 {"bt_dpm_clear_devices_from_whitelist"
1026 , BT_UNIT_TEST_FUNCTION_DPM_CLEAR_DEVICES_FROM_WHITELIST},
1027 {"bt_dpm_clear_uuids_from_blacklist"
1028 , BT_UNIT_TEST_FUNCTION_DPM_CLEAR_UUIDS_FROM_BLACKLIST},
1029 {"bt_dpm_clear_uuids_from_whitelist"
1030 , BT_UNIT_TEST_FUNCTION_DPM_CLEAR_UUIDS_FROM_WHITELIST},
1031 {"bt_dpm_remove_device_from_blacklist"
1032 , BT_UNIT_TEST_FUNCTION_DPM_REMOVE_DEVICE_FROM_BLACKLIST},
1033 {"bt_dpm_remove_device_from_whitelist"
1034 , BT_UNIT_TEST_FUNCTION_DPM_REMOVE_DEVICE_FROM_WHITELIST},
1035 {"bt_dpm_remove_uuid_from_blacklist"
1036 , BT_UNIT_TEST_FUNCTION_DPM_REMOVE_UUIDS_FROM_BLACKLIST},
1037 {"bt_dpm_remove_uuid_from_whitelist"
1038 , BT_UNIT_TEST_FUNCTION_DPM_REMOVE_UUIDS_FROM_WHITELIST},
1039 {"bt_dpm_set_allow_outgoing_call"
1040 , BT_UNIT_TEST_FUNCTION_DPM_SET_ALLOW_OUTGOING_CALL},
1041 {"bt_dpm_get_allow_outgoing_call"
1042 , BT_UNIT_TEST_FUNCTION_DPM_GET_ALLOW_OUTGOING_CALL},
1043 {"bt_dpm_set_pairing_state"
1044 , BT_UNIT_TEST_FUNCTION_DPM_SET_PAIRING_STATE},
1045 {"bt_dpm_get_pairing_state"
1046 , BT_UNIT_TEST_FUNCTION_DPM_GET_PAIRING_STATE},
1047 {"bt_dpm_set_profile_state"
1048 , BT_UNIT_TEST_FUNCTION_DPM_SET_PROFILE_STATE},
1049 {"bt_dpm_get_profile_state"
1050 , BT_UNIT_TEST_FUNCTION_DPM_GET_PROFILE_STATE},
1051 {"bt_dpm_set_desktop_connectivity_state"
1052 , BT_UNIT_TEST_FUNCTION_DPM_SET_DESKTOP_CONNECTIVITY_STATE},
1053 {"bt_dpm_get_desktop_connectivity_state"
1054 , BT_UNIT_TEST_FUNCTION_DPM_GET_DESKTOP_CONNECTIVITY_STATE},
1055 {"bt_dpm_set_discoverable_state"
1056 , BT_UNIT_TEST_FUNCTION_DPM_SET_DISCOVERABLE_STATE},
1057 {"bt_dpm_get_discoverable_state"
1058 , BT_UNIT_TEST_FUNCTION_DPM_GET_DISCOVERABLE_STATE},
1059 {"bt_dpm_set_limited_discoverable_state"
1060 , BT_UNIT_TEST_FUNCTION_DPM_SET_LIMITED_DISCOVERABLE_STATE},
1061 {"bt_dpm_get_limited_discoverable_state"
1062 , BT_UNIT_TEST_FUNCTION_DPM_GET_LIMITED_DISCOVERABLE_STATE},
1063 {"bt_dpm_set_data_transfer_state"
1064 , BT_UNIT_TEST_FUNCTION_DPM_SET_DATA_TRANSFER_STATE},
1065 {"bt_dpm_get_data_transfer_state"
1066 , BT_UNIT_TEST_FUNCTION_DPM_GET_DATA_TRANSFER_STATE},
1067 {"Select this menu to set parameters and then select the function again."
1068 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
1072 tc_table_t tc_hf[] = {
1073 /* Handsfree role functions */
1075 , BT_UNIT_TEST_FUNCTION_BACK},
1077 , BT_UNIT_TEST_FUNCTION_HF_INITIALIZE},
1078 {"bt_hf_deinitialize"
1079 , BT_UNIT_TEST_FUNCTION_HF_DEINITIALIZE},
1080 {"(CALL Handling) bt_hf_notify_call_event(answer)"
1081 , BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_ANSWER},
1082 {"(CALL Handling) bt_hf_notify_call_event(initiate)"
1083 , BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_INIT},
1084 {"(CALL Handling) bt_hf_notify_call_event(terminate)"
1085 , BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_TERM},
1086 {"(CALL Status) bt_hf_get_call_status_info_list"
1087 , BT_UNIT_TEST_FUNCTION_HF_GET_CALL_STATUS_INFO_LIST},
1088 {"(CALL Status) bt_hf_request_call_status_info_list"
1089 , BT_UNIT_TEST_FUNCTION_HF_REQUEST_CALL_STATUS_INFO_LIST},
1090 {"(CALL Status) bt_hf_set_call_handling_event_cb()"
1091 , BT_UNIT_TEST_FUNCTION_HF_SET_CALL_EVENT_CB},
1092 {"(CALL Status) bt_hf_unset_call_handling_event_cb"
1093 , BT_UNIT_TEST_FUNCTION_HF_UNSET_CALL_EVENT_CB},
1094 {"(CALL Status) bt_hf_set_call_status_updated_event_cb"
1095 , BT_UNIT_TEST_FUNCTION_HF_SET_CALL_STATUS_UPDATED_EVENT_CB},
1096 {"(CALL Status) bt_hf_unset_call_status_updated_event_cb"
1097 , BT_UNIT_TEST_FUNCTION_HF_UNSET_CALL_STATUS_UPDATED_EVENT_CB},
1098 {"(Volume) bt_hf_notify_speaker_gain"
1099 , BT_UNIT_TEST_FUNCTION_HF_NOTIFY_SPEAKER_GAIN},
1100 {"(Volume) bt_hf_set_speaker_gain_changed_cb"
1101 , BT_UNIT_TEST_FUNCTION_HF_SET_SPEAKER_GAIN_CB},
1102 {"(Volume) bt_hf_unset_speaker_gain_changed_cb"
1103 , BT_UNIT_TEST_FUNCTION_HF_UNSET_SPEAKER_GAIN_CB},
1104 {"(Voice-recog) bt_hf_notify_voice_recognition_state(true)"
1105 , BT_UNIT_TEST_FUNCTION_HF_NOTIFY_VOICE_REC_TRUE},
1106 {"(Voice-recog) bt_hf_notify_voice_recognition_state(false)"
1107 , BT_UNIT_TEST_FUNCTION_HF_NOTIFY_VOICE_REC_FALSE},
1108 {"(SCO) bt_hf_is_sco_opened"
1109 , BT_UNIT_TEST_FUNCTION_HF_IS_SCO_OPENED},
1110 {"(SCO) bt_hf_get_codec_id"
1111 , BT_UNIT_TEST_FUNCTION_HF_GET_CODEC_ID},
1112 {"(SCO) bt_hf_set_sco_state_changed_cb()"
1113 , BT_UNIT_TEST_FUNCTION_HF_SET_SCO_CHANGED_CB},
1114 {"(SCO) bt_hf_unset_sco_state_changed_cb()"
1115 , BT_UNIT_TEST_FUNCTION_HF_UNSET_SCO_CHANGED_CB},
1116 {"Select this menu to set parameters and then select the function again."
1117 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
1121 tc_table_t tc_pbap_client[] = {
1124 , BT_UNIT_TEST_FUNCTION_BACK},
1125 {"bt_pbap_client_initialize()"
1126 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_INITIALIZE},
1127 {"bt_pbap_client_deinitialize()"
1128 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_DEINITIALIZE},
1129 {"bt_pbap_client_set_connection_state_changed_cb()"
1130 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_SET_CONNECTION_STATE_CHANGED_CB},
1131 {"bt_pbap_client_unset_connection_state_changed_cb()"
1132 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_UNSET_CONNECTION_STATE_CHANGED_CB},
1133 {"bt_pbap_client_connect()"
1134 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_CONNECT},
1135 {"bt_pbap_client_disconnect()"
1136 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_DISCONNECT},
1137 {"bt_pbap_client_is_connected()"
1138 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_IS_CONNECTED},
1139 {"bt_pbap_client_get_phone_book_size()"
1140 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_GETSIZE},
1141 {"bt_pbap_client_get_phone_book()"
1142 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_PHONEBOOKPULL},
1143 {"bt_pbap_client_get_list()"
1144 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDLIST},
1145 {"bt_pbap_client_pull_vcard()"
1146 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDPULL},
1147 {"bt_pbap_client_search_phone_book()"
1148 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_PHONEBOOKSEARCH},
1149 {"bt_pbap_client_get_list() Maxlist=0"
1150 , BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDLIST_MAXLIST_ZERO},
1151 {"Select this menu to set parameters and then select the function again."
1152 , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
1156 tc_table_t tc_tds_provider[] = {
1157 /* TDS provider functions */
1159 , BT_UNIT_TEST_FUNCTION_BACK},
1160 {"TDS Provider(Register)"
1161 , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_REGISTER},
1162 {"TDS Provider(Unregister)"
1163 , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNREGISTER},
1164 {"TDS Provider set activation req callback"
1165 , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_SET_ACT_REQ_CB},
1166 {"TDS Provider unset activation req callback"
1167 , BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNSET_ACT_REQ_CB},
1168 {"TDS CUSTOM Provider(Create)"
1169 , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_CREATE},
1170 {"TDS CUSTOM Provider(Destroy)"
1171 , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_DESTROY},
1172 {"TDS CUSTOM Provider(Set transport Data)"
1173 , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_TRANSPORT_DATA},
1174 {"TDS CUSTOM Provider(Set manuf Data)"
1175 , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_MANUF_DATA},
1176 {"TDS CUSTOM Provider(Send Activation Response)"
1177 , BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SEND_ACTIVATION_RESP},
1181 tc_table_t tc_tds_seeker[] = {
1182 /* TDS Seeker functions */
1184 , BT_UNIT_TEST_FUNCTION_BACK},
1185 {"TDS Seeker Start Discovering Provider"
1186 , BT_UNIT_TEST_FUNCTION_TDS_START_DISCOVERING_PROVIDER},
1187 {"TDS Seeker Stop Discovering Provider"
1188 , BT_UNIT_TEST_FUNCTION_TDS_STOP_DISCOVERING_PROVIDER},
1189 {"TDS Seeker(Create)"
1190 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CREATE},
1191 {"TDS Seeker(Destroy)"
1192 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DESTROY},
1193 {"TDS Set Seeker Connection cb"
1194 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_SET_CONNECTION_CALLBACK},
1195 {"TDS Seeker Connect(remote)"
1196 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CONNECT},
1197 {"TDS Seeker DisConnect(remote)"
1198 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DISCONNECT},
1199 {"TDS UnSet Seeker Connection cb"
1200 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_UNSET_CONNECTION_CALLBACK},
1201 {"TDS Read Complete Transport Data (remote)"
1202 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_GET_COMPLETE_DATA},
1203 {"TDS Activate Control Point (remote)"
1204 , BT_UNIT_TEST_FUNCTION_TDS_SEEKER_ACTIVATE_CONTROL_POINT},
1208 tc_table_t tc_otp[] = {
1211 , BT_UNIT_TEST_FUNCTION_BACK},
1212 {"bt_otp_server_init"
1213 , BT_UNIT_TEST_FUNCTION_OTP_SERVER_INIT},
1214 {"bt_otp_server_deinit"
1215 , BT_UNIT_TEST_FUNCTION_OTP_SERVER_DEINIT},
1216 {"bt_otp_set_server_state_changed_cb"
1217 , BT_UNIT_TEST_FUNCTION_OTP_SET_SERVER_STATE_CHANGED_CB},
1218 {"bt_otp_unset_server_state_changed_cb"
1219 , BT_UNIT_TEST_FUNCTION_OTP_UNSET_SERVER_STATE_CHANGED_CB},
1220 {"bt_otp_client_create"
1221 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE},
1222 {"bt_otp_client_destroy"
1223 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DESTROY},
1224 {"bt_otp_client_set_connection_state_changed_cb"
1225 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SET_CONNECTION_CALLBACK},
1226 {"bt_otp_client_unset_connection_state_changed_cb"
1227 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_UNSET_CONNECTION_CALLBACK},
1228 {"bt_otp_client_connect"
1229 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CONNECT},
1230 {"bt_otp_client_disconnect"
1231 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCONNECT},
1232 {"bt_otp_client_discover_all_objects"
1233 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCOVER_ALL_OBJECTS},
1234 {"bt_otp_client_select_object"
1235 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SELECT_OBJ},
1236 {"bt_otp_client_read_object_contents"
1237 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_READ_OBJ_CONTENTS},
1238 {"bt_otp_client_create_object"
1239 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE_OBJ},
1240 {"bt_otp_client_write_object"
1241 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_WRITE_OBJ},
1242 {"bt_otp_client_execute_object"
1243 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_EXECUTE_OBJ},
1244 {"bt_otp_client_delete_object"
1245 , BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DELETE_OBJ},
1249 tc_table_t tc_hr_sensor[] = {
1250 /* HR Sensor functions */
1252 , BT_UNIT_TEST_FUNCTION_BACK},
1253 {"[sensor]Set Location Value"
1254 , BT_UNIT_TEST_FUNCTION_HR_SENSOR_SET_LOC_VALUE},
1255 {"[sensor]Set Contact Value"
1256 , BT_UNIT_TEST_FUNCTION_HR_SENSOR_SET_CONTACT_VALUE},
1257 {"[sensor]Set Device Name"
1258 , BT_UNIT_TEST_FUNCTION_HR_SENSOR_SET_DEVICE_NAME},
1259 {"[sensor] Create Sensor"
1260 , BT_UNIT_TEST_FUNCTION_HR_SENSOR_CREATE},
1261 {"[sensor] Notify Collector"
1262 , BT_UNIT_TEST_FUNCTION_HR_SENSOR_NOTIFY},
1263 {"[sensor] Destroy Sensor"
1264 , BT_UNIT_TEST_FUNCTION_HR_SENSOR_DESTORY},
1268 tc_table_t tc_hr_collector[] = {
1270 , BT_UNIT_TEST_FUNCTION_BACK},
1271 {"[collector]Set Connection State callback"
1272 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_CONNECTION_STATE_CALLBACK},
1273 {"[collector]Set/Unset Notification"
1274 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_SET_NOTIFICATION},
1275 {"[collector]Start Scan"
1276 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_START_SCAN},
1277 {"[collector]Stop Scan"
1278 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_STOP_SCAN},
1279 {"[collector]Connect Sensor"
1280 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_CONNECT},
1281 {"[collector]Disconnect Sensor"
1282 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_DISCONNECT},
1283 {"[collector]Create Collector"
1284 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_CREATE},
1285 {"[collector]Destroy Collector"
1286 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_DESTROY},
1287 {"[collector]Read Body Sensor Location"
1288 , BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_GET_BSL_LOC},
1293 tc_table_t tc_automated_test[] = {
1294 /* Automated test Functions*/
1295 {"BACK" , BT_UNIT_TEST_FUNCTION_BACK},
1296 {"On/Off repeat test()" , BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST},
1297 {"On/Off repeat(1sec delay) test()" , BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_1_SEC_DELAY},
1298 {"On/Off repeat(Nsec delay) test()" , BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_N_SEC_DELAY},
1299 {"AppControl default" , BT_UNIT_TEST_FUNCTION_APP_CONTROL_DEFAULT},
1300 {"AppControl 2.3 BT onoff" , BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_3_BT_ONOFF},
1301 {"AppControl 2.3 BT Visibility" , BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_3_BT_VISIBILITY},
1302 {"AppControl 2.4 BT onoff" , BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_4_BT_ONOFF},
1303 {"AppControl 2.4 BT Visibility" , BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_4_BT_VISIBILITY},
1304 {"Check feature(ex.tizen.org/feature/network.bluetooth)" , BT_UNIT_TEST_FUNCTION_CHECK_FEATURE},
1306 {"Select this menu to set parameters and then select the function again." , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
1310 static void __bt_initialize_all(void);
1312 void __bt_gatt_client_value_changed_cb(bt_gatt_h chr, char *value, int len,
1315 void tc_usage_print(void)
1318 tc_table_t *tc_table = NULL;
1320 switch (current_tc_table) {
1321 case BT_UNIT_TEST_TABLE_SET_ADDRESS:
1322 TC_PRT("Key 0 : usage BACK");
1323 TC_PRT("Input the address of remote device."
1324 "(e.g.,F6:FB:8F:D8:C8:7C)\n\n");
1326 case BT_UNIT_TEST_TABLE_ADAPTER:
1327 tc_table = tc_adapter;
1329 case BT_UNIT_TEST_TABLE_ADAPTER_LE:
1330 tc_table = tc_adapter_le;
1332 case BT_UNIT_TEST_TABLE_DEVICE:
1333 tc_table = tc_device;
1335 case BT_UNIT_TEST_TABLE_SOCKET:
1336 tc_table = tc_socket;
1338 case BT_UNIT_TEST_TABLE_OPP:
1341 case BT_UNIT_TEST_TABLE_AUDIO:
1342 tc_table = tc_audio;
1344 case BT_UNIT_TEST_TABLE_PAN:
1347 case BT_UNIT_TEST_TABLE_GATT:
1350 case BT_UNIT_TEST_TABLE_HPS:
1353 case BT_UNIT_TEST_TABLE_AVRCP:
1354 tc_table = tc_avrcp;
1356 case BT_UNIT_TEST_TABLE_HID:
1359 case BT_UNIT_TEST_TABLE_IPSP:
1362 case BT_UNIT_TEST_TABLE_HDP:
1365 case BT_UNIT_TEST_TABLE_DPM:
1368 case BT_UNIT_TEST_TABLE_PXP:
1371 case BT_UNIT_TEST_TABLE_HF:
1372 if (!TIZEN_PROFILE_WEARABLE_IVI)
1376 case BT_UNIT_TEST_TABLE_PBAP_CLIENT:
1377 if (!TIZEN_PROFILE_WEARABLE_IVI)
1379 tc_table = tc_pbap_client;
1381 case BT_UNIT_TEST_TABLE_ETC:
1382 if (input_automated_test_delay == true) {
1383 TC_PRT("Input the delay for automated"
1384 "test.(e.g., 10)\n\n");
1387 tc_table = tc_automated_test;
1389 case BT_UNIT_TEST_FUNCTION_INITIALIZE_ALL:
1390 __bt_initialize_all();
1391 TC_PRT("Key 0 : usage BACK");
1393 case BT_UNIT_TEST_TABLE_TDS_PROVIDER:
1394 tc_table = tc_tds_provider;
1396 case BT_UNIT_TEST_TABLE_TDS_SEEKER:
1397 tc_table = tc_tds_seeker;
1399 case BT_UNIT_TEST_TABLE_OTP:
1402 case BT_UNIT_TEST_TABLE_HRP_SENSOR:
1403 tc_table = tc_hr_sensor;
1405 case BT_UNIT_TEST_TABLE_HRP_COLLECTOR:
1406 tc_table = tc_hr_collector;
1408 case BT_UNIT_TEST_TABLE_MAIN:
1415 while (tc_table[i].tc_name) {
1416 TC_PRT("Key %d : usage %s", tc_table[i].tc_code,
1417 tc_table[i].tc_name);
1423 static void __bt_free_test_param(tc_params_t *param)
1427 for (i = 0; i < param->param_count; i++)
1428 g_free(param->params[i]);
1429 g_free(param->params);
1430 param->params = NULL;
1431 param->param_count = 0;
1434 static const char *__bt_get_error_message(bt_error_e err)
1436 const char *err_str = NULL;
1440 err_str = "BT_ERROR_NONE";
1442 case BT_ERROR_CANCELLED:
1443 err_str = "BT_ERROR_CANCELLED";
1445 case BT_ERROR_INVALID_PARAMETER:
1446 err_str = "BT_ERROR_INVALID_PARAMETER";
1448 case BT_ERROR_OUT_OF_MEMORY:
1449 err_str = "BT_ERROR_OUT_OF_MEMORY";
1451 case BT_ERROR_RESOURCE_BUSY:
1452 err_str = "BT_ERROR_RESOURCE_BUSY";
1454 case BT_ERROR_TIMED_OUT:
1455 err_str = "BT_ERROR_TIMED_OUT";
1457 case BT_ERROR_NOW_IN_PROGRESS:
1458 err_str = "BT_ERROR_NOW_IN_PROGRESS";
1460 case BT_ERROR_NOT_INITIALIZED:
1461 err_str = "BT_ERROR_NOT_INITIALIZED";
1463 case BT_ERROR_NOT_ENABLED:
1464 err_str = "BT_ERROR_NOT_ENABLED";
1466 case BT_ERROR_ALREADY_DONE:
1467 err_str = "BT_ERROR_ALREADY_DONE";
1469 case BT_ERROR_OPERATION_FAILED:
1470 err_str = "BT_ERROR_OPERATION_FAILED";
1472 case BT_ERROR_NOT_IN_PROGRESS:
1473 err_str = "BT_ERROR_NOT_IN_PROGRESS";
1475 case BT_ERROR_REMOTE_DEVICE_NOT_BONDED:
1476 err_str = "BT_ERROR_REMOTE_DEVICE_NOT_BONDED";
1478 case BT_ERROR_AUTH_REJECTED:
1479 err_str = "BT_ERROR_AUTH_REJECTED";
1481 case BT_ERROR_AUTH_FAILED:
1482 err_str = "BT_ERROR_AUTH_FAILED";
1484 case BT_ERROR_REMOTE_DEVICE_NOT_FOUND:
1485 err_str = "BT_ERROR_REMOTE_DEVICE_NOT_FOUND";
1487 case BT_ERROR_SERVICE_SEARCH_FAILED:
1488 err_str = "BT_ERROR_SERVICE_SEARCH_FAILED";
1490 case BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED:
1491 err_str = "BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED";
1493 case BT_ERROR_PERMISSION_DENIED:
1494 err_str = "BT_ERROR_PERMISSION_DENIED";
1496 case BT_ERROR_SERVICE_NOT_FOUND:
1497 err_str = "BT_ERROR_SERVICE_NOT_FOUND";
1499 case BT_ERROR_NO_DATA:
1500 err_str = "BT_ERROR_NO_DATA";
1502 case BT_ERROR_NOT_SUPPORTED:
1503 err_str = "BT_ERROR_NOT_SUPPORTED";
1505 case BT_ERROR_DEVICE_POLICY_RESTRICTION:
1506 err_str = "DEVICE_POLICY_RESTRICTION";
1509 err_str = "NOT Defined";
1516 void __bt_adapter_state_changed_cb(int result,
1517 bt_adapter_state_e adapter_state, void *user_data)
1519 TC_PRT("__bt_adapter_state_changed_cb");
1520 TC_PRT("result: %s", __bt_get_error_message(result));
1522 (adapter_state == BT_ADAPTER_ENABLED) ?
1523 "ENABLED" : "DISABLED");
1526 static void __bt_adapter_disable_battery_cb(bt_battery_info_s *data)
1528 TC_PRT("Battery data: %ld %ld %d %d", data->session_start_time,
1529 data->session_end_time, data->session_scan_time, data->session_connected_time);
1530 if (data->atm_list == NULL) {
1531 TC_PRT("No data transaction in this session");
1535 TC_PRT("Displaying app-wise transaction details");
1536 for (GSList *l = data->atm_list; l != NULL; l = g_slist_next(l)) {
1537 bt_battery_app_info_s *t = (bt_battery_app_info_s *)(l->data);
1538 TC_PRT("uid: %ld, pid: %ld, received bytes: %d, sent bytes: %d, time: %u",
1539 (long int)(t->uid), (long int)(t->pid), t->rx_bytes, t->tx_bytes, t->time);
1543 static void __bt_adapter_device_visibility_mode_changed_cb(int result,
1544 bt_adapter_visibility_mode_e visibility_mode,
1547 TC_PRT("result: %s", __bt_get_error_message(result));
1548 TC_PRT("visibility_mode: %d", visibility_mode);
1551 static void __bt_adapter_device_visibility_duration_changed_cb(int duration,
1554 TC_PRT("visibility_duration: %d", duration);
1557 static void __bt_adapter_connectable_changed_cb(int result,
1558 bool connectable, void *user_data)
1560 if (result != BT_ERROR_NONE) {
1561 TC_PRT("connectable change is failed : [0x%04x]", result);
1565 TC_PRT("%s", connectable ? "Connectable" : "Non-connectable");
1568 static void __bt_adapter_manufacturer_data_changed_cb(char *data,
1569 int len, void *user_data)
1573 TC_PRT("manufacturer data is changed");
1574 for (i = 0; i < len; i++)
1575 TC_PRT("[%d] %02x", i, data[i]);
1578 static void __bt_adapter_authentication_req_cb(
1579 int result, bt_authentication_type_info_e auth_type,
1580 char *device_name, char *remote_addr,
1581 char *pass_key, void *user_data)
1583 TC_PRT("__bt_adapter_authentication_req_cb:"
1584 " device name = %s", device_name);
1585 TC_PRT("__bt_adapter_authentication_req_cb:"
1586 " device address = %s", remote_addr);
1588 if (auth_type == BT_AUTH_PIN_REQUEST) {
1589 TC_PRT("Auth Type = BT_AUTH_PIN_REQUEST");
1590 } else if (auth_type == BT_AUTH_PASSKEY_CONFIRM_REQUEST) {
1591 TC_PRT("Auth Type = BT_AUTH_PASSKEY_CONFIRM_REQUEST");
1592 TC_PRT("Passkey: [%s]", pass_key);
1593 } else if (auth_type == BT_AUTH_KEYBOARD_PASSKEY_DISPLAY) {
1594 TC_PRT("Auth Type = BT_AUTH_KEYBOARD_PASSKEY_DISPLAY");
1595 TC_PRT("Passkey: [%s]", pass_key);
1599 static void __bt_adapter_authentication_request_cb(
1600 bool incoming, bt_authentication_type_info_e auth_type,
1601 char *device_name, char *remote_addr,
1602 char *pass_key, void *user_data)
1604 TC_PRT("__bt_adapter_authentication_request_cb:"
1605 " device name = %s", device_name);
1606 TC_PRT("__bt_adapter_authentication_request_cb:"
1607 " device address = %s", remote_addr);
1609 if (incoming == TRUE)
1610 TC_PRT("It is an incoming request");
1612 TC_PRT("It is not an incoming request");
1614 if (auth_type == BT_AUTH_PIN_REQUEST) {
1615 TC_PRT("Auth Type = BT_AUTH_PIN_REQUEST");
1616 } else if (auth_type == BT_AUTH_PASSKEY_CONFIRM_REQUEST) {
1617 TC_PRT("Auth Type = BT_AUTH_PASSKEY_CONFIRM_REQUEST");
1618 TC_PRT("Passkey: [%s]", pass_key);
1619 } else if (auth_type == BT_AUTH_KEYBOARD_PASSKEY_DISPLAY) {
1620 TC_PRT("Auth Type = BT_AUTH_KEYBOARD_PASSKEY_DISPLAY");
1621 TC_PRT("Passkey: [%s]", pass_key);
1625 static bool __bt_adapter_bonded_device_cb(bt_device_info_s *device_info,
1631 TC_PRT("remote_address: %s", device_info->remote_address);
1632 TC_PRT("remote_name: %s", device_info->remote_name);
1633 TC_PRT("is_connected: %d", device_info->is_connected);
1634 TC_PRT("service_count: %d", device_info->service_count);
1635 TC_PRT("service 0x%x, major 0x%x, minor 0x%x", device_info->bt_class.major_service_class_mask,
1636 device_info->bt_class.major_device_class,
1637 device_info->bt_class.minor_device_class);
1639 if (device_info->service_uuid == NULL) {
1642 for (i = 0; i < device_info->service_count; i++) {
1643 bt_get_uuid_name(device_info->service_uuid[i], &str);
1645 TC_PRT("[%d / %d] %s (%s)", i, device_info->service_count,
1646 str ? str : "Unknown", device_info->service_uuid[i]);
1652 if (device_info->manufacturer_data_len > 0) {
1653 TC_PRT("manufacturer specific data(len:%d)",
1654 device_info->manufacturer_data_len);
1656 for (i = 0; i < device_info->manufacturer_data_len; i++)
1657 printf("%02x ", device_info->manufacturer_data[i]);
1665 static bool __bt_adapter_profile_connected_devices_cb(
1666 const char *remote_address, void *user_data)
1668 TC_PRT("remote_address: %s", remote_address);
1673 static void __bt_adapter_device_discovery_state_changed_cb(
1674 int result, bt_adapter_device_discovery_state_e discovery_state,
1675 bt_adapter_device_discovery_info_s *discovery_info,
1680 TC_PRT("discovery_state: %d", discovery_state);
1682 if (discovery_info == NULL) {
1683 TC_PRT("No discovery_info!");
1687 TC_PRT("remote_address: %s", discovery_info->remote_address);
1688 TC_PRT("remote_name: %s", discovery_info->remote_name);
1689 TC_PRT("rssi: %d", discovery_info->rssi);
1690 TC_PRT("is_bonded: %d", discovery_info->is_bonded);
1691 TC_PRT("service 0x%x, major 0x%x, minor 0x%x", discovery_info->bt_class.major_service_class_mask,
1692 discovery_info->bt_class.major_device_class,
1693 discovery_info->bt_class.minor_device_class);
1694 TC_PRT("service_count: %d", discovery_info->service_count);
1696 if (discovery_info->service_uuid == NULL) {
1699 for (i = 0; i < discovery_info->service_count; i++)
1700 TC_PRT("uuid: %s", discovery_info->service_uuid[i]);
1703 if (discovery_info->manufacturer_data_len > 0) {
1704 TC_PRT("manufacturer specific data(len:%d)",
1705 discovery_info->manufacturer_data_len);
1707 for (i = 0; i < discovery_info->manufacturer_data_len; i++)
1708 printf("%02x ", discovery_info->manufacturer_data[i]);
1713 static GSList *le_scan_list;
1714 gint __bt_compare_address(gpointer *a, gpointer *b)
1716 bt_adapter_le_device_scan_result_info_s *info = (bt_adapter_le_device_scan_result_info_s *)a;
1717 char *address = (char *)b;
1718 return g_strcmp0(info->remote_address, address);
1721 static void __bt_adapter_le_scan_result_cb(
1722 int result, bt_adapter_le_device_scan_result_info_s *info,
1726 bt_adapter_le_packet_type_e pkt_type = BT_ADAPTER_LE_PACKET_ADVERTISING;
1727 bt_adapter_le_device_scan_result_info_s *adv_info;
1730 TC_PRT("No discovery_info!");
1735 TC_PRT("%s Adv %d Scan resp %d RSSI %d Addr_type %d",
1736 info->remote_address, info->adv_data_len,
1737 info->scan_data_len, info->rssi,
1738 info->address_type);
1740 if (info->adv_data_len > 31 || info->scan_data_len > 31) {
1741 TC_PRT("###################");
1742 bt_adapter_le_stop_scan();
1743 TC_PRT("###################");
1748 l = g_slist_find_custom(le_scan_list, info->remote_address,
1749 (GCompareFunc)__bt_compare_address);
1751 adv_info = g_malloc0(sizeof(bt_adapter_le_device_scan_result_info_s));
1752 adv_info->remote_address= g_strdup(info->remote_address);
1753 adv_info->rssi = info->rssi;
1754 le_scan_list = g_slist_append(le_scan_list, adv_info);
1757 adv_info->rssi = info->rssi;
1760 for (i = 0; i < 2; i++) {
1764 bt_adapter_le_service_data_s *data_list;
1766 int manufacturer_id;
1767 char *manufacturer_data;
1768 int manufacturer_data_len;
1770 bt_adapter_le_ibeacon_scan_result_info_s *ibeacon_info = NULL;
1773 if (pkt_type == BT_ADAPTER_LE_PACKET_ADVERTISING
1774 && info->adv_data == NULL) continue;
1775 if (pkt_type == BT_ADAPTER_LE_PACKET_SCAN_RESPONSE
1776 && info->scan_data == NULL) break;
1778 if (bt_adapter_le_get_scan_result_service_uuids(
1779 info, pkt_type, &uuids, &count) == BT_ERROR_NONE) {
1781 for (i = 0; i < count; i++) {
1782 TC_PRT("UUID[%d] = %s", i + 1, uuids[i]);
1787 if (bt_adapter_le_get_scan_result_device_name(
1788 info, pkt_type, &device_name) == BT_ERROR_NONE) {
1789 TC_PRT("Device name = %s", device_name);
1790 if (adv_info->adv_data == NULL)
1791 adv_info->adv_data= g_strdup(device_name);
1792 g_free(device_name);
1794 if (bt_adapter_le_get_scan_result_tx_power_level(
1795 info, pkt_type, &tx_power_level) == BT_ERROR_NONE) {
1796 TC_PRT("TX Power level = %d", tx_power_level);
1798 if (bt_adapter_le_get_scan_result_service_solicitation_uuids(
1799 info, pkt_type, &uuids, &count) == BT_ERROR_NONE) {
1801 for (i = 0; i < count; i++) {
1802 TC_PRT("Solicitation UUID[%d] = %s",
1808 if (bt_adapter_le_get_scan_result_service_data_list(
1809 info, pkt_type, &data_list, &count) == BT_ERROR_NONE) {
1811 for (i = 0; i < count; i++)
1812 TC_PRT("Service Data[%d] = [0x%2.2X%2.2X:0x%.2X...]",
1813 i + 1, data_list[i].service_uuid[0],
1814 data_list[i].service_uuid[1],
1815 data_list[i].service_data[0]);
1816 bt_adapter_le_free_service_data_list(data_list, count);
1818 if (bt_adapter_le_get_scan_result_appearance(
1819 info, pkt_type, &appearance) == BT_ERROR_NONE) {
1820 TC_PRT("Appearance = %d", appearance);
1822 if (bt_adapter_le_get_scan_result_manufacturer_data(
1823 info, pkt_type, &manufacturer_id, &manufacturer_data,
1824 &manufacturer_data_len) == BT_ERROR_NONE) {
1826 if (manufacturer_data_len > 1) {
1827 TC_PRT("Manufacturer data[ID:%.4X, 0x%.2X%.2X...(len:%d)]",
1828 manufacturer_id, manufacturer_data[0],
1829 manufacturer_data[1], manufacturer_data_len);
1831 TC_PRT("Manufacturer data[ID:%.4X, len:%d]", manufacturer_id, manufacturer_data_len);
1834 g_free(manufacturer_data);
1836 if (bt_adapter_le_get_scan_result_ibeacon_report(info, pkt_type,
1837 &ibeacon_info) == BT_ERROR_NONE) {
1838 TC_PRT("APPLE IBEACON");
1839 TC_PRT("Company_id: %d", ibeacon_info->company_id);
1840 TC_PRT("ibeacon_type: %d", ibeacon_info->ibeacon_type);
1841 TC_PRT("uuid: %s", ibeacon_info->uuid);
1842 TC_PRT("major_id: %d", ibeacon_info->major_id);
1843 TC_PRT("minor_id: %d", ibeacon_info->minor_id);
1844 TC_PRT("measured_power: %d", ibeacon_info->measured_power);
1845 bt_adapter_le_free_ibeacon_report(ibeacon_info);
1850 static void __print_gatt_handler(bt_gatt_h gatt_handle)
1853 TC_PRT("Invalid handler");
1859 bt_gatt_common_s *handle = (bt_gatt_common_s *)gatt_handle;
1861 if (handle->type == BT_GATT_TYPE_SERVICE)
1862 type = g_strdup("Service");
1863 else if (handle->type == BT_GATT_TYPE_CHARACTERISTIC)
1864 type = g_strdup("Characteristic");
1865 else if (handle->type == BT_GATT_TYPE_DESCRIPTOR)
1866 type = g_strdup("Descriptor");
1868 type = g_strdup("Unknown");
1870 if (handle->role == BT_GATT_ROLE_SERVER)
1871 role = g_strdup("Server");
1872 else if (handle->role == BT_GATT_ROLE_CLIENT)
1873 role = g_strdup("Client");
1875 role = g_strdup("Unknown");
1877 TC_PRT("GATT %s [%s]", type, role);
1878 TC_PRT("%s [%s]", handle->path, handle->uuid);
1884 void __bt_gatt_server_read_value_requested_cb(
1885 const char *remote_address, int request_id,
1886 bt_gatt_server_h server, bt_gatt_h gatt_handle,
1887 int offset, void *user_data)
1889 char *value = "A very long test value, can be long than MTU";
1890 int resp_status = BT_ATT_ERROR_NONE;
1891 char *new_value = NULL;
1893 new_value = g_malloc0(strlen(value) + 1);
1894 strncpy(new_value, &value[offset], strlen(value) - offset);
1895 new_value[strlen(value) - offset] = '\0';
1896 TC_PRT("new_value: %s(len: %zd)\n", new_value, strlen(new_value));
1898 __print_gatt_handler(gatt_handle);
1899 TC_PRT("[%s] req_id %d, offset %d", remote_address, request_id, offset);
1902 /* Get the attribute new values here */
1903 bt_gatt_server_send_response(request_id,
1904 BLUETOOTH_GATT_ATT_REQUEST_TYPE_READ, offset,
1905 resp_status, new_value, strlen(new_value));
1909 void __bt_gatt_server_notification_state_change_cb(bool notify,
1910 bt_gatt_server_h server, bt_gatt_h gatt_handle,
1913 __print_gatt_handler(gatt_handle);
1914 TC_PRT("Notification %s [%d]", notify ? "enabled" : "disabled", notify);
1915 TC_PRT("server %s", (char *)server);
1919 static void __bt_adapter_le_advertising_state_changed_cb(int result,
1920 bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state,
1923 TC_PRT("Result : %d", result);
1924 TC_PRT("Advertiser : %p", advertiser);
1925 TC_PRT("Advertising %s [%d]",
1926 adv_state == BT_ADAPTER_LE_ADVERTISING_STARTED ?
1927 "started" : "stopped", adv_state);
1930 static void __bt_adapter_le_advertising_state_changed_cb_2(int result,
1931 bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state,
1934 TC_PRT("Result : %d", result);
1935 TC_PRT("Advertiser : %p", advertiser);
1936 TC_PRT("Advertising %s [%d]",
1937 adv_state == BT_ADAPTER_LE_ADVERTISING_STARTED ?
1938 "started" : "stopped", adv_state);
1941 static void __bt_adapter_le_advertising_state_changed_cb_3(int result,
1942 bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state,
1945 TC_PRT("Result : %d", result);
1946 TC_PRT("Advertiser : %p", advertiser);
1947 TC_PRT("Advertising %s [%d]",
1948 adv_state == BT_ADAPTER_LE_ADVERTISING_STARTED ?
1949 "started" : "stopped", adv_state);
1952 static void __bt_socket_data_received_cb(bt_socket_received_data_s *data,
1958 TC_PRT("No received data!");
1962 TC_PRT("Socket fd: %d", data->socket_fd);
1963 TC_PRT("Data: %s", data->data);
1964 TC_PRT("Size: %d", data->data_size);
1967 static void __bt_hid_device_data_received_cb(const bt_hid_device_received_data_s *data,
1973 static char hidmode = 0x01;
1975 TC_PRT("No received data");
1978 TC_PRT("Address: %s", data->address);
1979 TC_PRT("Type: %d", data->header_type);
1980 TC_PRT("Param_type: %d", data->param_type);
1982 switch (data->header_type) {
1983 case BT_HID_HEADER_HANDSHAKE:
1984 TC_PRT("HANDSHAKE data");
1986 case BT_HID_HEADER_HID_CONTROL:
1987 TC_PRT("HID Control data");
1988 ret = bt_hid_device_disconnect(remote_addr);
1989 TC_PRT("ret %d", ret);
1991 case BT_HID_HEADER_GET_REPORT:
1992 TC_PRT("GET_REPORT data");
1993 TC_PRT("ReportId %d", data->data[1]);
1995 if (data->data[1] == 0x02) {
1996 bt_hid_key_data_s send_data;
1997 /* Will send character 'a' */
1998 char pressedkey[8] = { 4, 0, 0, 0, 0, 0, 0, 0 };
1999 memcpy(send_data.key, pressedkey, 8);
2000 send_data.modifier = 0;
2001 ret = bt_hid_device_reply_to_report(remote_addr,
2002 BT_HID_HEADER_GET_REPORT,
2003 BT_HID_PARAM_DATA_RTYPE_INPUT,
2004 (const char *)&send_data,
2006 } else if (data->data[1] == 0x01) {
2007 TC_PRT("Send Mouse Event");
2008 bt_hid_mouse_data_s send_data;
2010 send_data.buttons = 1;
2011 send_data.padding = BT_HID_MOUSE_BUTTON_NONE;
2013 send_data.axis_x = 10;
2014 send_data.axis_y = 0;
2015 ret = bt_hid_device_reply_to_report(remote_addr,
2016 BT_HID_HEADER_GET_REPORT,
2017 BT_HID_PARAM_DATA_RTYPE_INPUT,
2018 (const char *)&send_data,
2021 TC_PRT("Invalid ReportId");
2022 val = BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID;
2023 ret = bt_hid_device_reply_to_report(remote_addr,
2024 BT_HID_HEADER_HANDSHAKE,
2025 BT_HID_PARAM_DATA_RTYPE_INPUT,
2028 TC_PRT("ret %d", ret);
2030 case BT_HID_HEADER_SET_REPORT:
2031 TC_PRT("SET_REPORT data");
2032 val = BT_HID_HANDSHAKE_SUCCESSFUL;
2033 ret = bt_hid_device_reply_to_report(remote_addr,
2034 BT_HID_HEADER_HANDSHAKE,
2035 BT_HID_PARAM_DATA_RTYPE_INPUT,
2037 TC_PRT("ret %d", ret);
2039 case BT_HID_HEADER_DATA:
2040 TC_PRT("TRANs DATA");
2042 case BT_HID_HEADER_GET_PROTOCOL:
2043 TC_PRT("GET PROTOCOL %x", hidmode);
2044 ret = bt_hid_device_reply_to_report(remote_addr,
2045 BT_HID_HEADER_GET_PROTOCOL,
2046 BT_HID_PARAM_DATA_RTYPE_INPUT,
2047 &hidmode, sizeof(hidmode));
2048 TC_PRT("ret %d", ret);
2050 case BT_HID_HEADER_SET_PROTOCOL:
2051 TC_PRT("SET PROTOCOL");
2052 val = BT_HID_HANDSHAKE_SUCCESSFUL;
2054 if (data->data[0] & 0x01) {
2055 TC_PRT("HID Report mode set");
2058 TC_PRT("HID Boot mode set");
2061 ret = bt_hid_device_reply_to_report(remote_addr,
2062 BT_HID_HEADER_HANDSHAKE,
2063 BT_HID_PARAM_DATA_RTYPE_INPUT,
2065 TC_PRT("ret %d", ret);
2072 switch (data->param_type) {
2073 case BT_HID_PARAM_DATA_RTYPE_INPUT:
2074 TC_PRT("Input Report");
2076 case BT_HID_PARAM_DATA_RTYPE_OUTPUT:
2077 TC_PRT("Output Report");
2082 static void __bt_socket_connection_requested_cb(int socket_fd,
2083 const char *remote_address, void *user_data)
2085 TC_PRT("Socket fd: %d", socket_fd);
2086 TC_PRT("remote_address: %s", remote_address);
2089 static void __bt_socket_connection_state_changed_cb(int result,
2090 bt_socket_connection_state_e connection_state,
2091 bt_socket_connection_s *connection,
2094 TC_PRT("result: %s", __bt_get_error_message(result));
2095 TC_PRT("connection_state: %d", connection_state);
2097 if (connection == NULL) {
2098 TC_PRT("No connection data!");
2102 TC_PRT("socket fd: %d", connection->socket_fd);
2103 TC_PRT("server socket fd: %d", connection->server_fd);
2104 TC_PRT("role: %d", connection->local_role);
2105 TC_PRT("remote address: %s", connection->remote_address);
2106 if (strcmp(spp_uuid, connection->service_uuid) == 0) {
2107 TC_PRT("service_uuid: %s", spp_uuid);
2108 client_fd = connection->socket_fd;
2110 TC_PRT("service_uuid: %s", connection->service_uuid);
2111 custom_client_fd = connection->socket_fd;
2115 static void __bt_adapter_le_state_changed_cb(int result,
2116 bt_adapter_le_state_e adapter_le_state, void *user_data)
2118 TC_PRT("__bt_adapter_le_state_changed_cb");
2119 TC_PRT("result: %s", __bt_get_error_message(result));
2121 (adapter_le_state == BT_ADAPTER_LE_ENABLED) ?
2122 "ENABLED" : "DISABLED");
2125 static void __bt_le_set_data_length_changed_cb(int result,
2126 const char *remote_address, int max_tx_octets,
2127 int max_tx_time, int max_rx_octets,
2128 int max_rx_time, void *user_data)
2130 TC_PRT("__bt_le_set_data_length_changed_cb \n");
2131 TC_PRT("max_tx_octets: %d max_tx_time: %d"
2132 "max_rx_octets: %d max_rx_time: %d",
2133 max_tx_octets, max_tx_time,
2134 max_rx_octets, max_rx_time);
2135 TC_PRT("result: %s", __bt_get_error_message(result));
2138 void __bt_opp_client_push_responded_cb(int result,
2139 const char *remote_address, void *user_data)
2141 TC_PRT("result: %s", __bt_get_error_message(result));
2142 TC_PRT("remote_address: %s", remote_address);
2145 void __bt_opp_client_push_progress_cb(const char *file,
2146 long long size, int percent, void *user_data)
2148 TC_PRT("size: %ld", (long)size);
2149 TC_PRT("percent: %d", percent);
2150 TC_PRT("file: %s", file);
2153 void __bt_opp_client_push_finished_cb(int result,
2154 const char *remote_address, void *user_data)
2156 TC_PRT("result: %s", __bt_get_error_message(result));
2157 TC_PRT("remote_address: %s", remote_address);
2160 void __bt_audio_connection_state_changed_cb(int result,
2161 bool connected, const char *remote_address,
2162 bt_audio_profile_type_e type, void *user_data)
2164 TC_PRT("result [%s]", __bt_get_error_message(result));
2165 TC_PRT("connected [%d]", connected);
2166 TC_PRT("address [%s]", remote_address);
2167 TC_PRT("type [%d]", type);
2170 void __bt_audio_absolute_volume_changed_cb(unsigned int volume, void *user_data)
2172 TC_PRT("volume [%d]", volume);
2175 void __bt_audio_avc_status_changed_cb(bool activated, void *user_data)
2177 TC_PRT("activated [%d]", activated);
2180 void __bt_ag_sco_state_changed_cb(int result,
2181 bool opened, void *user_data)
2183 TC_PRT("result [%s]", __bt_get_error_message(result));
2184 TC_PRT("opened [%s]", opened ? "YES" : "NO");
2187 void __bt_ag_speaker_gain_changed_cb(int gain, void *user_data)
2189 TC_PRT("gain [%d]", gain);
2192 void __bt_ag_microphone_gain_changed_cb(int gain, void *user_data)
2194 TC_PRT("gain [%d]", gain);
2197 void __bt_ag_set_call_handling_event_cb(bt_ag_call_handling_event_e event,
2198 unsigned int call_id, void *user_data)
2200 TC_PRT("event[%d] call_id[%d]", event, call_id);
2203 void __bt_device_authorization_changed_cb(bt_device_authorization_e authorization,
2204 char *remote_address, void *user_data)
2206 TC_PRT("__bt_device_authorization_changed_cb [%d]", authorization);
2207 TC_PRT("address: %s", remote_address);
2210 void __bt_device_profile_trusted_cb(int result, char *remote_address,
2211 int trusted_profile, bool supported,
2212 bool trusted, void *user_data)
2214 TC_PRT("result [%s]", __bt_get_error_message(result));
2215 TC_PRT("trusted profile [%d]", trusted_profile);
2216 TC_PRT("Is supported [%d]", supported);
2217 TC_PRT("Is trusted [%d]", trusted);
2218 TC_PRT("address: %s", remote_address);
2221 void __bt_device_connection_state_changed_cb(bool connected,
2222 bt_device_connection_info_s *conn_info, void *user_data)
2224 TC_PRT("__bt_device_connection_state_changed_cb [%d]", connected);
2225 TC_PRT("address [%s]", conn_info->remote_address);
2226 TC_PRT("link type [%d]", conn_info->link);
2229 TC_PRT("disconnection reason [%d]", conn_info->disconn_reason);
2230 if (bt_device_get_link_loss_rssi(&rssi) == BT_ERROR_NONE)
2231 TC_PRT("RSSI = %d", rssi);
2235 void __bt_device_att_mtu_changed_cb(int result, bt_device_att_mtu_info_s *mtu_info, void *user_data)
2237 TC_PRT("__bt_device_att_mtu_changed_cb");
2239 if (result != BT_ERROR_NONE) {
2240 TC_PRT("Callback: Request ATT MTU failed.");
2241 TC_PRT("result: %s", __bt_get_error_message(result));
2245 TC_PRT("status [%d]", mtu_info->status);
2246 TC_PRT("address [%s]", mtu_info->remote_address);
2247 TC_PRT("MTU [%d]", mtu_info->mtu);
2251 bool __bt_device_connected_profile(bt_profile_e profile, void *user_data)
2253 TC_PRT("__bt_device_connected_profile [0x%04x]", profile);
2257 void __bt_device_bond_created_cb(int result,
2258 bt_device_info_s *device_info, void *user_data)
2260 if (result == BT_ERROR_NONE) {
2261 TC_PRT("Callback: A bond is created.");
2262 TC_PRT("Callback: The number of service - %d.",
2263 device_info->service_count);
2264 TC_PRT("Callback: class : %d %d %d", (int)device_info->bt_class.major_device_class, device_info->bt_class.minor_device_class, device_info->bt_class.major_service_class_mask);
2267 for (i = 0; i < device_info->service_count; i++) {
2268 TC_PRT("Callback: service[%d] - %s",
2269 i+1, device_info->service_uuid[i]);
2271 TC_PRT("Callback: is_bonded - %d.",
2272 device_info->is_bonded);
2273 TC_PRT("Callback: is_connected - %d.",
2274 device_info->is_connected);
2276 if (device_info->manufacturer_data_len > 0) {
2277 TC_PRT("manufacturer specific data(len:%d)",
2278 device_info->manufacturer_data_len);
2280 for (i = 0; i < device_info->manufacturer_data_len; i++)
2281 printf("%02x ", device_info->manufacturer_data[i]);
2285 TC_PRT("Callback: Creating a bond is failed.");
2286 TC_PRT("result: %s", __bt_get_error_message(result));
2290 void __bt_device_bond_destroyed_cb(int result,
2291 char *remote_address, void *user_data)
2293 if (result == BT_ERROR_NONE) {
2294 TC_PRT("Callback: A bond is destroyed.");
2295 TC_PRT("Callback: Address - %s.", remote_address);
2297 TC_PRT("Callback: Destroying a bond is failed.");
2298 TC_PRT("result: %s", __bt_get_error_message(result));
2302 void __bt_print_repeat_test_summary(void)
2304 static struct timeval current_time = {0,};
2305 static struct timeval diff_time = {0,};
2308 gettimeofday(¤t_time, NULL);
2310 diff_time.tv_sec = current_time.tv_sec - check_time.tv_sec;
2311 diff_time.tv_usec = current_time.tv_usec - check_time.tv_usec;
2312 if (diff_time.tv_usec < 0) {
2313 diff_time.tv_sec = diff_time.tv_sec - 1;
2314 diff_time.tv_usec = diff_time.tv_usec + 1000000;
2316 time_diff = (diff_time.tv_sec * 1000);
2317 time_diff += diff_time.tv_usec / 1000;
2319 TC_PRT("try: %d, success: %d, fail: %d, time(%d msec)\n",
2320 bt_onoff_cnt/2, bt_onoff_cnt_success/2, bt_onoff_cnt_fail,
2323 total_time += time_diff;
2326 void __bt_print_repeat_test_final_summary()
2328 TC_PRT("try: %d, success: %d, fail: %d,"
2329 "Total_time(%d msec), Average_time(%d msec)\n",
2330 bt_onoff_cnt/2, bt_onoff_cnt_success/2, bt_onoff_cnt_fail,
2331 total_time, total_time / bt_onoff_cnt);
2334 void __bt_gatt_connection_state_changed_cb(int result,
2335 bool connected, const char *remote_address, void *user_data)
2337 if (result != BT_ERROR_NONE)
2338 TC_PRT("result: %s", __bt_get_error_message(result));
2341 TC_PRT("GATT connected [%s]", remote_address);
2342 strncpy(remote_addr, remote_address, strlen(remote_addr));
2344 bt_le_conn_update_s param;
2346 param.interval_min = 90;
2347 param.interval_max = 90;
2349 param.time_out = 2000;
2350 bt_device_le_conn_update(remote_addr, ¶m);
2352 TC_PRT("GATT DISconnected [%s]", remote_address);
2356 void __bt_hps_connection_state_changed_cb(int result,
2357 bool connected, const char *remote_address, void *user_data)
2360 if (result != BT_ERROR_NONE)
2361 TC_PRT("result: %s", __bt_get_error_message(result));
2364 TC_PRT("HPS connected [%s]", remote_address);
2365 /* Fix : STRING_OVERFLOW */
2366 strncpy(remote_addr, remote_address, strlen(remote_addr));
2368 bt_gatt_client_destroy(hps_client);
2371 ret = bt_gatt_client_create(remote_addr, &hps_client);
2372 TC_PRT("returns bt_gatt_client_create %s\n",
2373 __bt_get_error_message(ret));
2376 TC_PRT("HPS DISconnected [%s]", remote_address);
2380 void __bt_gatt_client_service_changed_cb(bt_gatt_client_h c,
2381 bt_gatt_client_service_change_type_e type,
2382 const char *uuid, void *user_data)
2388 ret = bt_gatt_client_get_remote_address(client, &addr);
2389 if (ret != BT_ERROR_NONE)
2390 TC_PRT("Cannot get remote address");
2392 ret = bt_get_uuid_name(uuid, &svc);
2393 if (ret != BT_ERROR_NONE)
2394 svc = g_strdup(uuid);
2396 TC_PRT("Remote device [%s] : %s is %s", addr, svc,
2397 type == BT_GATT_CLIENT_SERVICE_ADDED ?
2398 "Added" : "Removed");
2403 void __bt_gatt_client_att_mtu_changed_cb(bt_gatt_client_h c, const bt_gatt_client_att_mtu_info_s *mtu_info, void *user_data)
2408 TC_PRT("__bt_gatt_client_att_mtu_changed_cb");
2410 ret = bt_gatt_client_get_remote_address(client, &addr);
2411 if (ret != BT_ERROR_NONE) {
2412 TC_PRT("Cannot get remote address");
2417 TC_PRT("status [%d]", mtu_info->status);
2418 TC_PRT("address [%s]", mtu_info->remote_address);
2419 TC_PRT("MTU [%d]", mtu_info->mtu);
2425 int __bt_gatt_client_set_value(char *type, char *value, bt_gatt_h h)
2433 if (strcasecmp(type, "int8") == 0) {
2434 s_val = atoi(value);
2435 buf = (char *)&s_val;
2437 } else if (strcasecmp(type, "int16") == 0) {
2438 s_val = atoi(value);
2439 buf = (char *)&s_val;
2441 } else if (strcasecmp(type, "int32") == 0) {
2442 s_val = atoi(value);
2443 buf = (char *)&s_val;
2445 } else if (strcasecmp(type, "uint8") == 0) {
2446 u_val = strtoul(value, NULL, 10);
2447 buf = (char *)&u_val;
2449 } else if (strcasecmp(type, "uint16") == 0) {
2450 u_val = strtoul(value, NULL, 10);
2451 buf = (char *)&u_val;
2453 } else if (strcasecmp(type, "uint32") == 0) {
2454 u_val = strtoul(value, NULL, 10);
2455 buf = (char *)&u_val;
2457 } else if (strcasecmp(type, "str") == 0) {
2461 return BT_ERROR_INVALID_PARAMETER;
2463 ret = bt_gatt_set_value(h, buf, len);
2464 if (ret != BT_ERROR_NONE)
2465 TC_PRT("bt_gatt_set_value is failed : %d", ret);
2470 void __bt_gatt_client_print_value(bt_gatt_h h)
2476 bool hex_format = false;
2479 ret = bt_gatt_get_value(h, &value, &len);
2480 if (ret != BT_ERROR_NONE) {
2481 TC_PRT("bt_gatt_get_value is failed : %d", ret);
2485 for (i = 0; i < len; i++)
2486 if (isalnum(value[i]) == 0) {
2492 str = g_malloc0(len * 5 + 1);
2493 for (i = 0; i < len; i++) {
2495 str[i * 5 - 1] = ' ';
2497 snprintf(&str[i * 5], 5, "0x%02X", value[i]);
2500 str = g_malloc0(len + 1);
2501 memcpy(str, value, len);
2504 TC_PRT("Value : %s", str);
2510 bool __bt_gatt_print_info_cb(int total,
2511 int index, bt_gatt_h gatt_handle, void *user_data)
2516 bt_gatt_get_uuid(gatt_handle, &uuid);
2517 bt_get_uuid_name(uuid, &str);
2519 TC_PRT("[%d / %d] %s (%s)",
2521 str ? str : "Unknown", uuid);
2529 void __bt_gatt_client_write_complete_cb(int result,
2530 bt_gatt_h gatt_handle, void *data)
2535 bt_gatt_get_uuid(gatt_handle, &uuid);
2536 bt_get_uuid_name(uuid, &str);
2538 TC_PRT("Write %s for %s (%s)",
2539 result == BT_ATT_ERROR_NONE ? "Success" : "Fail",
2540 str ? str : "Unknown", uuid);
2548 void __bt_gatt_client_read_complete_cb(int result,
2549 bt_gatt_h gatt_handle, void *data)
2554 bt_gatt_get_uuid(gatt_handle, &uuid);
2555 bt_get_uuid_name(uuid, &str);
2557 TC_PRT("Read %s for %s (%s)",
2558 result == BT_ATT_ERROR_NONE ? "Success" : "Fail",
2559 str ? str : "Unknown", uuid);
2564 if (result != BT_ATT_ERROR_NONE)
2567 __bt_gatt_client_print_value(gatt_handle);
2572 bool __bt_gatt_client_foreach_desc_cb(int total,
2573 int index, bt_gatt_h desc_handle, void *data)
2578 bt_gatt_get_uuid(desc_handle, &uuid);
2579 bt_get_uuid_name(uuid, &str);
2581 TC_PRT("\t\t[%d / %d] %s (%s)",
2583 str ? str : "Unknown", uuid);
2584 __bt_gatt_client_print_value(desc_handle);
2592 bool __bt_gatt_client_foreach_chr_cb(int total,
2593 int index, bt_gatt_h chr_handle, void *data)
2600 bt_gatt_get_uuid(chr_handle, &uuid);
2601 bt_get_uuid_name(uuid, &str);
2602 bt_gatt_characteristic_get_properties(chr_handle, &properties);
2604 TC_PRT("\t[%d / %d] %s (%s) (0x%X)", index, total, str ? str : "Unknown", uuid, properties);
2605 __bt_gatt_client_print_value(chr_handle);
2610 ret = bt_gatt_characteristic_foreach_descriptors(chr_handle,
2611 __bt_gatt_client_foreach_desc_cb, NULL);
2612 if (ret != BT_ERROR_NONE)
2613 TC_PRT("bt_gatt_characteristic_foreach_descriptors is failed : %d", ret);
2618 bool __bt_gatt_client_foreach_svc_cb(int total,
2619 int index, bt_gatt_h svc_handle, void *data)
2622 int test_id = (int)(uintptr_t) data;
2624 int test_id = (int)data;
2630 bt_gatt_get_uuid(svc_handle, &uuid);
2631 bt_get_uuid_name(uuid, &str);
2633 TC_PRT("[%d / %d] %s (%s)",
2635 str ? str : "Unknown", uuid);
2640 if (test_id == BT_UNIT_TEST_FUNCTION_GATT_CLIENT_PRINT_ALL) {
2642 ret = bt_gatt_service_foreach_characteristics(svc_handle,
2643 __bt_gatt_client_foreach_chr_cb, (void *)(uintptr_t)test_id);
2645 ret = bt_gatt_service_foreach_characteristics(svc_handle,
2646 __bt_gatt_client_foreach_chr_cb, (void *)test_id);
2648 if (ret != BT_ERROR_NONE)
2649 TC_PRT("bt_gatt_service_foreach_characteristics is failed : %d", ret);
2655 bool __bt_hps_client_svc_cb(int total,
2656 int index, bt_gatt_h svc_handle, void *data)
2659 int test_id = (int) (uintptr_t) data;
2661 int test_id = (int)data;
2667 bt_gatt_get_uuid(svc_handle, &uuid);
2668 bt_get_uuid_name(uuid, &str);
2670 if (!g_strcmp0(uuid, HPS_UUID)) {
2672 TC_PRT("[%d / %d] %s (%s)",
2674 str ? str : "Unknown", uuid);
2676 if (test_id == BT_UNIT_TEST_FUNCTION_HPS_CLIENT_PRINT_ALL) {
2678 ret = bt_gatt_service_foreach_characteristics(svc_handle,
2679 __bt_gatt_client_foreach_chr_cb,
2680 (void *)(uintptr_t)test_id);
2682 ret = bt_gatt_service_foreach_characteristics(svc_handle,
2683 __bt_gatt_client_foreach_chr_cb,
2686 if (ret != BT_ERROR_NONE)
2687 TC_PRT("bt_gatt_service_foreach_characteristics is failed : %d", ret);
2696 static void __ancs_write_completed_cb(int result,
2697 bt_gatt_h request_handle, void *user_data)
2699 if (result != BT_ERROR_NONE) {
2700 TC_PRT("write request is failed : %d", result);
2704 TC_PRT("write request is done");
2709 static int __ancs_write_value_to_control_point(bt_gatt_client_h client,
2710 char *value, int len)
2712 bt_gatt_h ancs_svc = NULL;
2713 bt_gatt_h control_point = NULL;
2714 char *svc_uuid = "7905F431-B5CE-4E99-A40F-4B1E122D00D0";
2715 char *chr_uuid = "69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9";
2718 ret = bt_gatt_client_get_service(client,
2719 svc_uuid, &ancs_svc);
2720 if (ret != BT_ERROR_NONE) {
2721 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
2725 ret = bt_gatt_service_get_characteristic(ancs_svc,
2726 chr_uuid, &control_point);
2727 if (ret != BT_ERROR_NONE) {
2728 TC_PRT("bt_gatt_service_get_characteristic is failed");
2732 ret = bt_gatt_characteristic_set_write_type(control_point,
2733 BT_GATT_WRITE_TYPE_WRITE);
2734 if (ret != BT_ERROR_NONE) {
2735 TC_PRT("bt_gatt_characteristic_set_write_type is failed : %d", ret);
2739 ret = bt_gatt_set_value(control_point, value, len);
2740 if (ret != BT_ERROR_NONE) {
2741 TC_PRT("bt_gatt_set_value is failed : %d", ret);
2745 ret = bt_gatt_client_write_value(control_point,
2746 __ancs_write_completed_cb, NULL);
2747 if (ret != BT_ERROR_NONE) {
2748 TC_PRT("bt_gatt_client_write_value is failed : %d", ret);
2755 void __bt_gatt_client_value_changed_cb(bt_gatt_h chr,
2756 char *value, int len, void *user_data)
2761 bt_gatt_get_uuid(chr, &uuid);
2763 TC_PRT("Value changed for [%s]", uuid);
2764 TC_PRT("len [%d]", len);
2765 for (i = 0; i < len; i++)
2766 TC_PRT("value %u", value[i]);
2772 void __bt_hrp_heart_rate_value_changed_cb(bt_gatt_h chr,
2773 unsigned short hr_value, void *user_data)
2777 bt_gatt_get_uuid(chr, &uuid);
2779 TC_PRT("Value changed for [%s]", uuid);
2780 TC_PRT("Value [%d]", hr_value);
2787 void __bt_HP_client_cp_req_status_changed_cb(bt_gatt_h chr,
2788 char *value, int len, void *user_data)
2793 bt_gatt_get_uuid(chr, &uuid);
2795 TC_PRT("Value changed for [%s]", uuid);
2796 TC_PRT("len [%d]", len);
2797 for (i = 0; i < len; i++)
2798 TC_PRT("value %u", value[i]);
2805 void __bt_proximity_reporter_property_changed_cb(int result, const char *remote_address,
2806 int service_type, int prop_value, void *user_data)
2808 TC_PRT("reporter_property result [%s]", __bt_get_error_message(result));
2809 TC_PRT("remote_address : %s", remote_address);
2810 TC_PRT("service_type : %d", service_type);
2811 TC_PRT("prop_value : %d", prop_value);
2814 void __bt_proximity_monitor_connection_state_changed_cb(int result, const char *remote_address,
2815 bt_proximity_monitor_h monitor_s, bool connected, int supported_service, void *user_data)
2817 TC_PRT("result: %s", __bt_get_error_message(result));
2818 if (result == BT_ERROR_NONE) {
2820 TC_PRT("PXP connected(address = %s)", remote_address);
2821 TC_PRT("PXP Reporter supported Service\n");
2822 if (supported_service & BT_PROXIMITY_LINKLOSS_ALERT)
2823 TC_PRT("BT_PROXIMITY_LINKLOSS_ALERT\n");
2824 if (supported_service & BT_PROXIMITY_IMMEDIATE_ALERT)
2825 TC_PRT("BT_PROXIMITY_IMMEDIATE_ALERT\n");
2826 if (supported_service & BT_PROXIMITY_TX_POWER)
2827 TC_PRT("BT_PROXIMITY_TX_POWER");
2829 TC_PRT("PXP DISconnected");
2834 void __bt_proximity_reporter_connection_state_changed_cb(int result, const char *remote_address,
2835 bt_proximity_reporter_h reporter_s, bool connected, int supported_service, void *user_data)
2837 TC_PRT("result: %s", __bt_get_error_message(result));
2838 if (result == BT_ERROR_NONE) {
2840 TC_PRT("PXP connected(address = %s)", remote_address);
2841 TC_PRT("PXP Reporter supported Service\n");
2842 if (supported_service & BT_PROXIMITY_LINKLOSS_ALERT)
2843 TC_PRT("BT_PROXIMITY_LINKLOSS_ALERT\n");
2844 if (supported_service & BT_PROXIMITY_IMMEDIATE_ALERT)
2845 TC_PRT("BT_PROXIMITY_IMMEDIATE_ALERT\n");
2846 if (supported_service & BT_PROXIMITY_TX_POWER)
2847 TC_PRT("BT_PROXIMITY_TX_POWER");
2849 TC_PRT("PXP DISconnected");
2854 void __tds_activation_req_cb(char *rem_bd_addr,
2855 bt_tds_transport_e transport, unsigned char *buf, int len, void *user_data)
2859 TC_PRT("remote_address : %s", rem_bd_addr);
2860 TC_PRT("transport : %d", transport);
2861 for (i = 0; i < len; i++)
2862 TC_PRT("Act req data[%d] : %.2x", i, buf[i]);
2864 g_free(tds_act_address);
2865 tds_act_address = g_strdup(rem_bd_addr);
2868 void __bt_gatt_server_att_mtu_changed_cb(bt_gatt_server_h s, const bt_gatt_server_att_mtu_info_s *mtu_info, void *user_data)
2870 TC_PRT("__bt_gatt_server_att_mtu_changed_cb");
2873 TC_PRT("status [%d]", mtu_info->status);
2874 TC_PRT("address [%s]", mtu_info->remote_address);
2875 TC_PRT("MTU [%d]", mtu_info->mtu);
2880 void __bt_gatt_server_notification_sent_cb(int result,
2881 const char *remote_address, bt_gatt_server_h server,
2882 bt_gatt_h characteristic, bool completed, void *user_data)
2884 TC_PRT("result [%s]", __bt_get_error_message(result));
2885 TC_PRT("remote_address : %s", remote_address);
2886 TC_PRT("completed : %d", completed);
2887 TC_PRT("characteristic : %p", characteristic);
2890 void __bt_gatt_server_write_value_requested_cb(const char *remote_address,
2891 int request_id, bt_gatt_server_h server,
2892 bt_gatt_h gatt_handle, bool response_needed, int offset,
2893 const char *value, int len, void *user_data)
2895 int i, resp_status = BT_ATT_ERROR_NONE;
2897 __print_gatt_handler(gatt_handle);
2898 TC_PRT("[%s] req_id %d, response_needed %d, offset %d, len %d",
2899 remote_address, request_id, response_needed, offset, len);
2901 for (i = 0; i < len; i++)
2902 printf("%d ", value[i]);
2904 bt_gatt_server_send_response(request_id,
2905 BLUETOOTH_GATT_ATT_REQUEST_TYPE_WRITE, offset,
2906 resp_status, NULL, 0);
2911 bool __bt_gatt_server_foreach_svc_cb(int total,
2912 int index, bt_gatt_h svc_handle, void *data)
2917 bt_gatt_get_uuid(svc_handle, &uuid);
2918 bt_get_uuid_name(uuid, &str);
2920 TC_PRT("[%d / %d] %s (%s)", index, total, str ? str : "Unknown", uuid);
2928 void __bt_gatt_char_write_cb(void *user_data)
2930 TC_PRT("__bt_gatt_char_write_cb");
2934 void __bt_gatt_char_read_cb(unsigned char *value,
2935 int value_length, void *user_data)
2939 TC_PRT("__bt_gatt_char_read_cb");
2941 TC_PRT("value_length %d", value_length);
2943 for (i = 0; i < value_length; i++)
2944 TC_PRT("value %u", value[i]);
2949 void __bt_avrcp_target_connection_state_changed_cb(bool connected,
2950 const char *remote_address, void *user_data)
2952 TC_PRT("__bt_avrcp_target_connection_state_changed_cb");
2953 TC_PRT("connected %d", connected);
2954 TC_PRT("remote_address %s", remote_address);
2957 void __bt_avrcp_equalizer_state_changed_cb(bt_avrcp_equalizer_state_e equalizer,
2960 TC_PRT("__bt_avrcp_equalizer_state_changed_cb");
2961 TC_PRT("equalizer %d (1: OFF, 2: ON)", equalizer);
2964 void __bt_avrcp_repeat_mode_changed_cb(bt_avrcp_repeat_mode_e repeat,
2967 TC_PRT("__bt_avrcp_repeat_mode_changed_cb");
2968 TC_PRT("repeat %d (1: OFF, 2: SINGLE, 3: All, 4:GROUP)", repeat);
2971 void __bt_avrcp_shuffle_mode_changed_cb(bt_avrcp_shuffle_mode_e shuffle,
2974 TC_PRT("__bt_avrcp_shuffle_mode_changed_cb");
2975 TC_PRT("shuffle -> %d (1: OFF, 2: All TRACK, 3:GROUP)", shuffle);
2978 void __bt_avrcp_scan_mode_changed_cb(bt_avrcp_scan_mode_e scan,
2981 TC_PRT("__bt_avrcp_scan_mode_changed_cb");
2982 TC_PRT("scan -> %d", scan);
2985 void __bt_avrcp_control_connection_state_changed_cb(bool connected,
2986 const char *remote_address, void *user_data)
2988 TC_PRT("__bt_avrcp_target_connection_state_changed_cb");
2989 TC_PRT("connected %d", connected);
2990 TC_PRT("remote_address %s", remote_address);
2993 void __bt_avrcp_song_position_changed_cb(unsigned int postion,
2996 TC_PRT("__bt_avrcp_song_position_changed_cb");
2997 TC_PRT("Position %d", postion);
3000 void __bt_avrcp_player_state_changed_cb(bt_avrcp_player_state_e state,
3003 TC_PRT("__bt_avrcp_player_state_changed_cb");
3004 TC_PRT("Player state -> %d (0: stopped, 1: Playing, 2:Paused, 3:FF, 4:REW)", state);
3007 void __bt_avrcp_track_info_changed_cb(bt_avrcp_metadata_attributes_info_s *metadata,
3010 TC_PRT("__bt_avrcp_track_info_changed_cb");
3011 TC_PRT("title %s", metadata->title);
3012 TC_PRT("artist %s", metadata->artist);
3013 TC_PRT("album %s", metadata->album);
3014 TC_PRT("genre %s", metadata->genre);
3015 TC_PRT("total_tracks %d", metadata->total_tracks);
3016 TC_PRT("number %d", metadata->number);
3017 TC_PRT("duration %d", metadata->duration);
3020 void panu_conn_state_changed(int result, bool connected,
3021 const char *remote_address, bt_panu_service_type_e type,
3024 TC_PRT("result [%s]", __bt_get_error_message(result));
3025 TC_PRT("connected [%d]", connected);
3026 TC_PRT("address [%s]", remote_address);
3027 TC_PRT("type [%d]", type);
3031 void __bt_hid_host_connection_state_changed_cb(int result,
3032 bool connected, const char *remote_address,
3035 TC_PRT("__bt_hid_host_connection_state_changed_cb: called");
3036 TC_PRT("result: %s", __bt_get_error_message(result));
3039 void __bt_hdp_connected_cb(int result, const char *remote_address,
3040 const char *app_id, bt_hdp_channel_type_e type,
3041 unsigned int channel, void *user_data)
3043 TC_PRT("__bt_hdp_connected_cb: called");
3044 TC_PRT("result: %s", __bt_get_error_message(result));
3045 TC_PRT("remote_address: %s", remote_address);
3046 TC_PRT("app_id: %s", app_id);
3047 TC_PRT("type: %x", type);
3048 TC_PRT("channel: %d", channel);
3050 channel_hdp = channel;
3053 void __bt_hdp_disconnected_cb(int result, const char *remote_address,
3054 unsigned int channel, void *user_data)
3056 TC_PRT("__bt_hdp_connected_cb: called");
3057 TC_PRT("result: %s", __bt_get_error_message(result));
3058 TC_PRT("remote_address: %s", remote_address);
3059 TC_PRT("channel: %d", channel);
3061 channel_hdp = channel;
3064 void __bt_hdp_data_received_cb(unsigned int channel, const char *data,
3065 unsigned int size, void *user_data)
3067 TC_PRT("__bt_hdp_data_received_cb: called");
3068 TC_PRT("data: %s", data);
3069 TC_PRT("size: %d", size);
3070 TC_PRT("channel: %d", channel);
3073 void __bt_hid_device_connection_state_changed_cb(int result,
3074 bool connected, const char *remote_address, void *user_data)
3076 TC_PRT("__bt_hid_device_connection_state_changed_cb:");
3077 TC_PRT("result: %s", __bt_get_error_message(result));
3078 TC_PRT("Remote Address %s", remote_address);
3079 TC_PRT("Connected %d", connected);
3082 void __bt_ipsp_init_state_changed_cb(int result,
3083 bool ipsp_initialized, void *user_data)
3085 TC_PRT("result: %s", __bt_get_error_message(result));
3086 if (ipsp_initialized) {
3087 TC_PRT("IPSP Init state: INITIALIZED");
3089 TC_PRT("IPSP Init state: UN-INITIALIZED");
3090 _bt_unset_cb(BT_EVENT_IPSP_INIT_STATE_CHANGED);
3094 void __bt_ipsp_connection_state_changed_cb(int result,
3095 bool connected, const char *remote_address, const char *iface_name, void *user_data)
3097 TC_PRT("__bt_le_ipsp_connection_state_changed_cb: called");
3098 TC_PRT("result: %s", __bt_get_error_message(result));
3099 TC_PRT("Connected: %d", connected);
3100 TC_PRT("Remote BT address : %s", remote_address);
3102 TC_PRT("Local BT Interface : %s is Up", iface_name);
3104 TC_PRT("Local BT Interface : %s is Down", iface_name);
3105 strncpy(ipsp_iface_name, iface_name, sizeof(ipsp_iface_name));
3106 ipsp_iface_name[sizeof(ipsp_iface_name) - 1] = '\0';
3109 void __bt_hf_sco_state_changed_cb(int result,
3110 bool opened, void *user_data)
3112 TC_PRT("opened [%s]", opened ? "YES" : "NO");
3115 void __bt_hf_set_call_handling_event_cb(bt_hf_call_handling_event_e event,
3116 char *phone_number, void *user_data)
3119 case BT_HF_CALL_HANDLING_EVENT_ANSWER:
3120 TC_PRT("[call_handling_event_cb] event [ANSWER]");
3122 case BT_HF_CALL_HANDLING_EVENT_RELEASE:
3123 TC_PRT("[call_handling_event_cb] event [RELEASE]");
3125 case BT_HF_CALL_HANDLING_EVENT_REJECT:
3126 TC_PRT("[call_handling_event_cb] event [REJECT]");
3128 case BT_HF_CALL_HANDLING_EVENT_RING:
3129 TC_PRT("[call_handling_event_cb] event [RING]");
3131 case BT_HF_CALL_HANDLING_EVENT_CALL_STARTED:
3132 TC_PRT("[call_handling_event_cb] event [CALL_STARTED]");
3134 case BT_HF_CALL_HANDLING_EVENT_CALL_ENDED:
3135 TC_PRT("[call_handling_event_cb] event [CALL_ENDED]");
3137 case BT_HF_CALL_HANDLING_EVENT_VOICE_RECOGNITION_ENABLED:
3138 TC_PRT("[call_handling_event_cb] event [VOICE_RECOGNITION_ENABLED]");
3140 case BT_HF_CALL_HANDLING_EVENT_VOICE_RECOGNITION_DISABLED:
3141 TC_PRT("[call_handling_event_cb] event [VOICE_RECOGNITION_DISABLED]");
3143 case BT_HF_CALL_HANDLING_EVENT_WAITING:
3144 TC_PRT("[call_handling_event_cb] event [WAITING]");
3146 case BT_HF_CALL_HANDLING_EVENT_HELD:
3147 TC_PRT("[call_handling_event_cb] event [HELD]");
3149 case BT_HF_CALL_HANDLING_EVENT_UNHELD:
3150 TC_PRT("[call_handling_event_cb] event [UNHELD]");
3152 case BT_HF_CALL_HANDLING_EVENT_SWAPPED:
3153 TC_PRT("[call_handling_event_cb] event [SWAPPED]");
3156 TC_PRT("[call_handling_event_cb] event [UNKNOWN]");
3159 TC_PRT("[call_handling_event_cb] phone_number [%s]",
3163 void __bt_hf_call_status_updated_event_cb(GSList *call_info_list,
3166 TC_PRT("[call_status_updated_event_cb]");
3167 for (; call_info_list; call_info_list = g_slist_next(call_info_list)) {
3168 bt_hf_call_status_info_s *call_info = call_info_list->data;
3169 TC_PRT(" > Call info [No:%s, Dir:%d, Stat:%d, Mpt:%d, Idx:%d]",
3170 call_info->number, call_info->direction,
3171 call_info->status, call_info->multi_party,
3175 bt_hf_free_call_status_info_list(call_info_list);
3178 void __bt_hf_speaker_gain_changed_cb(int gain,
3181 TC_PRT("__bt_hf_speaker_gain_changed_cb");
3182 TC_PRT("Gain= %d", gain);
3185 void __bt_pbap_connection_state_changed_cb(int result, bool connected, const char *remote_address, void *user_data)
3187 TC_PRT("__bt_pbap_connection_state_changed_cb");
3188 TC_PRT("Result: %d", result);
3189 TC_PRT("Remote Device: %s", remote_address);
3190 TC_PRT("Connected Status: %d", connected);
3193 void __bt_pbap_phonebook_size_cb(int result, const char *remote_address,
3194 int size, void *user_data)
3196 TC_PRT("__bt_pbap_phonebook_size_cb");
3197 TC_PRT("Result: %d", result);
3198 TC_PRT("Remote Device: %s", remote_address);
3199 TC_PRT("Phonebook Size: %d", size);
3202 void __bt_pbap_phonebook_pull_cb(int result, const char *remote_address,
3203 const char *vcf_file, void *user_data)
3205 TC_PRT("__bt_pbap_phonebook_pull_cb");
3206 TC_PRT("Result: %d", result);
3207 TC_PRT("Remote Device: %s", remote_address);
3208 TC_PRT("Phonebook Download File: %s", vcf_file);
3209 TC_PRT("Phonebook Download Status: %s",
3210 (result == BT_ERROR_NONE) ? "Successful" : "Unsuccessful");
3213 void __bt_pbap_vcard_list_cb(int result, const char *remote_address,
3214 const bt_pbap_vcard_info_s *vcard_info, int count, void *user_data)
3218 TC_PRT("__bt_pbap_vcard_list_cb");
3219 TC_PRT("Result: %d", result);
3220 TC_PRT("Remote Device: %s", remote_address);
3221 TC_PRT("vCard Count: %d", count);
3223 for (i = 0; i < count; i++)
3224 TC_PRT("vCard[%d]: %s", vcard_info[i].index, vcard_info[i].contact_name);
3226 TC_PRT("Listing Status: %s",
3227 (result == BT_ERROR_NONE) ? "Successful" : "Unsuccessful");
3230 void __bt_repeat_test_adapter_state_changed_cb(int result,
3231 bt_adapter_state_e adapter_state, void *user_data)
3233 unsigned int delay = *(unsigned int *)user_data;
3235 TC_PRT("__bt_repeat_test_adapter_state_changed_cb");
3236 TC_PRT("result: %s", __bt_get_error_message(result));
3237 TC_PRT("state: %s, delay(%dsec)",
3238 (adapter_state == BT_ADAPTER_ENABLED) ?
3239 "ENABLED" : "DISABLED", delay);
3241 __bt_print_repeat_test_summary();
3243 if (result != BT_ERROR_NONE) {
3244 char *argv[] = {NULL};
3246 TC_PRT("make dump\n");
3247 execv("all_log_dump.sh", argv);
3249 bt_onoff_cnt_fail++;
3251 bt_onoff_cnt_success++;
3257 gettimeofday(&check_time, NULL);
3258 if (adapter_state == BT_ADAPTER_DISABLED)
3259 bt_adapter_enable();
3261 bt_adapter_disable();
3266 /* TDS Seeker Callbacks */
3267 static void __bt_tds_provider_scan_result_cb(int result, const char *remote_address,
3268 bt_tds_transport_block_list_s *info, bt_adapter_le_device_scan_result_info_s *scan_info,
3273 TC_PRT("__bt_tds_provider_scan_result_cb");
3274 TC_PRT("result: %s", __bt_get_error_message(result));
3276 TC_PRT("Result: %s", __bt_get_error_message(result));
3277 TC_PRT("Remote addr [%s]", remote_address);
3278 TC_PRT("Number of Transport Block [%d]", info->num_transport_block);
3280 if (result == BT_ERROR_NONE) {
3281 for (k = 0; k < info->num_transport_block; k++) {
3282 TC_PRT("Block Num[%d] Transport Name [%d]", k+1, info->data[k]->transport);
3283 TC_PRT("Block Num[%d] Transport state [%d]", k+1, info->data[k]->state);
3284 TC_PRT("Block Num[%d] Is Data complete [%d]", k+1, info->data[k]->is_data_complete);
3285 TC_PRT("Block Num[%d] Length of TDS Block data [%d]", k+1, info->data[k]->length);
3287 for (l = 0; l < info->data[k]->length; l++)
3288 TC_PRT("Transport Specific data [%d] = [0x%x]", l, info->data[k]->data[l]);
3293 static void __bt_tds_seeker_connection_state_changed_cb(int result, const char *remote_address,
3294 bt_tds_seeker_h seeker, bool connected, void *user_data)
3296 TC_PRT("Result: %s", __bt_get_error_message(result));
3297 if (result == BT_ERROR_NONE) {
3299 TC_PRT("TDS Seeker connected(address = %s)", remote_address);
3301 TC_PRT("TDS Seeker Disconnected (address = %s)", remote_address);
3303 BT_ERR("TDS Connection failed!");
3306 static void __bt_hrp_collector_connection_state_changed_cb(int result, const char *remote_address,
3307 bt_hrp_collector_h seeker, bool connected, void *user_data)
3309 TC_PRT("Result: %s", __bt_get_error_message(result));
3310 if (result == BT_ERROR_NONE) {
3312 TC_PRT("HRP Collector connected(address = %s)", remote_address);
3314 TC_PRT("HRP Collector Disconnected (address = %s)", remote_address);
3316 BT_ERR("HRP Collection Connection failed!");
3320 static void __bt_tds_seeker_complete_transport_data_cb(int result, const char *remote_address,
3321 bt_tds_transport_block_list_s *info, void *user_data)
3325 TC_PRT("__bt_tds_seeker_complete_transport_data_cb");
3326 TC_PRT("Result: %s", __bt_get_error_message(result));
3327 TC_PRT("Remote addr [%s]", remote_address);
3329 if (result == BT_ERROR_NONE) {
3330 TC_PRT("Number of Transport Block [%d]", info->num_transport_block);
3331 for (k = 0; k < info->num_transport_block; k++) {
3332 TC_PRT("Block Num[%d] Transport Name [%d]", k+1, info->data[k]->transport);
3333 TC_PRT("Block Num[%d] Transport state [%d]", k+1, info->data[k]->state);
3334 TC_PRT("Block Num[%d] Is Data complete [%d]", k+1, info->data[k]->is_data_complete);
3335 TC_PRT("Block Num[%d] Length of TDS Block data [%d]", k+1, info->data[k]->length);
3337 for (l = 0; l < info->data[k]->length; l++)
3338 TC_PRT("Transport Specific data [%d] = [0x%x]", l, info->data[k]->data[l]);
3341 BT_ERR("TDS Data receive request failed!");
3344 static void __bt_tds_control_point_activation_result_cb(int result, const char *remote_address,
3345 unsigned char *data, int length, void *user_data)
3348 TC_PRT("__bt_tds_control_point_activation_result_cb");
3349 TC_PRT("Result [%d]", result);
3350 TC_PRT("Address[%s]", remote_address);
3352 if (result == BT_ERROR_NONE) {
3353 TC_PRT("Data length [%d]", length);
3354 for (k = 0; k < length; k++)
3355 TC_PRT("Data[%d] [0x%x]", k, data[k]);
3359 void __bt_otp_server_state_changed_cb(int result, bool status)
3361 TC_PRT("__bt_otp_server_state_changed_cb");
3362 TC_PRT("Result: %d", result);
3363 TC_PRT("Server Status: %s", status ? "enabled" : "disabled");
3366 static void __bt_otp_client_connection_state_changed_cb(int result, const char *remote_address,
3367 bt_otp_client_h otp_client, bool connected, void *user_data)
3369 TC_PRT("Result: %s", __bt_get_error_message(result));
3370 if (result == BT_ERROR_NONE) {
3372 TC_PRT("OTP Client connected(address = %s)", remote_address);
3374 TC_PRT("OTP Client Disconnected (address = %s)", remote_address);
3376 BT_ERR("OTP Connection failed!");
3379 static void __bt_otp_client_object_discovery_cb(int result, const char *remote_address,
3380 bt_otp_object_list_s *obj_list, void *user_data)
3383 TC_PRT("__bt_otp_client_object_discovery_cb");
3384 TC_PRT("Result: %s", __bt_get_error_message(result));
3385 TC_PRT("Remote addr [%s]", remote_address);
3387 if (result == BT_ERROR_NONE) {
3388 TC_PRT("Number of Objects [%d]", obj_list->num_objects);
3390 for (k = 0; k < obj_list->num_objects; k++)
3391 TC_PRT("Object[%d] Id: [%llu] Name: [%s]", k+1, obj_list->data[k]->id, obj_list->data[k]->name);
3394 BT_ERR("Object discovery failed!");
3398 static void __bt_otp_client_object_select_cb(int result, const char *remote_address,
3399 unsigned long long obj_id, void *user_data)
3401 TC_PRT("__bt_otp_client_object_select_cb");
3402 TC_PRT("Result: %s", __bt_get_error_message(result));
3403 TC_PRT("Remote addr [%s]", remote_address);
3405 if (result == BT_ERROR_NONE)
3406 TC_PRT("Object selected successfully! Current object[%llu]", obj_id);
3408 BT_ERR("Object selection failed! Current object[%llu]", obj_id);
3411 static void __bt_otp_client_read_object_complete_cb(int result, const char *remote_address,
3412 char *file_path, void *user_data)
3414 if (result == BT_ERROR_NONE)
3415 TC_PRT("Read object success!, File location [%s]", file_path);
3417 BT_ERR("Read object failed!");
3420 static void __bt_otp_client_object_create_cb(int result, const char *remote_address,
3421 unsigned long long obj_id, void *user_data)
3423 if (result == BT_ERROR_NONE)
3424 TC_PRT("Object[%llu] created successfully in remote server!", obj_id);
3426 BT_ERR("Object creation failed!");
3429 static void __bt_otp_client_object_write_cb(int result, const char *remote_address,
3430 unsigned int length, void *user_data)
3432 if (result == BT_ERROR_NONE)
3433 TC_PRT("Object write success!, [%u] bytes written", length);
3435 BT_ERR("Object write failed!, [%u] bytes written", length);
3438 static void __bt_otp_client_object_execute_cb(int result, const char *remote_address,
3439 unsigned long long obj_id, void *user_data)
3441 TC_PRT("__bt_otp_client_object_execute_cb");
3442 TC_PRT("Result: %s", __bt_get_error_message(result));
3443 TC_PRT("Remote addr [%s]", remote_address);
3445 if (result == BT_ERROR_NONE)
3446 TC_PRT("Object[%llu] launched successfully!", obj_id);
3448 BT_ERR("Object[%llu] launch failed!", obj_id);
3451 static void __bt_otp_client_object_delete_cb(int result, const char *remote_address,
3452 unsigned long long obj_id, void *user_data)
3454 TC_PRT("__bt_otp_client_object_delete_cb");
3455 TC_PRT("Result: %s", __bt_get_error_message(result));
3456 TC_PRT("Remote addr [%s]", remote_address);
3458 if (result == BT_ERROR_NONE)
3459 TC_PRT("Object[%llu] deleted successfully!", obj_id);
3461 BT_ERR("Object[%llu] delete failed!", obj_id);
3464 void __bt_gatt_client_read_request_completed_cb(int result,
3465 bt_gatt_h request_handle, void *user_data)
3467 TC_PRT("[HR]Result : %d", result);
3470 void __bt_gatt_client_write_request_completed_cb(int result,
3471 bt_gatt_h request_handle, void *user_data)
3473 TC_PRT("[HR]Result : %d", result);
3476 void _bt_hrp_collector_bsl_read_completed_cb(int result,
3477 bt_hrp_collector_h request_handle, bt_body_sensor_location_e location, void *user_data)
3479 TC_PRT("[HR]Result : %d", result);
3480 TC_PRT("[HR]request_handle : %p", request_handle);
3481 TC_PRT("[HR]location [%d]", location);
3485 static void __bt_initialize_all(void)
3488 TC_PRT("Initialize and set callback functions");
3490 ret = bt_initialize();
3491 if (ret != BT_ERROR_NONE)
3492 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3493 ret = bt_adapter_set_state_changed_cb(
3494 __bt_adapter_state_changed_cb, NULL);
3495 if (ret != BT_ERROR_NONE)
3496 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3497 ret = bt_adapter_set_connectable_changed_cb(
3498 __bt_adapter_connectable_changed_cb, NULL);
3499 if (ret != BT_ERROR_NONE)
3500 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3501 ret = bt_device_set_bond_created_cb(
3502 __bt_device_bond_created_cb, NULL);
3503 if (ret != BT_ERROR_NONE)
3504 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3505 ret = bt_device_set_bond_destroyed_cb(
3506 __bt_device_bond_destroyed_cb, NULL);
3507 if (ret != BT_ERROR_NONE)
3508 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3509 ret = bt_device_set_connection_state_changed_cb(
3510 __bt_device_connection_state_changed_cb, NULL);
3511 if (ret != BT_ERROR_NONE)
3512 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3513 ret = bt_device_set_att_mtu_changed_cb(
3514 __bt_device_att_mtu_changed_cb, NULL);
3515 if (ret != BT_ERROR_NONE)
3516 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3517 ret = bt_gatt_set_connection_state_changed_cb(
3518 __bt_gatt_connection_state_changed_cb, NULL);
3519 if (ret != BT_ERROR_NONE)
3520 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3521 ret = bt_adapter_set_device_discovery_state_changed_cb(
3522 __bt_adapter_device_discovery_state_changed_cb, NULL);
3523 if (ret != BT_ERROR_NONE)
3524 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3525 if (TIZEN_PROFILE_WEARABLE_IVI) {
3526 ret = bt_pbap_client_set_connection_state_changed_cb(__bt_pbap_connection_state_changed_cb,
3528 if (ret != BT_ERROR_NONE)
3529 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3531 ret = bt_socket_set_connection_state_changed_cb(
3532 __bt_socket_connection_state_changed_cb, NULL);
3533 if (ret != BT_ERROR_NONE)
3534 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3536 ret = bt_adapter_le_set_state_changed_cb(
3537 __bt_adapter_le_state_changed_cb, NULL);
3538 if (ret != BT_ERROR_NONE)
3539 TC_PRT("returns %s\n", __bt_get_error_message(ret));
3544 int test_set_params(int test_id, char *param)
3546 static int param_index = 0;
3547 const char *param_type = NULL;
3548 int param_count = 0;
3550 if (param_index > 0 && param_index == g_test_param.param_count)
3553 switch (current_tc_table) {
3554 case BT_UNIT_TEST_TABLE_ADAPTER: {
3556 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY:
3558 TC_PRT("Input param(%d) (non-discoverable: -1, always: 0, limited-discoverable(time): N)", param_index + 1);
3560 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_CONNECTABLE:
3562 param_type = BT_UNIT_TEST_PARAM_TYPE_BOOL;
3563 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3565 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_MANUFACTURER_DATA:
3567 param_type = BT_UNIT_TEST_PARAM_TYPE_BYTE_ARRAY;
3568 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3570 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_REMOTE_OOB_EXT_DATA:
3572 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
3573 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3576 TC_PRT("There is no param to set\n");
3577 need_to_set_params = false;
3584 case BT_UNIT_TEST_TABLE_ADAPTER_LE: {
3586 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_MODE:
3588 TC_PRT("Scan mode\n (0 : Balanced (5000/2000 ms), 1: Low Latency (5000/5000 ms), 2 : Low Energy (5000/500 ms)");
3590 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_TYPE:
3592 TC_PRT("Scan type\n (0 : Passive, 1: Active)");
3594 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_CUSTOMIZED:
3596 switch (param_index) {
3598 TC_PRT("Input Scan Interval (Unit : ms)");
3601 TC_PRT("Input Scan Window (Unit : ms)");
3605 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_ADDRESS:
3606 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_NAME:
3608 TC_PRT("Input data for LE scan filter");
3610 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_ADVERTISING_DATA:
3612 TC_PRT("Select advertising data \n (0 : Service uuid, 1: Service solicitation 2 : Appearance & Tx power, 3 : All, 4 : ANCS");
3613 TC_PRT("\t (Default scan response : Service Data &Local name & Manufacturer data)");
3615 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_MODE:
3617 TC_PRT("Input mode \n (0 : Balanced(500 ms), 1 : Low Latency(150 ms), 2 : Low Energy (1000 ms))");
3619 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_FILTER_POLICY:
3621 TC_PRT("Input filter_policy \n (0 : No use White List, 1 : Allow scan, 2 : Allow conneciton, 3 : Allow scan & conneciton)");
3623 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CONNECTABLE:
3625 TC_PRT("Input adv type \n (0 : Non-connectable (ADV_SCAN_IND), 1 : Connectable (ADV_IND) ");
3627 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CUSTOM_TX_POWER:
3629 TC_PRT("Input adv Tx power level \n ( 1 ~ -127 dBm) ");
3631 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_ADVERTISING:
3633 TC_PRT("Input adv slot id \n (Default is 0, Maximum is 2) ");
3635 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE_PRIVACY:
3637 param_type = BT_UNIT_TEST_PARAM_TYPE_BOOL;
3638 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3640 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_REMOTE_OOB_EXT_DATA:
3642 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
3643 switch (param_index) {
3645 TC_PRT("Remote address");
3648 TC_PRT("Address type (0 : Public, 1 : Random");
3651 TC_PRT("confirmation");
3659 TC_PRT("There is no param to set\n");
3660 need_to_set_params = false;
3667 case BT_UNIT_TEST_TABLE_DEVICE: {
3669 case BT_UNIT_TEST_FUNCTION_DEVICE_IS_PROFILE_CONNECTED:
3670 case BT_UNIT_TEST_FUNCTION_DEVICE_CREATE_BOND_BY_TYPE:
3672 param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
3673 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3675 case BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION_MODE:
3677 TC_PRT("Input param(%d) mode (0 : balanced, 1 : low latency, 2 : low power) ", param_index + 1);
3679 case BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION:
3681 switch (param_index) {
3683 TC_PRT("Input interval min (8 ~ 4000)");
3686 TC_PRT("Input interval max (8 ~ 4000)");
3689 TC_PRT("Input slave latency ( 0 ~ 499)");
3692 TC_PRT("Input supervision timeout ( 100 ~ 32000)");
3696 case BT_UNIT_TEST_FUNCTION_DEVICE_REQUEST_ATT_MTU:
3698 param_type = "int(1, 2, 10, ...., 512)";
3699 TC_PRT("Input param(%d) : %s", param_index + 1, param_type);
3701 case BT_UNIT_TEST_FUNCTION_LE_DEVICE_SET_DATA_LENGTH:
3703 switch (param_index) {
3705 TC_PRT("Input max octets (27 ~ 251)");
3708 TC_PRT("Input max time (328 ~ 2120)");
3713 TC_PRT("There is no param to set\n");
3714 need_to_set_params = false;
3721 case BT_UNIT_TEST_TABLE_SOCKET: {
3723 case BT_UNIT_TEST_FUNCTION_SOCKET_CREATE_RFCOMM_CUSTOM_UUID:
3724 case BT_UNIT_TEST_FUNCTION_SOCKET_CONNECT_RFCOMM_CUSTOM_UUID:
3725 case BT_UNIT_TEST_FUNCTION_SOCKET_SEND_DATA:
3727 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
3728 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3731 TC_PRT("There is no param to set\n");
3732 need_to_set_params = false;
3739 case BT_UNIT_TEST_TABLE_OPP: {
3742 TC_PRT("There is no param to set\n");
3743 need_to_set_params = false;
3750 case BT_UNIT_TEST_TABLE_AUDIO: {
3752 case BT_UNIT_TEST_FUNCTION_AUDIO_CONNECT:
3753 case BT_UNIT_TEST_FUNCTION_AUDIO_DISCONNECT:
3755 param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
3756 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3758 case BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_DIALING:
3759 case BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_INCOMING:
3760 case BT_UNIT_TEST_FUNCTION_CALL_LIST_ADD:
3761 case BT_UNIT_TEST_FUNCTION_AG_SWITCH_HEADSET:
3763 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
3764 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3767 TC_PRT("There is no param to set\n");
3768 need_to_set_params = false;
3775 case BT_UNIT_TEST_TABLE_PAN: {
3778 TC_PRT("There is no param to set\n");
3779 need_to_set_params = false;
3786 case BT_UNIT_TEST_TABLE_GATT: {
3788 case BT_UNIT_TEST_FUNCTION_GATT_CONNECT:
3790 param_type = BT_UNIT_TEST_PARAM_TYPE_BOOL;
3791 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3793 case BT_UNIT_TEST_FUNCTION_GATT_SET_WRITE_TYPE: {
3795 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
3797 switch (param_index) {
3799 TC_PRT("Input Service UUID");
3802 TC_PRT("Input Characteristic UUID");
3805 TC_PRT("Input write_type (0 : no response, 1 : with reponse, 2 : signed)");
3810 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_READ_VALUE: {
3813 switch (param_index) {
3815 TC_PRT("Input Service UUID");
3818 TC_PRT("Input Characteristic UUID");
3821 TC_PRT("Input Descriptor UUID or nothing");
3826 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_WRITE_VALUE: {
3829 switch (param_index) {
3831 TC_PRT("Input Service UUID");
3834 TC_PRT("Input Characteristic UUID");
3837 TC_PRT("Input Descriptor UUID or nothing");
3840 TC_PRT("Input Value Type (avail. : uint8, uint16, uint32, int8, int16, int32, str)");
3843 TC_PRT("Input Value");
3848 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_CHAR_VALUE_CHANGED_CB: {
3851 switch (param_index) {
3853 TC_PRT("Input Service UUID");
3856 TC_PRT("Input Characteristic UUID");
3861 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_CHAR_VALUE_CHANGED_CB: {
3864 switch (param_index) {
3866 TC_PRT("Input Service UUID");
3869 TC_PRT("Input Characteristic UUID");
3874 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_REQUEST_ATT_MTU:
3876 param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
3877 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3879 case BT_UNIT_TEST_FUNCTION_ANCS_POSITIVE_ACTION:
3880 case BT_UNIT_TEST_FUNCTION_ANCS_NEGATIVE_ACTION:
3881 case BT_UNIT_TEST_FUNCTION_ANCS_GET_NOTI_ATTR:
3883 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
3884 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3886 case BT_UNIT_TEST_FUNCTION_GATT_ENABLE_DATA_BATCHING: {
3888 switch (param_index) {
3890 TC_PRT("Input buffer_threshold (1 ~ 32767)");
3893 TC_PRT("Input timeout (1 ~ 32767)");
3899 TC_PRT("There is no param to set\n");
3900 need_to_set_params = false;
3907 case BT_UNIT_TEST_TABLE_HPS: {
3909 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_CREATE:
3911 param_type = BT_UNIT_TEST_PARAM_TYPE_BOOL;
3912 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3914 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_HDR:
3915 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_ENTITY:
3916 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_URI:
3918 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
3919 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
3921 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_CP: {
3923 TC_PRT("Input Value Type (avail. : \n1.HTTP_GET, \n2.HTTP_HEAD, \
3924 \n3.HTTP_POST, \n4.HTTP_PUT, \n5.HTTP_DELETE, \
3925 \n6.HTTPS_GET, \n7.HTTPS_HEAD, \n8.HTTPS_POST, \
3926 \n9.HTTPS_PUT, \n10.HTTPS_DELETE, \n11.HTTP_CANCEL");
3930 TC_PRT("There is no param to set\n");
3931 need_to_set_params = false;
3937 case BT_UNIT_TEST_TABLE_DPM: {
3939 case BT_UNIT_TEST_FUNCTION_DPM_SET_ALLOW_BLUETOOTH_MODE:
3941 TC_PRT("Input Value Type (avail. : \n0.BT_DPM_BT_ALLOWED, \n1.BT_DPM_HANDSFREE_ONLY, \n2.BT_DPM_BT_RESTRICTED");
3944 case BT_UNIT_TEST_FUNCTION_DPM_ACTIVATE_DEVICE_RESTRICTION:
3945 case BT_UNIT_TEST_FUNCTION_DPM_ACTIVATE_UUID_RESTRICTION:
3946 case BT_UNIT_TEST_FUNCTION_DPM_SET_ALLOW_OUTGOING_CALL:
3947 case BT_UNIT_TEST_FUNCTION_DPM_SET_PAIRING_STATE:
3948 case BT_UNIT_TEST_FUNCTION_DPM_SET_DESKTOP_CONNECTIVITY_STATE:
3949 case BT_UNIT_TEST_FUNCTION_DPM_SET_DISCOVERABLE_STATE:
3950 case BT_UNIT_TEST_FUNCTION_DPM_SET_LIMITED_DISCOVERABLE_STATE:
3951 case BT_UNIT_TEST_FUNCTION_DPM_SET_DATA_TRANSFER_STATE:
3953 TC_PRT("Input Value Type (avail. : \n0.BT_DPM_BT_ALLOWED, \n1.BT_DPM_RESTRICTED");
3955 case BT_UNIT_TEST_FUNCTION_DPM_ADD_DEVICES_TO_BLACKLIST:
3956 case BT_UNIT_TEST_FUNCTION_DPM_ADD_DEVICES_TO_WHITELIST:
3957 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_DEVICE_FROM_BLACKLIST:
3958 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_DEVICE_FROM_WHITELIST:
3960 TC_PRT("Input device Address");
3962 case BT_UNIT_TEST_FUNCTION_DPM_ADD_UUIDS_TO_BLACKLIST:
3963 case BT_UNIT_TEST_FUNCTION_DPM_ADD_UUIDS_TO_WHITELIST:
3964 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_UUIDS_FROM_BLACKLIST:
3965 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_UUIDS_FROM_WHITELIST:
3967 TC_PRT("Input UUID");
3969 case BT_UNIT_TEST_FUNCTION_DPM_SET_PROFILE_STATE:
3971 switch (param_index) {
3973 TC_PRT("Input Profile Type (avail. : \n0.BT_DPM_POLICY_A2DP_PROFILE_STATE, \
3974 \n1.BT_DPM_POLICY_AVRCP_PROFILE_STATE, \
3975 \n2.BT_DPM_POLICY_BPP_PROFILE_STATE, \
3976 \n3.BT_DPM_POLICY_DUN_PROFILE_STATE, \
3977 \n4.BT_DPM_POLICY_FTP_PROFILE_STATE, \
3978 \n5.BT_DPM_POLICY_HFP_PROFILE_STATE, \
3979 \n6.BT_DPM_POLICY_HSP_PROFILE_STATE, \
3980 \n7.BT_DPM_POLICY_PBAP_PROFILE_STATE, \
3981 \n8.BT_DPM_POLICY_SAP_PROFILE_STATE, \
3982 \n9.BT_DPM_POLICY_SPP_PROFILE_STATE");
3985 TC_PRT("Input Value Type (avail. : \n0.BT_DPM_BT_ALLOWED, \n1.BT_DPM_RESTRICTED");
3989 case BT_UNIT_TEST_FUNCTION_DPM_GET_PROFILE_STATE:
3991 TC_PRT("Input Profile Type (avail. : \n0.BT_DPM_POLICY_A2DP_PROFILE_STATE, \
3992 \n1.BT_DPM_POLICY_AVRCP_PROFILE_STATE, \
3993 \n2.BT_DPM_POLICY_BPP_PROFILE_STATE, \
3994 \n3.BT_DPM_POLICY_DUN_PROFILE_STATE, \
3995 \n4.BT_DPM_POLICY_FTP_PROFILE_STATE, \
3996 \n5.BT_DPM_POLICY_HFP_PROFILE_STATE, \
3997 \n6.BT_DPM_POLICY_HSP_PROFILE_STATE, \
3998 \n7.BT_DPM_POLICY_PBAP_PROFILE_STATE, \
3999 \n8.BT_DPM_POLICY_SAP_PROFILE_STATE, \
4000 \n9.BT_DPM_POLICY_SPP_PROFILE_STATE");
4004 TC_PRT("There is no param to set\n");
4005 need_to_set_params = false;
4012 case BT_UNIT_TEST_TABLE_PXP: {
4014 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_LINKLOSS_ALERT:
4015 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_IMMEDIATE_ALERT:
4017 TC_PRT("Input Value Type (avail. : \n0.NONE, \n1.MILD, \n2.HIGH");
4020 TC_PRT("There is no param to set\n");
4021 need_to_set_params = false;
4027 case BT_UNIT_TEST_TABLE_AVRCP: {
4030 TC_PRT("There is no param to set\n");
4031 need_to_set_params = false;
4037 case BT_UNIT_TEST_TABLE_HID: {
4039 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_RC_KEY_EVENT:
4041 TC_PRT("Select TV control mode (1 : Vol Up, 2 : Vol Down, 3 : CH Up, 4 : CH Down) : ");
4044 TC_PRT("There is no param to set\n");
4045 need_to_set_params = false;
4052 case BT_UNIT_TEST_TABLE_IPSP: {
4054 case BT_UNIT_TEST_FUNCTION_IPSP_CONNECT_WITH_APP_SERVER_SOCKET:
4056 TC_PRT("IPSP Client : Input IPSP App server's IPv6 address to connect :");
4058 case BT_UNIT_TEST_FUNCTION_IPSP_SEND_IPV6_APP_DATA: {
4060 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
4062 switch (param_index) {
4064 TC_PRT("IPSP : Input current role of Application[Server[0] / Client[1] :");
4067 TC_PRT("IPSP : input data to send :");
4072 case BT_UNIT_TEST_FUNCTION_IPSP_RECV_IPV6_APP_DATA:
4074 TC_PRT("IPSP : Input current role of Application[Server[0]/Client[1] :");
4077 TC_PRT("There is no param to set\n");
4078 need_to_set_params = false;
4085 case BT_UNIT_TEST_TABLE_HDP: {
4088 TC_PRT("There is no param to set\n");
4089 need_to_set_params = false;
4096 case BT_UNIT_TEST_TABLE_HF:
4099 case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_WITH_PARAM:
4101 param_type = BT_UNIT_TEST_PARAM_TYPE_INT;
4102 TC_PRT("Input param(%d) type:%s", param_index + 1, param_type);
4105 TC_PRT("There is no param to set\n");
4106 need_to_set_params = false;
4113 case BT_UNIT_TEST_TABLE_PBAP_CLIENT:
4114 if (!TIZEN_PROFILE_WEARABLE_IVI)
4119 TC_PRT("There is no param to set\n");
4120 need_to_set_params = false;
4127 case BT_UNIT_TEST_TABLE_ETC: {
4129 case BT_UNIT_TEST_FUNCTION_APP_CONTROL_DEFAULT:
4131 param_type = BT_UNIT_TEST_PARAM_TYPE_STRING;
4132 TC_PRT("Input launch-type string(ex. setting, headset, hid)");
4134 case BT_UNIT_TEST_FUNCTION_CHECK_FEATURE:
4136 TC_PRT("Input feature string(ex. tizen.org/feature/network.bluetooth)");
4139 TC_PRT("There is no param to set\n");
4140 need_to_set_params = false;
4147 case BT_UNIT_TEST_TABLE_OTP: {
4149 case BT_UNIT_TEST_FUNCTION_OTP_SERVER_INIT:
4150 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE_OBJ:
4152 TC_PRT("Input Value in string");
4154 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SELECT_OBJ:
4156 TC_PRT("Input Value in uint64_t");
4158 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_WRITE_OBJ:
4161 switch (param_index) {
4163 TC_PRT("Input file path");
4166 TC_PRT("Input offset");
4169 TC_PRT("Input Length");
4172 TC_PRT("Input mode");
4177 TC_PRT("There is no param to set\n");
4178 need_to_set_params = false;
4186 TC_PRT("There is no param to set\n");
4187 need_to_set_params = false;
4192 if (need_to_set_params) {
4193 if (param_index == 0) {
4194 g_test_param.param_count = param_count;
4195 g_test_param.params = g_malloc0(sizeof(char*) * g_test_param.param_count);
4198 if (param_index > 0) {
4199 int len = strlen(param);
4200 /* Remove new line character */
4201 param[len - 1] = '\0';
4202 g_test_param.params[param_index - 1] = g_strdup(param);
4205 if (param_index == g_test_param.param_count) {
4206 need_to_set_params = false;
4208 test_input_callback((void *)(uintptr_t)test_id);
4210 test_input_callback((void *)test_id);
4222 int test_input_callback(void *data)
4226 int test_id = (uintptr_t)data;
4228 int test_id = (int)data;
4231 switch (current_tc_table) {
4232 case BT_UNIT_TEST_TABLE_MAIN: {
4236 g_main_loop_quit(main_loop);
4239 case BT_UNIT_TEST_FUNCTION_INITIALIZE:
4240 ret = bt_initialize();
4241 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4243 case BT_UNIT_TEST_FUNCTION_DEINITIALIZE:
4244 ret = bt_deinitialize();
4245 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4253 case BT_UNIT_TEST_TABLE_ADAPTER: {
4255 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_STATE: {
4256 bt_adapter_state_e state = BT_ADAPTER_DISABLED;
4258 ret = bt_adapter_get_state(&state);
4259 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4260 TC_PRT("state: %d", state);
4263 case BT_UNIT_TEST_FUNCTION_ADAPTER_ENABLE:
4264 ret = bt_adapter_enable();
4265 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4267 case BT_UNIT_TEST_FUNCTION_ADAPTER_DISABLE:
4268 ret = bt_adapter_disable();
4269 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4271 case BT_UNIT_TEST_FUNCTION_ADAPTER_RECOVER:
4272 ret = bt_adapter_recover();
4273 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4275 case BT_UNIT_TEST_FUNCTION_ADAPTER_START_DEVICE_DISCOVERY:
4276 ret = bt_adapter_start_device_discovery();
4277 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4279 case BT_UNIT_TEST_FUNCTION_ADAPTER_STOP_DEVICE_DISCOVERY:
4280 ret = bt_adapter_stop_device_discovery();
4281 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4283 case BT_UNIT_TEST_FUNCTION_ADAPTER_IS_DISCOVERING: {
4284 bool is_discovering = FALSE;
4285 ret = bt_adapter_is_discovering(&is_discovering);
4286 if (ret < BT_ERROR_NONE)
4287 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4289 TC_PRT("is_discovering: %d", is_discovering);
4293 case BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_BONDED_DEVICE: {
4294 ret = bt_adapter_foreach_bonded_device(
4295 __bt_adapter_bonded_device_cb, NULL);
4296 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4299 case BT_UNIT_TEST_FUNCTION_ADAPTER_FOREACH_PROFILE_CONNECTED_DEVICES: {
4300 ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_SPP,
4301 __bt_adapter_profile_connected_devices_cb, NULL);
4302 TC_PRT("SPP connected devices returns %s\n", __bt_get_error_message(ret));
4303 ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_HFP_HF,
4304 __bt_adapter_profile_connected_devices_cb, NULL);
4305 TC_PRT("HFP HF connected devices returns %s\n", __bt_get_error_message(ret));
4306 ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_A2DP_SOURCE,
4307 __bt_adapter_profile_connected_devices_cb, NULL);
4308 TC_PRT("A2DP Source connected devices returns %s\n", __bt_get_error_message(ret));
4309 ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_A2DP_SINK,
4310 __bt_adapter_profile_connected_devices_cb, NULL);
4311 TC_PRT("A2DP Sink connected devices returns %s\n", __bt_get_error_message(ret));
4312 ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_AVRCP_CONTROL,
4313 __bt_adapter_profile_connected_devices_cb, NULL);
4314 TC_PRT("AVRCP Control connected devices returns %s\n", __bt_get_error_message(ret));
4315 ret = bt_adapter_foreach_profile_connected_devices(BT_PROFILE_SERVICE_UUID_AVRCP_TARGET,
4316 __bt_adapter_profile_connected_devices_cb, NULL);
4317 TC_PRT("AVRCP Target connected devices returns %s\n", __bt_get_error_message(ret));
4320 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_BONDED_DEVICE_INFO: {
4321 bt_device_info_s *device_info = NULL;
4325 ret = bt_adapter_get_bonded_device_info(remote_addr,
4327 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4330 TC_PRT("address: %s", device_info->remote_address);
4331 TC_PRT("name: %s", device_info->remote_name);
4332 TC_PRT("is_connected: %d", device_info->is_connected);
4333 TC_PRT("is_authorized: %d", device_info->is_authorized);
4334 TC_PRT("service 0x%x, major 0x%x, minor 0x%x", device_info->bt_class.major_service_class_mask,
4335 device_info->bt_class.major_device_class,
4336 device_info->bt_class.minor_device_class);
4338 TC_PRT("service_count: %d", device_info->service_count);
4339 if (device_info->service_uuid == NULL) {
4342 for (i = 0; i < device_info->service_count; i++) {
4343 bt_get_uuid_name(device_info->service_uuid[i], &str);
4345 TC_PRT("[%d / %d] %s (%s)", i, device_info->service_count,
4346 str ? str : "Unknown", device_info->service_uuid[i]);
4351 if (device_info->manufacturer_data_len > 0) {
4352 TC_PRT("manufacturer specific data(len:%d)",
4353 device_info->manufacturer_data_len);
4355 for (i = 0; i < device_info->manufacturer_data_len; i++)
4356 printf("%02x ", device_info->manufacturer_data[i]);
4362 bt_adapter_free_device_info(device_info);
4365 case BT_UNIT_TEST_FUNCTION_ADAPTER_IS_SERVICE_USED: {
4368 ret = bt_adapter_is_service_used(opp_uuid, &used);
4369 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4370 TC_PRT("used: %d", used);
4373 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_VISIBILITY: {
4374 bt_adapter_visibility_mode_e visibility_mode = BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE;
4377 ret = bt_adapter_get_visibility(&visibility_mode, &time);
4378 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4379 TC_PRT("mode: %d", visibility_mode);
4380 TC_PRT("time: %d", time);
4383 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY: {
4384 int mode = BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE;
4385 int timeout_sec = 0;
4387 if (g_test_param.param_count > 0) {
4388 if (g_test_param.params[0][0] == '-')
4389 mode = BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE;
4390 else if (g_test_param.params[0][0] == '0')
4391 mode = BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE;
4393 mode = BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE;
4394 timeout_sec = atoi(g_test_param.params[0]);
4396 __bt_free_test_param(&g_test_param);
4399 ret = bt_adapter_set_visibility(mode, timeout_sec);
4400 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4403 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_DEVICE_DISCOVERY_STATE_CHANGED_CB:
4404 ret = bt_adapter_set_device_discovery_state_changed_cb(
4405 __bt_adapter_device_discovery_state_changed_cb, NULL);
4406 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4408 case BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_DEVICE_DISCOVERY_STATE_CHANGED_CB:
4409 ret = bt_adapter_unset_device_discovery_state_changed_cb();
4410 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4413 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_LOCAL_OOB_DATA: {
4414 ret = bt_adapter_get_local_oob_data(&hash, &randomizer,
4415 &hash_len, &rand_len);
4416 if (ret < BT_ERROR_NONE) {
4417 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4419 TC_PRT("hash = [%s]", hash);
4420 TC_PRT("randomizer = [%s]", randomizer);
4425 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_REMOTE_OOB_DATA: {
4426 ret = bt_adapter_set_remote_oob_data(remote_addr, hash,
4427 randomizer, hash_len, rand_len);
4428 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4431 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_LOCAL_OOB_EXT_DATA: {
4432 unsigned char *data[4];
4436 ret = bt_adapter_get_local_oob_ext_data(
4437 &data[0], &data[1], &len[0], &len[1],
4438 &data[2], &data[3], &len[2], &len[3]);
4439 if (ret < BT_ERROR_NONE) {
4440 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4442 for (i = 0; i < 4; i++) {
4445 printf("Data[%d] : ", i);
4447 for (j = 0; j < len[i]; j++)
4448 printf("%02x", data[i][j]);
4457 case BT_UNIT_TEST_FUNCTION_ADAPTER_READ_BATTERY_INFO: {
4458 bt_battery_info_s battery_data;
4459 memset(&battery_data, 0, sizeof(bt_battery_info_s));
4460 ret = bt_adapter_read_battery_info(&battery_data);
4462 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4464 TC_PRT("Battery data: %ld %ld %d %d", battery_data.session_start_time,
4465 battery_data.session_end_time, battery_data.session_scan_time, battery_data.session_connected_time);
4467 TC_PRT("Tx time [%d], Rx time [%d], Idle time [%d]", battery_data.tx_time,
4468 battery_data.rx_time, battery_data.idle_time);
4470 if(battery_data.atm_list == NULL) {
4471 TC_PRT("No data transaction in this session");
4475 TC_PRT("Displaying app-wise transaction details");
4476 for (GSList *l = battery_data.atm_list; l != NULL; l = g_slist_next(l)) {
4477 bt_battery_app_info_s *t = (bt_battery_app_info_s *)(l->data);
4478 TC_PRT("uid: %ld, pid: %ld, received bytes: %d, sent bytes: %d, time: %u",
4479 (long int)(t->uid), (long int)(t->pid), t->rx_bytes, t->tx_bytes, t->time);
4484 case BT_UNIT_TEST_FUNCTION_ADAPTER_INIT_BATTERY_MONITOR: {
4485 int ret = bt_adapter_init_battery_monitor(__bt_adapter_disable_battery_cb, NULL);
4486 if (ret == BLUETOOTH_ERROR_NONE)
4487 TC_PRT("Battery monitor initialized and activated");
4489 TC_PRT("Battery monitor could not be initialized and activated");
4492 case BT_UNIT_TEST_FUNCTION_ADAPTER_DEINIT_BATTERY_MONITOR: {
4493 int ret = bt_adapter_deinit_battery_monitor();
4494 if (ret == BLUETOOTH_ERROR_NONE)
4495 TC_PRT("Battery monitor deinitialized successfully");
4497 TC_PRT("Battery monitor could not be deinitialized");
4500 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_REMOTE_OOB_EXT_DATA: {
4501 char remote_addr[18];
4502 unsigned char *param_data[4];
4508 if (g_test_param.param_count != 5) {
4509 TC_PRT("Input parameter first!");
4513 g_strlcpy(remote_addr, g_test_param.params[0],
4514 sizeof(remote_addr));
4516 for (i = 0; i < 4; i++) {
4517 len[i] = strlen(g_test_param.params[i + 1]) / 2;
4518 param_data[i] = g_malloc0(len[i]);
4521 for (i = 0; i < 4; i++) {
4524 printf("param_data[%d] : ", i);
4525 for (j = 0; j < len[i]; j++) {
4526 g_strlcpy(tmp, g_test_param.params[i + 1] + 2 * j, sizeof(tmp));
4527 val = strtol(tmp, NULL, 16);
4528 param_data[i][j] = val;
4529 printf("%02x", param_data[i][j]);
4534 ret = bt_adapter_set_remote_oob_ext_data(remote_addr,
4535 param_data[0], param_data[1], len[0], len[1],
4536 param_data[2], param_data[3], len[2], len[3]);
4538 __bt_free_test_param(&g_test_param);
4540 for (i = 0; i < 4; i++)
4541 g_free(param_data[i]);
4543 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4547 case BT_UNIT_TEST_FUNCTION_ADAPTER_REMOVE_REMOTE_OOB_DATA: {
4548 ret = bt_adapter_remove_remote_oob_data(remote_addr);
4549 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4553 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY_MODE_CHANGED_CB:
4554 ret = bt_adapter_set_visibility_mode_changed_cb(
4555 __bt_adapter_device_visibility_mode_changed_cb, NULL);
4556 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4558 case BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_VISIBILITY_MODE_CHANGED_CB:
4559 ret = bt_adapter_unset_visibility_mode_changed_cb();
4560 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4563 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_VISIBILITY_DURATION_CHANGED_CB:
4564 ret = bt_adapter_set_visibility_duration_changed_cb(
4565 __bt_adapter_device_visibility_duration_changed_cb, NULL);
4566 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4568 case BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_VISIBILITY_DURATION_CHANGED_CB:
4569 ret = bt_adapter_unset_visibility_duration_changed_cb();
4570 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4573 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_CONNECTABLE_CHANGED_CB: {
4574 ret = bt_adapter_set_connectable_changed_cb(
4575 __bt_adapter_connectable_changed_cb, NULL);
4576 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4580 case BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_CONNECTABLE_CHANGED_CB: {
4581 ret = bt_adapter_unset_connectable_changed_cb();
4582 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4586 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_CONNECTABLE: {
4587 bool connectable = false;
4589 ret = bt_adapter_get_connectable(&connectable);
4590 if (ret < BT_ERROR_NONE) {
4591 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4595 TC_PRT("%s", connectable ? "Connectable" : "Non-connectable");
4599 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_CONNECTABLE: {
4600 bool connectable = false;
4602 bt_adapter_get_connectable(&connectable);
4604 if (g_test_param.param_count > 0) {
4605 if (g_strrstr(g_test_param.params[0], "true"))
4608 connectable = false;
4610 __bt_free_test_param(&g_test_param);
4613 ret = bt_adapter_set_connectable(!connectable);
4614 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4618 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_VERSION: {
4619 char *version = NULL;
4621 ret = bt_adapter_get_version(&version);
4622 if (ret < BT_ERROR_NONE)
4623 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4625 TC_PRT("Version: [%s]", version);
4631 case BT_UNIT_TEST_FUNCTION_ADAPTER_GET_LOCAL_INFO: {
4632 char *chipset = NULL;
4633 char *firmware = NULL;
4634 char *stack_version = NULL;
4635 char *profiles = NULL;
4637 ret = bt_adapter_get_local_info(&chipset, &firmware,
4638 &stack_version, &profiles);
4639 if (ret < BT_ERROR_NONE)
4640 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4642 TC_PRT("Local info: [%s, %s, %s]", chipset, firmware, stack_version);
4643 TC_PRT("Local info(Profiles):\n%s", profiles);
4646 g_free(stack_version);
4652 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_MANUFACTURER_DATA_CHANGED_CB:
4654 ret = bt_adapter_set_manufacturer_data_changed_cb(
4655 __bt_adapter_manufacturer_data_changed_cb, NULL);
4656 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4660 case BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_MANUFACTURER_DATA_CHANGED_CB:
4661 ret = bt_adapter_unset_manufacturer_data_changed_cb();
4662 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4665 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_MANUFACTURER_DATA:
4667 char param_data[20] = {0x03, 0xFF, 0x01, 0x02};
4671 if (g_test_param.param_count > 0) {
4673 for (i = 0; i < (strlen(g_test_param.params[0]) - 1); i += 2) {
4674 if (g_test_param.params[0][i] >= 'A' && g_test_param.params[0][i] <= 'F')
4675 param_data[i/2] = (g_test_param.params[0][i] - 'A' + 0X0A) << 4;
4677 param_data[i/2] = (g_test_param.params[0][i] - '0') << 4;
4679 if (g_test_param.params[0][i+1] >= 'A' && g_test_param.params[0][i+1] <= 'F')
4680 param_data[i/2] += (g_test_param.params[0][i+1] - 'A' + 0X0A);
4682 param_data[i/2] += (g_test_param.params[0][i+1] - '0');
4686 __bt_free_test_param(&g_test_param);
4689 ret = bt_adapter_set_manufacturer_data(param_data, len);
4691 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4694 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_AUTHENTICATION_REQUSET_CB:
4696 ret = bt_adapter_set_authentication_req_cb(
4697 __bt_adapter_authentication_req_cb, NULL);
4698 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4701 case BT_UNIT_TEST_FUNCTION_ADAPTER_SET_AUTHENTICATION_REQUEST_CB_NEW:
4703 ret = bt_adapter_set_authentication_request_cb(
4704 __bt_adapter_authentication_request_cb, NULL);
4705 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4708 case BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_AUTHENTICATION_REQUSET_CB:
4710 ret = bt_adapter_unset_authentication_req_cb();
4711 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4714 case BT_UNIT_TEST_FUNCTION_ADAPTER_UNSET_AUTHENTICATION_REQUEST_CB_NEW:
4716 ret = bt_adapter_unset_authentication_request_cb();
4717 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4720 case BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_REPLY_ACCEPT:
4722 char *passkey = NULL;
4723 TC_PRT("bt_adapter_passkey_reply: Authenticate Logitech Mouse: reply = Accept");
4724 passkey = g_strdup("0000"); /* Passkey - "0000" for mouse */
4725 ret = bt_adapter_passkey_reply(passkey, TRUE);
4726 if (ret < BT_ERROR_NONE)
4727 TC_PRT("failed with [0x%04x]", ret);
4729 TC_PRT("bt_adapter_passkey_reply: accept authentication result = %d", ret);
4733 case BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_REPLY_CANCEL:
4735 char *passkey = NULL;
4736 TC_PRT("bt_adapter_passkey_reply: cancel authentication reply");
4737 passkey = g_strdup("0000"); /* Passkey - "0000" */
4738 ret = bt_adapter_passkey_reply(passkey, FALSE);
4739 if (ret < BT_ERROR_NONE)
4740 TC_PRT("failed with [0x%04x]", ret);
4742 TC_PRT("bt_adapter_passkey_reply: Logitech Mouse cancel authentication result = %d", ret);
4746 case BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_CONFIRMATION_REPLY_ACCEPT:
4748 ret = bt_adapter_passkey_confirmation_reply(TRUE);
4749 if (ret < BT_ERROR_NONE)
4750 TC_PRT("failed with [0x%04x]", ret);
4752 TC_PRT("bt_adapter_passkey_confirmation_reply accept, result = %d", ret);
4755 case BT_UNIT_TEST_FUNCTION_ADAPTER_PASSKEY_CONFIRMATION_REPLY_REJECT:
4757 ret = bt_adapter_passkey_confirmation_reply(FALSE);
4758 if (ret < BT_ERROR_NONE)
4759 TC_PRT("failed with [0x%04x]", ret);
4761 TC_PRT("bt_adapter_passkey_confirmation_reply reject, result = %d", ret);
4764 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
4765 need_to_set_params = true;
4766 TC_PRT("Select the function again");
4776 case BT_UNIT_TEST_TABLE_ADAPTER_LE: {
4778 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_GET_STATE: {
4779 bt_adapter_le_state_e le_state = BT_ADAPTER_LE_DISABLED;
4781 ret = bt_adapter_le_get_state(&le_state);
4782 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4783 TC_PRT("le_state: %d", le_state);
4787 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE: {
4788 ret = bt_adapter_le_enable();
4789 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4793 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_DISABLE: {
4794 ret = bt_adapter_le_disable();
4795 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4799 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_MODE: {
4800 int mode = BT_ADAPTER_LE_SCAN_MODE_BALANCED;
4802 if (g_test_param.param_count > 0) {
4803 mode = atoi(g_test_param.params[0]);
4804 __bt_free_test_param(&g_test_param);
4807 ret = bt_adapter_le_set_scan_mode(mode);
4808 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4811 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_SCAN_TYPE: {
4812 int type = BT_ADAPTER_LE_PASSIVE_SCAN;
4814 if (g_test_param.param_count > 0) {
4815 type = atoi(g_test_param.params[0]);
4816 __bt_free_test_param(&g_test_param);
4819 ret = bt_adapter_le_set_scan_type(type);
4820 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4824 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_SCAN: {
4825 ret = bt_adapter_le_start_scan(
4826 __bt_adapter_le_scan_result_cb, NULL);
4827 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4831 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_SCAN: {
4832 ret = bt_adapter_le_stop_scan();
4833 TC_PRT("returns %s\n", __bt_get_error_message(ret));
4837 bt_adapter_le_device_scan_result_info_s *info;
4838 printf("LE scan result :\n");
4839 for (l = le_scan_list; l != NULL; l = g_slist_next(l)) {
4842 printf("[%d] %s, %d dBm", ++cnt, info->remote_address, info->rssi);
4844 printf(", %s", info->adv_data);
4846 g_free(info->remote_address);
4847 g_free(info->adv_data);
4851 g_slist_free(le_scan_list);
4852 le_scan_list = NULL;
4857 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_ADVERTISING_DATA: {
4858 int adv_data_type = 3; /* default all */
4859 int manufacturer_id = 117;
4860 char *manufacture = NULL;
4861 char manufacture_0[] = {0x0, 0x0, 0x0, 0x0};
4862 char manufacture_1[] = {0x01, 0x01, 0x01, 0x01};
4863 char manufacture_2[] = {0x02, 0x02, 0x02, 0x02};
4864 char manufacture_3[] = {0x03, 0x03, 0x03, 0x03};
4865 char service_data[] = {0x01, 0x02, 0x03};
4866 const char *time_svc_uuid_16 = "1805";
4867 const char *battery_svc_uuid_16 = "180f";
4868 const char *heart_rate_svc_uuid_16 = "180d";
4869 const char *lmmediate_alert_svc_uuid_16 = "1802";
4870 const char *ancs_uuid_128 = "7905F431-B5CE-4E99-A40F-4B1E122D00D0";
4871 const char *ams_uuid_128 = "89D3502B-0F36-433A-8EF4-C502AD55F8DC";
4872 int appearance = 192; /* 192 is generic watch */
4874 advertiser = advertiser_list[advertiser_index];
4876 if (advertiser == NULL) {
4877 ret = bt_adapter_le_create_advertiser(&advertiser);
4878 TC_PRT("created le advertiser(%d)", ret);
4879 advertiser_list[advertiser_index] = advertiser;
4881 ret = bt_adapter_le_clear_advertising_data(advertiser,
4882 BT_ADAPTER_LE_PACKET_ADVERTISING);
4883 if (ret != BT_ERROR_NONE)
4884 TC_PRT("clear advertising data [0x%04x]", ret);
4885 ret = bt_adapter_le_clear_advertising_data(advertiser,
4886 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE);
4887 if (ret != BT_ERROR_NONE)
4888 TC_PRT("clear scan response data [0x%04x]", ret);
4891 if (g_test_param.param_count > 0) {
4892 adv_data_type = atoi(g_test_param.params[0]);
4893 __bt_free_test_param(&g_test_param);
4896 switch (adv_data_type) {
4897 case 0: /* service uuid */
4898 ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
4899 BT_ADAPTER_LE_PACKET_ADVERTISING, time_svc_uuid_16);
4900 if (ret != BT_ERROR_NONE)
4901 TC_PRT("add service_uuid [0x%04x]", ret);
4903 ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
4904 BT_ADAPTER_LE_PACKET_ADVERTISING, battery_svc_uuid_16);
4905 if (ret != BT_ERROR_NONE)
4906 TC_PRT("add service_uuid [0x%04x]", ret);
4908 manufacture = manufacture_0;
4911 case 1: /* service solicitation */
4912 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4913 BT_ADAPTER_LE_PACKET_ADVERTISING, heart_rate_svc_uuid_16);
4914 if (ret != BT_ERROR_NONE)
4915 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
4917 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4918 BT_ADAPTER_LE_PACKET_ADVERTISING, lmmediate_alert_svc_uuid_16);
4919 if (ret != BT_ERROR_NONE)
4920 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
4922 manufacture = manufacture_1;
4925 case 2: /* appearance & tx power level */
4926 ret = bt_adapter_le_set_advertising_appearance(advertiser,
4927 BT_ADAPTER_LE_PACKET_ADVERTISING, appearance);
4928 if (ret != BT_ERROR_NONE)
4929 TC_PRT("add appearance data [0x%04x]", ret);
4931 ret = bt_adapter_le_set_advertising_tx_power_level(advertiser,
4932 BT_ADAPTER_LE_PACKET_ADVERTISING, true);
4933 if (ret != BT_ERROR_NONE)
4934 TC_PRT("add appearance data [0x%04x]", ret);
4935 manufacture = manufacture_2;
4939 ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
4940 BT_ADAPTER_LE_PACKET_ADVERTISING, time_svc_uuid_16);
4941 if (ret != BT_ERROR_NONE)
4942 TC_PRT("add service_uuid [0x%04x]", ret);
4944 ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
4945 BT_ADAPTER_LE_PACKET_ADVERTISING, battery_svc_uuid_16);
4946 if (ret != BT_ERROR_NONE)
4947 TC_PRT("add service_uuid [0x%04x]", ret);
4949 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4950 BT_ADAPTER_LE_PACKET_ADVERTISING, heart_rate_svc_uuid_16);
4951 if (ret != BT_ERROR_NONE)
4952 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
4954 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4955 BT_ADAPTER_LE_PACKET_ADVERTISING, lmmediate_alert_svc_uuid_16);
4956 if (ret != BT_ERROR_NONE)
4957 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
4959 ret = bt_adapter_le_set_advertising_appearance(advertiser,
4960 BT_ADAPTER_LE_PACKET_ADVERTISING, appearance);
4961 if (ret != BT_ERROR_NONE)
4962 TC_PRT("add appearance data [0x%04x]", ret);
4964 ret = bt_adapter_le_set_advertising_tx_power_level(advertiser,
4965 BT_ADAPTER_LE_PACKET_ADVERTISING, true);
4966 if (ret != BT_ERROR_NONE)
4967 TC_PRT("add tx_power_level [0x%04x]", ret);
4969 manufacture = manufacture_3;
4973 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4974 BT_ADAPTER_LE_PACKET_ADVERTISING, time_svc_uuid_16);
4975 if (ret != BT_ERROR_NONE)
4976 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
4978 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4979 BT_ADAPTER_LE_PACKET_ADVERTISING, ancs_uuid_128);
4980 if (ret != BT_ERROR_NONE)
4981 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
4983 ret = bt_adapter_le_set_advertising_device_name(advertiser,
4984 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
4985 if (ret != BT_ERROR_NONE)
4986 TC_PRT("set device name [0x%04x]", ret);
4991 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4992 BT_ADAPTER_LE_PACKET_ADVERTISING, time_svc_uuid_16);
4993 if (ret != BT_ERROR_NONE)
4994 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
4996 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
4997 BT_ADAPTER_LE_PACKET_ADVERTISING, ams_uuid_128);
4998 if (ret != BT_ERROR_NONE)
4999 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
5001 ret = bt_adapter_le_set_advertising_device_name(advertiser,
5002 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
5003 if (ret != BT_ERROR_NONE)
5004 TC_PRT("set device name [0x%04x]", ret);
5009 TC_PRT("No adv data");
5013 /* Default scsn response data */
5014 ret = bt_adapter_le_add_advertising_service_data(advertiser,
5015 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, time_svc_uuid_16,
5016 service_data, sizeof(service_data));
5017 if (ret != BT_ERROR_NONE)
5018 TC_PRT("add service_data [0x%04x]", ret);
5020 ret = bt_adapter_le_set_advertising_device_name(advertiser,
5021 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
5022 if (ret != BT_ERROR_NONE)
5023 TC_PRT("set device name [0x%04x]", ret);
5025 ret = bt_adapter_le_add_advertising_manufacturer_data(advertiser,
5026 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE,
5028 manufacture, sizeof(manufacture_0));
5029 if (ret != BT_ERROR_NONE)
5030 TC_PRT("add manufacturer data [0x%04x]", ret);
5034 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_HOGP_ADVERTISING_DATA: {
5035 const char *battery_svc_uuid_16 = "180f";
5036 const char *hid_svc_uuid_16 = "1812";
5037 const char *gatt_svc_uuid_16 = "1801";
5038 int appearance = 192; /* 192 is generic watch */
5040 advertiser = advertiser_list[advertiser_index];
5042 if (advertiser == NULL) {
5043 ret = bt_adapter_le_create_advertiser(&advertiser);
5044 TC_PRT("created le advertiser(%d)", ret);
5045 advertiser_list[advertiser_index] = advertiser;
5047 ret = bt_adapter_le_clear_advertising_data(advertiser,
5048 BT_ADAPTER_LE_PACKET_ADVERTISING);
5049 if (ret != BT_ERROR_NONE)
5050 TC_PRT("clear advertising data [0x%04x]", ret);
5051 ret = bt_adapter_le_clear_advertising_data(advertiser,
5052 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE);
5053 if (ret != BT_ERROR_NONE)
5054 TC_PRT("clear scan response data [0x%04x]", ret);
5057 ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
5058 BT_ADAPTER_LE_PACKET_ADVERTISING, battery_svc_uuid_16);
5059 if (ret != BT_ERROR_NONE)
5060 TC_PRT("add service_uuid [0x%04x]", ret);
5062 ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
5063 BT_ADAPTER_LE_PACKET_ADVERTISING, hid_svc_uuid_16);
5064 if (ret != BT_ERROR_NONE)
5065 TC_PRT("add service_uuid [0x%04x]", ret);
5067 ret = bt_adapter_le_add_advertising_service_uuid(advertiser,
5068 BT_ADAPTER_LE_PACKET_ADVERTISING, gatt_svc_uuid_16);
5069 if (ret != BT_ERROR_NONE)
5070 TC_PRT("add service_uuid [0x%04x]", ret);
5072 ret = bt_adapter_le_set_advertising_appearance(advertiser,
5073 BT_ADAPTER_LE_PACKET_ADVERTISING, appearance);
5074 if (ret != BT_ERROR_NONE)
5075 TC_PRT("add appearance data [0x%04x]", ret);
5077 ret = bt_adapter_le_set_advertising_tx_power_level(advertiser,
5078 BT_ADAPTER_LE_PACKET_ADVERTISING, true);
5079 if (ret != BT_ERROR_NONE)
5080 TC_PRT("add tx_power_level [0x%04x]", ret);
5082 /* Default scsn response data */
5083 ret = bt_adapter_le_set_advertising_device_name(advertiser,
5084 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
5085 if (ret != BT_ERROR_NONE)
5086 TC_PRT("set device name [0x%04x]", ret);
5090 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_MODE: {
5091 int mode = BT_ADAPTER_LE_ADVERTISING_MODE_BALANCED;
5093 advertiser = advertiser_list[advertiser_index];
5095 if (advertiser == NULL) {
5096 ret = bt_adapter_le_create_advertiser(&advertiser);
5097 TC_PRT("created le advertiser(%d)", ret);
5098 advertiser_list[advertiser_index] = advertiser;
5101 if (g_test_param.param_count > 0) {
5102 mode = atoi(g_test_param.params[0]);
5103 __bt_free_test_param(&g_test_param);
5106 ret = bt_adapter_le_set_advertising_mode(advertiser, mode);
5107 if (ret != BT_ERROR_NONE)
5108 TC_PRT("add scan response data [0x%04x]", ret);
5111 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_FILTER_POLICY: {
5112 int filter_policy = BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL;
5114 advertiser = advertiser_list[advertiser_index];
5116 if (advertiser == NULL) {
5117 ret = bt_adapter_le_create_advertiser(&advertiser);
5118 TC_PRT("created le advertiser(%d)", ret);
5119 advertiser_list[advertiser_index] = advertiser;
5122 if (g_test_param.param_count > 0) {
5123 filter_policy = atoi(g_test_param.params[0]);
5124 __bt_free_test_param(&g_test_param);
5127 ret = bt_adapter_le_set_advertising_filter_policy(advertiser, filter_policy);
5128 if (ret != BT_ERROR_NONE)
5129 TC_PRT("add scan response data [0x%04x]", ret);
5132 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CONNECTABLE: {
5133 int type = BT_ADAPTER_LE_ADVERTISING_CONNECTABLE;
5135 advertiser = advertiser_list[advertiser_index];
5137 if (advertiser == NULL) {
5138 ret = bt_adapter_le_create_advertiser(&advertiser);
5139 TC_PRT("created le advertiser(%d)", ret);
5140 advertiser_list[advertiser_index] = advertiser;
5143 if (g_test_param.param_count > 0) {
5144 type = atoi(g_test_param.params[0]);
5145 __bt_free_test_param(&g_test_param);
5148 ret = bt_adapter_le_set_advertising_connectable(advertiser, type);
5149 if (ret != BT_ERROR_NONE)
5150 TC_PRT("add scan response data [0x%04x]", ret);
5153 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_ADVERTISING_CUSTOM_TX_POWER: {
5154 int tx_power_level = 0;
5156 advertiser = advertiser_list[advertiser_index];
5158 if (advertiser == NULL) {
5159 ret = bt_adapter_le_create_advertiser(&advertiser);
5160 TC_PRT("created le advertiser(%d)", ret);
5161 advertiser_list[advertiser_index] = advertiser;
5164 if (g_test_param.param_count > 0) {
5165 tx_power_level = atoi(g_test_param.params[0]);
5166 __bt_free_test_param(&g_test_param);
5169 ret = bt_adapter_le_set_advertising_custom_tx_power_level(advertiser, tx_power_level);
5170 if (ret != BT_ERROR_NONE)
5171 TC_PRT("set Tx power level [0x%04x]", ret);
5174 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_START_ADVERTISING_NEW: {
5175 bt_adapter_le_advertising_state_changed_cb cb;
5177 if (advertiser_index == 0) cb = __bt_adapter_le_advertising_state_changed_cb;
5178 else if (advertiser_index == 1) cb = __bt_adapter_le_advertising_state_changed_cb_2;
5179 else cb = __bt_adapter_le_advertising_state_changed_cb_3;
5181 advertiser = advertiser_list[advertiser_index];
5183 advertiser_index %= 3;
5185 if (advertiser == NULL) {
5186 ret = bt_adapter_le_create_advertiser(&advertiser);
5187 TC_PRT("created le advertiser(%d)", ret);
5188 advertiser_list[advertiser_index] = advertiser;
5191 TC_PRT("advertiser: %p", advertiser);
5193 ret = bt_adapter_le_start_advertising_new(advertiser, cb, NULL);
5194 if (ret < BT_ERROR_NONE)
5195 TC_PRT("failed with [0x%04x]", ret);
5198 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_STOP_ADVERTISING: {
5201 if (g_test_param.param_count > 0) {
5202 slot_id = atoi(g_test_param.params[0]);
5203 __bt_free_test_param(&g_test_param);
5207 slot_id >= (sizeof(advertiser_list) / sizeof(advertiser_list[0]))) {
5208 TC_PRT("wrong slot_id: %d", slot_id);
5212 advertiser = advertiser_list[slot_id];
5214 ret = bt_adapter_le_stop_advertising(advertiser);
5215 if (ret < BT_ERROR_NONE)
5216 TC_PRT("failed with [0x%04x]", ret);
5219 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ADD_WHITE_LIST: {
5220 ret = bt_adapter_le_add_white_list(remote_addr,
5221 BT_DEVICE_PUBLIC_ADDRESS);
5222 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5226 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REMOVE_WHITE_LIST: {
5227 ret = bt_adapter_le_remove_white_list(remote_addr,
5228 BT_DEVICE_PUBLIC_ADDRESS);
5229 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5233 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_ENABLE_PRIVACY: {
5234 static bool enable_privacy = false;
5236 if (enable_privacy == false)
5237 enable_privacy = true;
5239 enable_privacy = false;
5241 if (g_test_param.param_count > 0) {
5242 if (g_strrstr(g_test_param.params[0], "true"))
5243 enable_privacy = true;
5245 enable_privacy = false;
5247 __bt_free_test_param(&g_test_param);
5250 ret = bt_adapter_le_enable_privacy(enable_privacy);
5251 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5255 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_GET_LOCAL_OOB_EXT_DATA: {
5256 char *local_address;
5257 bt_device_address_type_e address_type = 0;
5258 unsigned char *confirm;
5259 unsigned char *random;
5264 bt_adapter_le_get_local_oob_ext_data(&local_address, &address_type,
5266 &confirm_len, &random_len);
5268 printf("local address : %s\n", local_address);
5269 printf("address type : %d\n", address_type);
5270 printf("confirm : ");
5271 for (i=0; i<confirm_len; i++)
5272 printf("%02x", confirm[i]);
5273 printf("\nrandom : ");
5274 for (i=0; i<random_len; i++)
5275 printf("%02x", random[i]);
5278 g_free(local_address);
5284 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_SET_REMOTE_OOB_EXT_DATA: {
5285 char remote_addr[18];
5286 unsigned char *param_data[2];
5291 bt_device_address_type_e addr_type = BT_DEVICE_PUBLIC_ADDRESS;
5293 if (g_test_param.param_count != 3) {
5294 TC_PRT("Input parameter first!");
5298 g_strlcpy(remote_addr, g_test_param.params[0],
5299 sizeof(remote_addr));
5301 for (i = 0; i < 2; i++) {
5302 len[i] = strlen(g_test_param.params[i + 1]) / 2;
5303 param_data[i] = g_malloc0(len[i]);
5306 for (i = 0; i < 2; i++) {
5309 printf("param_data[%d] : ", i);
5310 for (j = 0; j < len[i]; j++) {
5311 g_strlcpy(tmp, g_test_param.params[i + 1] + 2 * j, sizeof(tmp));
5312 val = strtol(tmp, NULL, 16);
5313 param_data[i][j] = val;
5314 printf("%02x", param_data[i][j]);
5319 ret = bt_adapter_le_set_remote_oob_ext_data(remote_addr,
5321 param_data[0], param_data[1], len[0], len[1]);
5323 __bt_free_test_param(&g_test_param);
5325 for (i = 0; i < 2; i++)
5326 g_free(param_data[i]);
5328 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5332 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_ADDRESS: {
5333 bt_scan_filter_h scan_filter;
5335 ret = bt_adapter_le_scan_filter_create(&scan_filter);
5336 if (ret != BT_ERROR_NONE)
5337 TC_PRT("failed with [0x%04x]", ret);
5339 if (g_test_param.param_count > 0) {
5340 ret = bt_adapter_le_scan_filter_set_device_address(scan_filter, g_test_param.params[0]);
5341 __bt_free_test_param(&g_test_param);
5343 ret = bt_adapter_le_scan_filter_set_device_address(scan_filter, remote_addr);
5345 if (ret != BT_ERROR_NONE)
5346 TC_PRT("failed with [0x%04x]", ret);
5348 ret = bt_adapter_le_scan_filter_register(scan_filter);
5349 if (ret != BT_ERROR_NONE)
5350 TC_PRT("failed with [0x%04x]", ret);
5352 ret = bt_adapter_le_scan_filter_destroy(scan_filter);
5353 if (ret != BT_ERROR_NONE)
5354 TC_PRT("failed with [0x%04x]", ret);
5359 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_DEVICE_NAME: {
5360 bt_scan_filter_h scan_filter;
5362 ret = bt_adapter_le_scan_filter_create(&scan_filter);
5363 if (ret != BT_ERROR_NONE)
5364 TC_PRT("failed with [0x%04x]", ret);
5366 if (g_test_param.param_count > 0) {
5367 ret = bt_adapter_le_scan_filter_set_device_name(scan_filter, g_test_param.params[0]);
5368 __bt_free_test_param(&g_test_param);
5370 ret = bt_adapter_le_scan_filter_set_device_name(scan_filter, "Galaxy");
5372 if (ret != BT_ERROR_NONE)
5373 TC_PRT("failed with [0x%04x]", ret);
5375 ret = bt_adapter_le_scan_filter_register(scan_filter);
5376 if (ret != BT_ERROR_NONE)
5377 TC_PRT("failed with [0x%04x]", ret);
5379 ret = bt_adapter_le_scan_filter_destroy(scan_filter);
5380 if (ret != BT_ERROR_NONE)
5381 TC_PRT("failed with [0x%04x]", ret);
5387 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_UUID: {
5388 bt_scan_filter_h scan_filter;
5390 ret = bt_adapter_le_scan_filter_create(&scan_filter);
5391 if (ret != BT_ERROR_NONE)
5392 TC_PRT("failed with [0x%04x]", ret);
5394 ret = bt_adapter_le_scan_filter_set_service_uuid(scan_filter, "1805");
5395 if (ret != BT_ERROR_NONE)
5396 TC_PRT("failed with [0x%04x]", ret);
5398 ret = bt_adapter_le_scan_filter_register(scan_filter);
5399 if (ret != BT_ERROR_NONE)
5400 TC_PRT("failed with [0x%04x]", ret);
5402 ret = bt_adapter_le_scan_filter_destroy(scan_filter);
5403 if (ret != BT_ERROR_NONE)
5404 TC_PRT("failed with [0x%04x]", ret);
5409 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_SERVICE_SOLICITATION_UUID: {
5410 bt_scan_filter_h scan_filter;
5412 ret = bt_adapter_le_scan_filter_create(&scan_filter);
5413 if (ret != BT_ERROR_NONE)
5414 TC_PRT("failed with [0x%04x]", ret);
5416 ret = bt_adapter_le_scan_filter_set_service_solicitation_uuid(scan_filter, "1805");
5417 if (ret != BT_ERROR_NONE)
5418 TC_PRT("failed with [0x%04x]", ret);
5420 ret = bt_adapter_le_scan_filter_register(scan_filter);
5421 if (ret != BT_ERROR_NONE)
5422 TC_PRT("failed with [0x%04x]", ret);
5424 ret = bt_adapter_le_scan_filter_destroy(scan_filter);
5425 if (ret != BT_ERROR_NONE)
5426 TC_PRT("failed with [0x%04x]", ret);
5431 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_MANUFACTURER_DATA: {
5432 bt_scan_filter_h scan_filter = NULL;
5433 int manufacturer_id = 117; /* samsung */
5434 char param_data[] = {0x42, 0x04};
5435 /* Use "appearance & tx power level" of bt_adapter_le_add_XXX_advertising_data */
5437 ret = bt_adapter_le_scan_filter_create(&scan_filter);
5438 if (ret != BT_ERROR_NONE)
5439 TC_PRT("failed with [0x%04x]", ret);
5441 ret = bt_adapter_le_scan_filter_set_manufacturer_data(scan_filter,
5442 manufacturer_id, param_data, sizeof(param_data));
5443 if (ret != BT_ERROR_NONE)
5444 TC_PRT("failed with [0x%04x]", ret);
5446 ret = bt_adapter_le_scan_filter_register(scan_filter);
5447 if (ret != BT_ERROR_NONE)
5448 TC_PRT("failed with [0x%04x]", ret);
5450 ret = bt_adapter_le_scan_filter_destroy(scan_filter);
5451 if (ret != BT_ERROR_NONE)
5452 TC_PRT("failed with [0x%04x]", ret);
5457 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_REGISTER_SCAN_FILTER_IBEACON_DATA: {
5458 bt_scan_filter_h scan_filter;
5460 ret = bt_adapter_le_scan_filter_create(&scan_filter);
5461 if (ret != BT_ERROR_NONE)
5462 TC_PRT("failed with [0x%04x]", ret);
5464 ret = bt_adapter_le_scan_filter_set_type(scan_filter, BT_ADAPTER_LE_SCAN_FILTER_TYPE_IBEACON);
5465 if (ret != BT_ERROR_NONE)
5466 TC_PRT("failed with [0x%04x]", ret);
5468 ret = bt_adapter_le_scan_filter_register(scan_filter);
5469 if (ret != BT_ERROR_NONE)
5470 TC_PRT("failed with [0x%04x]", ret);
5475 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_UNREGISTER_ALL_SCAN_FILTERS: {
5476 ret = bt_adapter_le_scan_filter_unregister_all();
5477 if (ret != BT_ERROR_NONE)
5478 TC_PRT("failed with [0x%04x]", ret);
5483 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_WRITE_HOST_SUGGESTED_DEFAULT_DATA_LENGTH: {
5485 TC_PRT("Testing: Write Host suggested default LE Data length");
5487 unsigned int def_tx_octects = 30;
5488 unsigned int def_tx_time = 330;
5489 ret = bt_adapter_le_write_host_suggested_default_data_length(
5490 def_tx_octects, def_tx_time);
5491 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5495 case BT_UNIT_TEST_FUNCTION_ADAPTER_LE_READ_HOST_SUGGESTED_DEFAULT_DATA_LENGTH: {
5497 TC_PRT("Read host suggested default LE Data length");
5499 unsigned int def_tx_octets = 0;
5500 unsigned int def_tx_time = 0;
5501 ret = bt_adapter_le_read_suggested_default_data_length(
5502 &def_tx_octets, &def_tx_time);
5503 TC_PRT("host suggested default le data length values are %d %d",
5504 def_tx_octets, def_tx_time);
5507 case BT_UNIT_TEST_FUNCTION_LE_2M_PHY_SUPPORT: {
5509 TC_PRT("Check LE 2M PHY Feature support");
5510 bool is_2m_phy_supported = FALSE;
5512 ret = bt_adapter_le_is_2m_phy_supported(&is_2m_phy_supported);
5513 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5514 TC_PRT("LE 2M PHY Support [%s]", is_2m_phy_supported ? "YES" : "NO");
5517 case BT_UNIT_TEST_FUNCTION_LE_CODED_PHY_SUPPORT: {
5519 TC_PRT("Check LE CODED PHY Feature support");
5520 bool is_coded_phy_supported = FALSE;
5522 ret = bt_adapter_le_is_coded_phy_supported(&is_coded_phy_supported);
5523 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5524 TC_PRT("LE CODED PHY Support [%s]", is_coded_phy_supported ? "YES" : "NO");
5527 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
5528 need_to_set_params = true;
5529 TC_PRT("Select the function again");
5539 case BT_UNIT_TEST_TABLE_DEVICE: {
5541 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_A2DP_TRUE: {
5542 ret = bt_device_set_profile_trusted(remote_addr, BT_TRUSTED_PROFILE_A2DP, TRUE);
5543 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5546 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_A2DP_FALSE: {
5547 ret = bt_device_set_profile_trusted(remote_addr, BT_TRUSTED_PROFILE_A2DP, FALSE);
5548 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5551 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_HFP_TRUE: {
5552 ret = bt_device_set_profile_trusted(remote_addr, BT_TRUSTED_PROFILE_HFP_HF, TRUE);
5553 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5556 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_HFP_FALSE: {
5557 ret = bt_device_set_profile_trusted(remote_addr, BT_TRUSTED_PROFILE_HFP_HF, FALSE);
5558 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5561 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_PROFILE_TRUSTED_CB:
5562 ret = bt_device_set_trusted_profile_cb(
5563 __bt_device_profile_trusted_cb, NULL);
5564 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5566 case BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_PROFILE_TRUSTED_CB:
5567 ret = bt_device_unset_trusted_profile_cb();
5568 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5570 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_AUTHORIZATION_TRUE: {
5571 ret = bt_device_set_authorization(remote_addr, BT_DEVICE_AUTHORIZED);
5572 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5575 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_AUTHORIZATION_FALSE: {
5576 ret = bt_device_set_authorization(remote_addr, BT_DEVICE_UNAUTHORIZED);
5577 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5580 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_AUTHORIZATION_CHANGED_CB:
5581 ret = bt_device_set_authorization_changed_cb(
5582 __bt_device_authorization_changed_cb, NULL);
5583 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5586 case BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_AUTHORIZATION_CHANGED_CB:
5587 ret = bt_device_unset_authorization_changed_cb();
5588 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5591 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_CONNECTION_STAET_CHANGED_CB:
5592 ret = bt_device_set_connection_state_changed_cb(
5593 __bt_device_connection_state_changed_cb, NULL);
5594 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5597 case BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_CONNECTION_STAET_CHANGED_CB:
5598 ret = bt_device_unset_connection_state_changed_cb();
5599 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5602 case BT_UNIT_TEST_FUNCTION_DEVICE_FOREACH_CONNECTED_PROFILES: {
5603 ret = bt_device_foreach_connected_profiles(remote_addr,
5604 __bt_device_connected_profile, NULL);
5605 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5609 case BT_UNIT_TEST_FUNCTION_DEVICE_IS_PROFILE_CONNECTED: {
5610 bool connected_status = false;
5611 bt_profile_e profile = BT_PROFILE_HSP;
5613 if (g_test_param.param_count > 0) {
5614 profile = atoi(g_test_param.params[0]);
5616 __bt_free_test_param(&g_test_param);
5619 ret = bt_device_is_profile_connected(remote_addr,
5620 profile, &connected_status);
5621 if (ret < BT_ERROR_NONE)
5622 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5624 TC_PRT("Profile [%s]",
5625 connected_status ? "Connected" : "Disconnected");
5629 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_BOND_CREATED_CB: {
5630 ret = bt_device_set_bond_created_cb(
5631 __bt_device_bond_created_cb, NULL);
5632 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5636 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_BOND_DESTROYED_CB: {
5637 ret = bt_device_set_bond_destroyed_cb(
5638 __bt_device_bond_destroyed_cb, NULL);
5639 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5643 case BT_UNIT_TEST_FUNCTION_DEVICE_DISCONNECT: {
5644 ret = bt_device_disconnect(remote_addr);
5645 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5649 case BT_UNIT_TEST_FUNCTION_DEVICE_CREATE_BOND: {
5650 ret = bt_device_create_bond(remote_addr);
5651 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5655 case BT_UNIT_TEST_FUNCTION_DEVICE_CREATE_BOND_BY_TYPE: {
5656 bt_device_connection_link_type_e link_type = BT_DEVICE_CONNECTION_LINK_LE;
5658 if (g_test_param.param_count > 0) {
5659 link_type = atoi(g_test_param.params[0]);
5661 __bt_free_test_param(&g_test_param);
5664 ret = bt_device_create_bond_by_type(remote_addr,
5666 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5670 case BT_UNIT_TEST_FUNCTION_DEVICE_DESTROY_BOND: {
5671 ret = bt_device_destroy_bond(remote_addr);
5672 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5676 case BT_UNIT_TEST_FUNCTION_DEVICE_GET_CONNECTION_STATE: {
5677 bool bredr_connected = false;
5678 bool le_connected = false;
5680 ret = bt_device_get_connection_state(remote_addr,
5681 BT_DEVICE_CONNECTION_LINK_BREDR,
5683 if (ret < BT_ERROR_NONE)
5684 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5686 ret = bt_device_get_connection_state(remote_addr,
5687 BT_DEVICE_CONNECTION_LINK_LE,
5689 if (ret < BT_ERROR_NONE)
5690 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5692 TC_PRT("BR/EDR [%s], LE [%s]",
5693 bredr_connected ? "Connected" : "Disconnected",
5694 le_connected ? "Connected" : "Disconnected");
5698 case BT_UNIT_TEST_FUNCTION_DEVICE_REQUEST_ATT_MTU: {
5699 unsigned int mtu = 512; /* MAX MTU Value */
5701 if (g_test_param.param_count > 0) {
5702 mtu = atoi(g_test_param.params[0]);
5704 __bt_free_test_param(&g_test_param);
5707 ret = bt_device_request_att_mtu(remote_addr, mtu);
5708 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5711 case BT_UNIT_TEST_FUNCTION_DEVICE_GET_ATT_MTU: {
5712 unsigned int mtu = 0;
5713 ret = bt_device_get_att_mtu(remote_addr, &mtu);
5714 TC_PRT("returns %s, MTU %d\n", __bt_get_error_message(ret), mtu);
5717 case BT_UNIT_TEST_FUNCTION_DEVICE_SET_REQUEST_ATT_MTU_CHANGED_CB: {
5718 ret = bt_device_set_att_mtu_changed_cb(__bt_device_att_mtu_changed_cb, NULL);
5719 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5722 case BT_UNIT_TEST_FUNCTION_DEVICE_UNSET_REQUEST_ATT_MTU_CHANGED_CB: {
5723 ret = bt_device_unset_att_mtu_changed_cb();
5724 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5728 case BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION: {
5729 bt_le_conn_update_s param;
5731 if (g_test_param.param_count == 0)
5734 param.interval_min = atof(g_test_param.params[0]);
5735 param.interval_max = atof(g_test_param.params[1]);
5736 param.latency = atoi(g_test_param.params[2]);
5737 param.time_out = atoi(g_test_param.params[3]);
5739 __bt_free_test_param(&g_test_param);
5741 ret = bt_device_le_conn_update(remote_addr, ¶m);
5742 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5745 case BT_UNIT_TEST_FUNCTION_LE_DEVICE_SET_DATA_LENGTH: {
5747 TC_PRT("Set LE Data length paramters cmd");
5749 unsigned int tx_octets = 50;
5750 unsigned int tx_time = 500;
5752 if (g_test_param.param_count > 0) {
5753 tx_octets = atoi(g_test_param.params[0]);
5754 tx_time = atoi(g_test_param.params[1]);
5756 __bt_free_test_param(&g_test_param);
5759 TC_PRT("settting le data length values tx octects: %d tx time: %d",
5760 tx_octets, tx_time);
5761 ret = bt_device_le_set_data_length(remote_addr,
5762 tx_octets, tx_time);
5763 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5767 case BT_UNIT_TEST_FUNCTION_LE_DEVICE_DATA_LENGTH_CHANGED_CB: {
5769 TC_PRT("Setting LE Data length change callback");
5771 ret = bt_device_le_set_data_length_change_cb(
5772 __bt_le_set_data_length_changed_cb,
5774 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5778 case BT_UNIT_TEST_FUNCTION_DEVICE_UPDATE_LE_CONNECTION_MODE: {
5779 int mode = BT_DEVICE_LE_CONNECTION_MODE_BALANCED;
5781 if (g_test_param.param_count > 0) {
5782 mode = atoi(g_test_param.params[0]);
5783 __bt_free_test_param(&g_test_param);
5785 ret = bt_device_update_le_connection_mode(remote_addr, mode);
5786 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5789 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
5790 need_to_set_params = true;
5791 TC_PRT("Select the function again");
5800 case BT_UNIT_TEST_TABLE_SOCKET: {
5802 case BT_UNIT_TEST_FUNCTION_SOCKET_CREATE_RFCOMM: {
5805 ret = bt_socket_create_rfcomm(spp_uuid, &socket_fd);
5806 if (ret < BT_ERROR_NONE) {
5807 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5809 TC_PRT("socket_fd: %d", socket_fd);
5810 server_fd = socket_fd;
5814 case BT_UNIT_TEST_FUNCTION_SOCKET_DESTROY_RFCOMM:
5815 ret = bt_socket_destroy_rfcomm(server_fd);
5816 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5818 case BT_UNIT_TEST_FUNCTION_SOCKET_LISTEN_AND_ACCEPT_RFCOMM:
5819 ret = bt_socket_listen_and_accept_rfcomm(server_fd, 1);
5820 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5822 case BT_UNIT_TEST_FUNCTION_SOCKET_LISTEN:
5823 ret = bt_socket_listen(server_fd, 1);
5824 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5826 case BT_UNIT_TEST_FUNCTION_SOCKET_ACCEPT: {
5829 ret = bt_socket_accept(server_fd);
5830 if (ret < BT_ERROR_NONE) {
5831 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5833 TC_PRT("socket_fd: %d", socket_fd);
5834 client_fd = socket_fd;
5838 case BT_UNIT_TEST_FUNCTION_SOCKET_REJECT:
5839 ret = bt_socket_reject(server_fd);
5840 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5842 case BT_UNIT_TEST_FUNCTION_SOCKET_CONNECT_RFCOMM: {
5843 ret = bt_socket_connect_rfcomm(remote_addr, spp_uuid);
5844 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5847 case BT_UNIT_TEST_FUNCTION_SOCKET_DISCONNECT_RFCOMM:
5848 ret = bt_socket_disconnect_rfcomm(client_fd);
5849 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5851 case BT_UNIT_TEST_FUNCTION_SOCKET_SEND_DATA: {
5852 char data[] = "Sending test";
5854 if (g_test_param.param_count > 0) {
5855 ret = bt_socket_send_data(client_fd,
5856 g_test_param.params[0],
5857 strlen(g_test_param.params[0]) + 1);
5859 __bt_free_test_param(&g_test_param);
5861 ret = bt_socket_send_data(client_fd,
5862 data, sizeof(data));
5865 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5868 case BT_UNIT_TEST_FUNCTION_SOCKET_CREATE_RFCOMM_CUSTOM_UUID: {
5871 if (g_test_param.param_count > 0) {
5872 ret = bt_socket_create_rfcomm(g_test_param.params[0], &socket_fd);
5874 __bt_free_test_param(&g_test_param);
5876 ret = bt_socket_create_rfcomm(custom_uuid, &socket_fd);
5879 if (ret < BT_ERROR_NONE) {
5880 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5882 TC_PRT("socket_fd: %d", socket_fd);
5883 custom_server_fd = socket_fd;
5887 case BT_UNIT_TEST_FUNCTION_SOCKET_DESTROY_RFCOMM_CUSTOM_UUID:
5888 ret = bt_socket_destroy_rfcomm(custom_server_fd);
5889 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5891 case BT_UNIT_TEST_FUNCTION_SOCKET_LISTEN_AND_ACCEPT_RFCOMM_CUSTOM_UUID:
5892 ret = bt_socket_listen_and_accept_rfcomm(custom_server_fd, 1);
5893 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5895 case BT_UNIT_TEST_FUNCTION_SOCKET_CONNECT_RFCOMM_CUSTOM_UUID: {
5896 if (g_test_param.param_count > 0) {
5897 ret = bt_socket_connect_rfcomm(remote_addr, g_test_param.params[0]);
5899 __bt_free_test_param(&g_test_param);
5901 ret = bt_socket_connect_rfcomm(remote_addr, custom_uuid);
5904 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5907 case BT_UNIT_TEST_FUNCTION_SOCKET_DISCONNECT_RFCOMM_CUSTOM_UUID:
5908 ret = bt_socket_disconnect_rfcomm(custom_client_fd);
5909 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5911 case BT_UNIT_TEST_FUNCTION_SOCKET_SEND_DATA_CUSTOM_UUID: {
5912 char param_data[] = "Sending test";
5914 if (g_test_param.param_count > 0) {
5915 ret = bt_socket_send_data(custom_client_fd,
5916 g_test_param.params[0],
5917 strlen(g_test_param.params[0]) + 1);
5919 __bt_free_test_param(&g_test_param);
5921 ret = bt_socket_send_data(custom_client_fd,
5922 param_data, sizeof(param_data));
5925 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5928 case BT_UNIT_TEST_FUNCTION_SOCKET_SET_DATA_RECEIVED_CB:
5929 ret = bt_socket_set_data_received_cb(
5930 __bt_socket_data_received_cb, NULL);
5931 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5933 case BT_UNIT_TEST_FUNCTION_SOCKET_UNSET_DATA_RECEIVED_CB:
5934 ret = bt_socket_unset_data_received_cb();
5935 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5937 case BT_UNIT_TEST_FUNCTION_SOCKET_SET_CONNECTION_REQUESTED_CB:
5938 ret = bt_socket_set_connection_requested_cb(
5939 __bt_socket_connection_requested_cb, NULL);
5940 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5942 case BT_UNIT_TEST_FUNCTION_SOCKET_UNSET_CONNECTION_REQUESTED_CB:
5943 ret = bt_socket_unset_connection_requested_cb();
5944 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5946 case BT_UNIT_TEST_FUNCTION_SOCKET_SET_CONNECTION_STATE_CHANGED_CB:
5947 ret = bt_socket_set_connection_state_changed_cb(
5948 __bt_socket_connection_state_changed_cb, NULL);
5949 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5951 case BT_UNIT_TEST_FUNCTION_SOCKET_UNSET_CONNECTION_STATE_CHANGED_CB:
5952 ret = bt_socket_unset_connection_state_changed_cb();
5953 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5956 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
5957 need_to_set_params = true;
5958 TC_PRT("Select the function again");
5967 case BT_UNIT_TEST_TABLE_OPP: {
5969 case BT_UNIT_TEST_FUNCTION_OPP_CLIENT_INITIALIZE:
5970 ret = bt_opp_client_initialize();
5971 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5973 case BT_UNIT_TEST_FUNCTION_OPP_CLIENT_DEINITIALIZE:
5974 ret = bt_opp_client_deinitialize();
5975 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5977 case BT_UNIT_TEST_FUNCTION_OPP_CLIENT_ADD_FILE:
5978 ret = bt_opp_client_add_file("/opt/media/Images/image1.jpg");
5979 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5981 case BT_UNIT_TEST_FUNCTION_OPP_CLIENT_CLEAR_FILES:
5982 ret = bt_opp_client_clear_files();
5983 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5985 case BT_UNIT_TEST_FUNCTION_OPP_CLIENT_PUSH_FILES: {
5986 ret = bt_opp_client_push_files(remote_addr,
5987 __bt_opp_client_push_responded_cb,
5988 __bt_opp_client_push_progress_cb,
5989 __bt_opp_client_push_finished_cb,
5991 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5994 case BT_UNIT_TEST_FUNCTION_OPP_CLIENT_CANCEL_PUSH:
5995 ret = bt_opp_client_cancel_push();
5996 TC_PRT("returns %s\n", __bt_get_error_message(ret));
5999 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
6000 need_to_set_params = true;
6001 TC_PRT("Select the function again");
6010 case BT_UNIT_TEST_TABLE_AUDIO: {
6012 case BT_UNIT_TEST_FUNCTION_AUDIO_INITIALIZE:
6013 ret = bt_audio_initialize();
6014 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6016 case BT_UNIT_TEST_FUNCTION_AUDIO_DEINITIALIZE:
6017 ret = bt_audio_deinitialize();
6018 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6020 case BT_UNIT_TEST_FUNCTION_AUDIO_CONNECT: {
6021 bt_audio_profile_type_e audio_profile = BT_AUDIO_PROFILE_TYPE_ALL;
6023 if (g_test_param.param_count > 0) {
6024 audio_profile = atoi(g_test_param.params[0]);
6026 __bt_free_test_param(&g_test_param);
6029 ret = bt_audio_connect(remote_addr, audio_profile);
6030 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6033 case BT_UNIT_TEST_FUNCTION_AUDIO_DISCONNECT: {
6034 bt_audio_profile_type_e audio_profile = BT_AUDIO_PROFILE_TYPE_ALL;
6036 if (g_test_param.param_count > 0) {
6037 audio_profile = atoi(g_test_param.params[0]);
6039 __bt_free_test_param(&g_test_param);
6042 ret = bt_audio_disconnect(remote_addr, audio_profile);
6043 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6046 case BT_UNIT_TEST_FUNCTION_AUDIO_SINK_CONNECT: {
6047 bt_audio_profile_type_e audio_profile = BT_AUDIO_PROFILE_TYPE_A2DP_SINK;
6049 if (g_test_param.param_count > 0) {
6050 audio_profile = atoi(g_test_param.params[0]);
6052 __bt_free_test_param(&g_test_param);
6055 ret = bt_audio_connect(remote_addr, audio_profile);
6056 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6059 case BT_UNIT_TEST_FUNCTION_AUDIO_SINK_DISCONNECT: {
6060 bt_audio_profile_type_e audio_profile = BT_AUDIO_PROFILE_TYPE_A2DP_SINK;
6062 if (g_test_param.param_count > 0) {
6063 audio_profile = atoi(g_test_param.params[0]);
6065 __bt_free_test_param(&g_test_param);
6068 ret = bt_audio_disconnect(remote_addr, audio_profile);
6069 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6072 case BT_UNIT_TEST_FUNCTION_AUDIO_SET_CONNECTION_STATE_CHANGED_CB:
6073 ret = bt_audio_set_connection_state_changed_cb(
6074 __bt_audio_connection_state_changed_cb, NULL);
6075 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6077 case BT_UNIT_TEST_FUNCTION_AUDIO_UNSET_CONNECTION_STATE_CHANGED_CB:
6078 ret = bt_audio_unset_connection_state_changed_cb();
6079 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6081 case BT_UNIT_TEST_FUNCTION_AG_OPEN_SCO:
6082 ret = bt_ag_open_sco();
6083 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6085 case BT_UNIT_TEST_FUNCTION_AG_CLOSE_SCO:
6086 ret = bt_ag_close_sco();
6087 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6089 case BT_UNIT_TEST_FUNCTION_AG_IS_SCO_OPENED: {
6090 bool opened = false;
6091 ret = bt_ag_is_sco_opened(&opened);
6092 TC_PRT("opend[%s]", opened ? "YES" : "NO");
6093 if (ret < BT_ERROR_NONE)
6094 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6097 case BT_UNIT_TEST_FUNCTION_AG_SET_SCO_STATE_CHANGED_CB:
6098 ret = bt_ag_set_sco_state_changed_cb(
6099 __bt_ag_sco_state_changed_cb, NULL);
6100 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6102 case BT_UNIT_TEST_FUNCTION_AG_UNSET_SCO_STATE_CHANGED_CB:
6103 ret = bt_ag_unset_sco_state_changed_cb();
6104 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6106 case BT_UNIT_TEST_FUNCTION_AG_SET_SPEAKER_GAIN_CHANGED_CB:
6107 ret = bt_ag_set_speaker_gain_changed_cb(
6108 __bt_ag_speaker_gain_changed_cb, NULL);
6109 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6111 case BT_UNIT_TEST_FUNCTION_AG_UNSET_SPEAKER_GAIN_CHANGED_CB:
6112 ret = bt_ag_unset_speaker_gain_changed_cb();
6113 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6115 case BT_UNIT_TEST_FUNCTION_AG_SET_MICRO_GAIN_CHANGED_CB:
6116 ret = bt_ag_set_microphone_gain_changed_cb(
6117 __bt_ag_microphone_gain_changed_cb, NULL);
6118 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6120 case BT_UNIT_TEST_FUNCTION_AG_UNSET_MICRO_GAIN_CHANGED_CB:
6121 ret = bt_ag_unset_microphone_gain_changed_cb();
6122 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6124 case BT_UNIT_TEST_FUNCTION_AG_IS_CONNECTED: {
6125 bool connected = false;
6126 ret = bt_ag_is_connected(&connected);
6127 TC_PRT("returns %s\n",
6128 connected ? "Connected" : "Disconnected");
6131 case BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_IDLE: {
6132 unsigned int call_id = 1;
6134 ret = bt_ag_notify_call_event(
6135 BT_AG_CALL_EVENT_IDLE,
6137 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6140 case BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_ANSWERED: {
6141 unsigned int call_id = 1;
6142 bool sco_required = true;
6144 ret = bt_ag_notify_call_event(
6145 BT_AG_CALL_EVENT_ANSWERED,
6149 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6152 case BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_DIALING: {
6153 unsigned int call_id = 1;
6154 bool sco_required = TRUE;
6155 const char *phone_number;
6157 if (g_test_param.param_count > 0) {
6158 ret = bt_ag_notify_call_event(
6159 BT_AG_CALL_EVENT_DIALING,
6160 call_id, g_test_param.params[0]);
6162 __bt_free_test_param(&g_test_param);
6164 phone_number = g_strdup("01012345678");
6166 ret = bt_ag_notify_call_event(
6167 BT_AG_CALL_EVENT_DIALING,
6168 call_id, phone_number);
6173 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6176 case BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_ALERTING: {
6177 unsigned int call_id = 1;
6179 ret = bt_ag_notify_call_event(
6180 BT_AG_CALL_EVENT_ALERTING,
6182 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6185 case BT_UNIT_TEST_FUNCTION_AG_CALL_EVENT_INCOMING: {
6186 unsigned int call_id = 1;
6187 const char *phone_number;
6189 if (g_test_param.param_count > 0) {
6190 ret = bt_ag_notify_call_event(
6191 BT_AG_CALL_EVENT_INCOMING,
6192 call_id, g_test_param.params[0]);
6194 __bt_free_test_param(&g_test_param);
6196 phone_number = g_strdup("01012345678");
6198 ret = bt_ag_notify_call_event(
6199 BT_AG_CALL_EVENT_INCOMING,
6200 call_id, phone_number);
6203 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6206 case BT_UNIT_TEST_FUNCTION_CALL_LIST_CREATE:
6207 ret = bt_call_list_create(&call_list);
6208 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6210 case BT_UNIT_TEST_FUNCTION_CALL_LIST_DESTROY:
6211 ret = bt_call_list_destroy(call_list);
6213 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6215 case BT_UNIT_TEST_FUNCTION_CALL_LIST_RESET:
6216 ret = bt_call_list_reset(call_list);
6217 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6219 case BT_UNIT_TEST_FUNCTION_CALL_LIST_ADD: {
6220 const char *phone_number;
6222 if (g_test_param.param_count > 0) {
6223 ret = bt_call_list_add(call_list, 1,
6224 BT_AG_CALL_STATE_ACTIVE,
6225 g_test_param.params[0]);
6227 __bt_free_test_param(&g_test_param);
6229 phone_number = g_strdup("01012345678");
6231 ret = bt_call_list_add(call_list, 1,
6232 BT_AG_CALL_STATE_ACTIVE,
6236 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6239 case BT_UNIT_TEST_FUNCTION_AG_NOTIFY_CALL_LIST:
6240 ret = bt_ag_notify_call_list(call_list);
6241 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6243 case BT_UNIT_TEST_FUNCTION_AG_SET_CALL_HANDLING_EVENT_CB:
6244 ret = bt_ag_set_call_handling_event_cb(
6245 __bt_ag_set_call_handling_event_cb, NULL);
6246 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6248 case BT_UNIT_TEST_FUNCTION_AG_IS_NREC_ENABLED: {
6249 bool enabled = false;
6250 ret = bt_ag_is_nrec_enabled(&enabled);
6251 TC_PRT("opend[%s]", enabled ? "YES" : "NO");
6252 if (ret < BT_ERROR_NONE)
6253 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6256 case BT_UNIT_TEST_FUNCTION_AG_SWITCH_HEADSET: {
6257 if (g_test_param.param_count < 0) {
6258 TC_PRT("Input parameters first");
6262 ret = bt_ag_switch_headset(g_test_param.params[0]);
6263 __bt_free_test_param(&g_test_param);
6265 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6269 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
6270 need_to_set_params = true;
6271 TC_PRT("Select the function again");
6273 case BT_UNIT_TEST_FUNCTION_A2DP_SOURCE_ROLE: {
6274 bt_audio_role_e role = BT_A2DP_SOURCE;
6275 ret = bt_audio_select_role(role);
6276 TC_PRT("Asdp Source set change ret = %d", ret);
6279 case BT_UNIT_TEST_FUNCTION_A2DP_SINK_ROLE: {
6280 bt_audio_role_e role = BT_A2DP_SINK;
6281 ret = bt_audio_select_role(role);
6282 TC_PRT("Asdp Sink set change ret = %d", ret);
6285 case BT_UNIT_TEST_FUNCTION_AUDIO_SET_ABSOLUTE_VOLUME: {
6286 if (absolute_volume > 150)
6287 absolute_volume = 0;
6289 ret = bt_audio_set_absolute_volume(absolute_volume);
6290 TC_PRT("ret = %d", ret);
6292 if (ret == BT_ERROR_NONE)
6293 absolute_volume = absolute_volume + 50;
6297 case BT_UNIT_TEST_FUNCTION_AUDIO_GET_ABSOLUTE_VOLUME: {
6298 unsigned int volume = 0;
6299 ret = bt_audio_get_absolute_volume(&volume);
6300 TC_PRT("ret = %d, volume: %d", ret, volume);
6302 if (ret == BT_ERROR_NONE)
6303 absolute_volume = volume;
6307 case BT_UNIT_TEST_FUNCTION_AUDIO_IS_AVC_ACTIVATED: {
6308 bool activated = false;
6309 ret = bt_audio_is_avc_activated(&activated);
6310 TC_PRT("ret = %d, activated = %d", ret, activated);
6313 case BT_UNIT_TEST_FUNCTION_AUDIO_SET_ABSOLUTE_VOLUME_CHANGED_CB: {
6314 ret = bt_audio_set_absolute_volume_changed_cb(__bt_audio_absolute_volume_changed_cb, NULL);
6315 TC_PRT("ret = %d", ret);
6318 case BT_UNIT_TEST_FUNCTION_AUDIO_UNSET_ABSOLUTE_VOLUME_CHANGED_CB: {
6319 ret = bt_audio_unset_absolute_volume_changed_cb();
6320 TC_PRT("ret = %d", ret);
6323 case BT_UNIT_TEST_FUNCTION_AUDIO_SET_AVC_STATUE_CHANGED_CB: {
6324 ret = bt_audio_set_avc_status_changed_cb(__bt_audio_avc_status_changed_cb, NULL);
6325 TC_PRT("ret = %d", ret);
6328 case BT_UNIT_TEST_FUNCTION_AUDIO_UNSET_AVC_STATUE_CHANGED_CB: {
6329 ret = bt_audio_unset_avc_status_changed_cb();
6330 TC_PRT("ret = %d", ret);
6339 case BT_UNIT_TEST_TABLE_PAN: {
6341 case BT_UNIT_TEST_FUNCTION_NAP_ACTIVATE:
6342 ret = bt_nap_activate();
6343 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6346 case BT_UNIT_TEST_FUNCTION_NAP_DEACTIVATE:
6347 ret = bt_nap_deactivate();
6348 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6351 case BT_UNIT_TEST_FUNCTION_NAP_DISCONNECT_ALL:
6352 ret = bt_nap_disconnect_all();
6353 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6356 case BT_UNIT_TEST_FUNCTION_NAP_DISCONNECT: {
6357 ret = bt_nap_disconnect(remote_addr);
6358 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6362 case BT_UNIT_TEST_FUNCTION_PANU_SET_CONNECTION_STATE_CHANGED_CB: {
6363 ret = bt_panu_set_connection_state_changed_cb(
6364 panu_conn_state_changed, NULL);
6365 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6368 case BT_UNIT_TEST_FUNCTION_PANU_CONNECT: {
6369 ret = bt_panu_connect(remote_addr,
6370 BT_PANU_SERVICE_TYPE_NAP);
6371 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6375 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
6376 need_to_set_params = true;
6377 TC_PRT("Select the function again");
6386 case BT_UNIT_TEST_TABLE_GATT: {
6388 case BT_UNIT_TEST_FUNCTION_GATT_CONNECT: {
6389 bool auto_connect = false;
6391 if (g_test_param.param_count > 0) {
6392 if (g_strrstr(g_test_param.params[0], "true"))
6393 auto_connect = true;
6395 auto_connect = false;
6397 __bt_free_test_param(&g_test_param);
6400 ret = bt_gatt_connect(remote_addr, auto_connect);
6401 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6404 case BT_UNIT_TEST_FUNCTION_GATT_DISCONNECT: {
6405 ret = bt_gatt_disconnect(remote_addr);
6406 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6409 case BT_UNIT_TEST_FUNCTION_SET_GATT_CONNECTION_STATE_CHANGED_CB: {
6410 ret = bt_gatt_set_connection_state_changed_cb(
6411 __bt_gatt_connection_state_changed_cb, NULL);
6412 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6415 case BT_UNIT_TEST_FUNCTION_UNSET_GATT_CONNECTION_STATE_CHANGED_CB: {
6416 ret = bt_gatt_unset_connection_state_changed_cb();
6417 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6420 case BT_UNIT_TEST_FUNCTION_GATT_SET_WRITE_TYPE: {
6421 char *svc_uuid = NULL;
6422 char *chr_uuid = NULL;
6423 bt_gatt_h svc = NULL;
6424 bt_gatt_h chr = NULL;
6425 bt_gatt_write_type_e write_type;
6427 if (g_test_param.param_count < 3) {
6428 TC_PRT("Input parameters first");
6432 svc_uuid = g_test_param.params[0];
6433 chr_uuid = g_test_param.params[1];
6435 ret = bt_gatt_client_get_service(client, svc_uuid, &svc);
6436 if (ret != BT_ERROR_NONE) {
6437 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
6438 __bt_free_test_param(&g_test_param);
6442 ret = bt_gatt_service_get_characteristic(svc, chr_uuid, &chr);
6443 if (ret != BT_ERROR_NONE) {
6444 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
6445 __bt_free_test_param(&g_test_param);
6449 write_type = atoi(g_test_param.params[2]);
6450 ret = bt_gatt_characteristic_set_write_type(chr, write_type);
6451 if (ret != BT_ERROR_NONE)
6452 TC_PRT("bt_gatt_characteristic_set_write_type is failed : %d", ret);
6454 __bt_free_test_param(&g_test_param);
6457 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_CREATE: {
6459 bt_gatt_client_destroy(client);
6462 ret = bt_gatt_client_create(remote_addr, &client);
6463 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6466 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_DESTROY: {
6470 ret = bt_gatt_client_destroy(client);
6471 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6475 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_REMOTE_ADDRESS: {
6478 ret = bt_gatt_client_get_remote_address(client, &addr);
6479 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6482 TC_PRT("remote addr : %s\n", addr);
6487 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_PRINT_ALL: {
6489 ret = bt_gatt_client_foreach_services(client,
6490 __bt_gatt_client_foreach_svc_cb,
6491 (void *)(uintptr_t)test_id);
6493 ret = bt_gatt_client_foreach_services(client,
6494 __bt_gatt_client_foreach_svc_cb,
6497 if (ret != BT_ERROR_NONE)
6498 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6501 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_READ_VALUE: {
6502 char *svc_uuid = NULL;
6503 char *chr_uuid = NULL;
6504 char *desc_uuid = NULL;
6505 bt_gatt_h svc = NULL;
6506 bt_gatt_h chr = NULL;
6507 bt_gatt_h desc = NULL;
6509 if (g_test_param.param_count < 3) {
6510 TC_PRT("Input parameters first");
6514 svc_uuid = g_test_param.params[0];
6515 chr_uuid = g_test_param.params[1];
6517 ret = bt_gatt_client_get_service(client,
6519 if (ret != BT_ERROR_NONE) {
6520 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
6521 __bt_free_test_param(&g_test_param);
6525 ret = bt_gatt_service_get_characteristic(svc,
6527 if (ret != BT_ERROR_NONE) {
6528 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
6529 __bt_free_test_param(&g_test_param);
6533 if (strlen(g_test_param.params[2]) > 0) {
6534 desc_uuid = g_test_param.params[2];
6535 ret = bt_gatt_characteristic_get_descriptor(chr,
6537 if (ret != BT_ERROR_NONE) {
6538 TC_PRT("bt_gatt_characteristic_get_descriptor is failed : %d", ret);
6539 __bt_free_test_param(&g_test_param);
6542 ret = bt_gatt_client_read_value(desc,
6543 __bt_gatt_client_read_complete_cb, NULL);
6545 ret = bt_gatt_client_read_value(chr,
6546 __bt_gatt_client_read_complete_cb, NULL);
6549 if (ret != BT_ERROR_NONE)
6550 TC_PRT("bt_gatt_client_read_value is failed : %d", ret);
6552 __bt_free_test_param(&g_test_param);
6555 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_WRITE_VALUE: {
6556 char *svc_uuid = NULL;
6557 char *chr_uuid = NULL;
6558 char *desc_uuid = NULL;
6559 bt_gatt_h svc = NULL;
6560 bt_gatt_h chr = NULL;
6561 bt_gatt_h desc = NULL;
6563 if (g_test_param.param_count < 5) {
6564 TC_PRT("Input parameters first");
6568 svc_uuid = g_test_param.params[0];
6569 chr_uuid = g_test_param.params[1];
6571 ret = bt_gatt_client_get_service(client,
6573 if (ret != BT_ERROR_NONE) {
6574 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
6575 __bt_free_test_param(&g_test_param);
6579 ret = bt_gatt_service_get_characteristic(svc,
6581 if (ret != BT_ERROR_NONE) {
6582 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
6583 __bt_free_test_param(&g_test_param);
6587 if (strlen(g_test_param.params[2]) > 0) {
6588 desc_uuid = g_test_param.params[2];
6589 ret = bt_gatt_characteristic_get_descriptor(chr,
6591 if (ret != BT_ERROR_NONE) {
6592 TC_PRT("bt_gatt_characteristic_get_descriptor is failed : %d", ret);
6593 __bt_free_test_param(&g_test_param);
6597 ret = __bt_gatt_client_set_value(g_test_param.params[3],
6598 g_test_param.params[4], desc);
6599 if (ret != BT_ERROR_NONE) {
6600 TC_PRT("bt_gatt_set_value is failed : %d", ret);
6601 __bt_free_test_param(&g_test_param);
6605 ret = bt_gatt_client_write_value(desc,
6606 __bt_gatt_client_write_complete_cb, NULL);
6608 ret = __bt_gatt_client_set_value(g_test_param.params[3],
6609 g_test_param.params[4], chr);
6610 if (ret != BT_ERROR_NONE) {
6611 TC_PRT("bt_gatt_set_value is failed : %d", ret);
6612 __bt_free_test_param(&g_test_param);
6616 ret = bt_gatt_client_write_value(chr,
6617 __bt_gatt_client_write_complete_cb, NULL);
6620 if (ret != BT_ERROR_NONE)
6621 TC_PRT("bt_gatt_client_write_value is failed : %d", ret);
6623 __bt_free_test_param(&g_test_param);
6626 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_CHAR_VALUE_CHANGED_CB: {
6627 char *svc_uuid = NULL;
6628 char *chr_uuid = NULL;
6629 bt_gatt_h svc = NULL;
6630 bt_gatt_h chr = NULL;
6632 if (g_test_param.param_count < 2) {
6633 TC_PRT("Input parameters first");
6637 svc_uuid = g_test_param.params[0];
6638 chr_uuid = g_test_param.params[1];
6640 ret = bt_gatt_client_get_service(client,
6642 if (ret != BT_ERROR_NONE) {
6643 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
6644 __bt_free_test_param(&g_test_param);
6648 ret = bt_gatt_service_get_characteristic(svc,
6650 if (ret != BT_ERROR_NONE) {
6651 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
6652 __bt_free_test_param(&g_test_param);
6656 ret = bt_gatt_client_set_characteristic_value_changed_cb(chr,
6657 __bt_gatt_client_value_changed_cb, NULL);
6658 if (ret != BT_ERROR_NONE)
6659 TC_PRT("bt_gatt_client_set_characteristic_value_changed_cb is failed : %d", ret);
6661 __bt_free_test_param(&g_test_param);
6664 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_CHAR_VALUE_CHANGED_CB: {
6665 char *svc_uuid = NULL;
6666 char *chr_uuid = NULL;
6667 bt_gatt_h svc = NULL;
6668 bt_gatt_h chr = NULL;
6670 if (g_test_param.param_count < 2) {
6671 TC_PRT("Input parameters first");
6675 svc_uuid = g_test_param.params[0];
6676 chr_uuid = g_test_param.params[1];
6678 ret = bt_gatt_client_get_service(client,
6680 if (ret != BT_ERROR_NONE) {
6681 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
6682 __bt_free_test_param(&g_test_param);
6686 ret = bt_gatt_service_get_characteristic(svc,
6688 if (ret != BT_ERROR_NONE) {
6689 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
6690 __bt_free_test_param(&g_test_param);
6694 ret = bt_gatt_client_unset_characteristic_value_changed_cb(chr);
6695 if (ret != BT_ERROR_NONE)
6696 TC_PRT("bt_gatt_client_unset_characteristic_value_changed_cb is failed : %d", ret);
6698 __bt_free_test_param(&g_test_param);
6701 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_FOREACH_SERVICES: {
6703 ret = bt_gatt_client_foreach_services(client,
6704 __bt_gatt_client_foreach_svc_cb, (void *)(uintptr_t)test_id);
6706 ret = bt_gatt_client_foreach_services(client,
6707 __bt_gatt_client_foreach_svc_cb, (void *)(uintptr_t)test_id);
6709 if (ret != BT_ERROR_NONE)
6710 TC_PRT("bt_gatt_client_foreach_services_by_uuid is failed");
6713 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_REQUEST_ATT_MTU: {
6714 unsigned int mtu = 512; /* MAX MTU Value */
6716 if (g_test_param.param_count > 0) {
6717 mtu = atoi(g_test_param.params[0]);
6719 __bt_free_test_param(&g_test_param);
6722 ret = bt_gatt_client_request_att_mtu_change(client, mtu);
6723 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6726 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_GET_ATT_MTU: {
6727 unsigned int mtu = 0;
6728 ret = bt_gatt_client_get_att_mtu(client, &mtu);
6729 TC_PRT("returns %s, MTU %d\n", __bt_get_error_message(ret), mtu);
6732 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_SERVICE_CHANGED_CB: {
6733 ret = bt_gatt_client_set_service_changed_cb(client,
6734 __bt_gatt_client_service_changed_cb, NULL);
6735 if (ret != BT_ERROR_NONE)
6736 TC_PRT("bt_gatt_client_set_service_changed_cb is failed");
6739 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_SERVICE_CHANGED_CB: {
6740 ret = bt_gatt_client_unset_service_changed_cb(client);
6741 if (ret != BT_ERROR_NONE)
6742 TC_PRT("bt_gatt_client_unset_service_changed_cb is failed");
6745 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_SET_ATT_MTU_CHANGED_CB: {
6746 ret = bt_gatt_client_set_att_mtu_changed_cb(client, __bt_gatt_client_att_mtu_changed_cb, NULL);
6747 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6750 case BT_UNIT_TEST_FUNCTION_GATT_CLIENT_UNSET_ATT_MTU_CHANGED_CB: {
6751 ret = bt_gatt_client_unset_att_mtu_changed_cb(client);
6752 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6755 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_INITIALIZE: {
6757 ret = bt_gatt_server_initialize();
6759 TC_PRT("returns %s \n", __bt_get_error_message(ret));
6762 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_DEINITIALIZE: {
6764 ret = bt_gatt_server_deinitialize();
6768 TC_PRT("returns %s \n", __bt_get_error_message(ret));
6771 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_UNREGISTER_ALL_SERVICES: {
6772 ret = bt_gatt_server_unregister_all_services(server);
6773 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6777 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_SET_MTU_CHANGED_CB: {
6778 ret = bt_gatt_server_set_att_mtu_changed_cb(server, __bt_gatt_server_att_mtu_changed_cb, NULL);
6779 TC_PRT("returns %s\n", __bt_get_error_message(ret));
6782 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_BATTERY_SVC: {
6783 bt_gatt_h service = NULL;
6784 bt_gatt_h characteristic = NULL;
6785 bt_gatt_h descriptor = NULL;
6786 char *service_uuid = "180f"; /* Battery Service */
6787 char *char_uuid = "2a19"; /* Battery Level */
6788 char *desc_uuid = "2902"; /* CCCD */
6789 char char_value[1] = {80}; /* 80% */
6790 char desc_value[2] = {0, 0}; /* Notification & Indication */
6791 int permissions = BT_GATT_PERMISSION_READ;
6792 int properties = BT_GATT_PROPERTY_READ | BT_GATT_PROPERTY_NOTIFY;
6794 ret = bt_gatt_server_initialize();
6795 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
6797 if (server == NULL) {
6798 ret = bt_gatt_server_create(&server);
6799 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
6802 ret = bt_gatt_service_create(service_uuid, BT_GATT_SERVICE_TYPE_PRIMARY, &service);
6803 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
6805 ret = bt_gatt_characteristic_create(char_uuid, permissions, properties,
6806 char_value, sizeof(char_value), &characteristic);
6807 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
6809 bt_gatt_server_set_read_value_requested_cb(characteristic,
6810 __bt_gatt_server_read_value_requested_cb, NULL);
6811 bt_gatt_server_set_characteristic_notification_state_change_cb(characteristic,
6812 __bt_gatt_server_notification_state_change_cb, NULL);
6813 ret = bt_gatt_service_add_characteristic(service, characteristic);
6814 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
6816 permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
6817 ret = bt_gatt_descriptor_create(desc_uuid, permissions,
6818 desc_value, sizeof(desc_value), &descriptor);
6819 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
6821 ret = bt_gatt_characteristic_add_descriptor(characteristic, descriptor);
6822 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
6824 ret = bt_gatt_server_register_service(server, service);
6825 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
6827 battery_h.svc = service;
6828 battery_h.chr = characteristic;
6829 battery_h.desc = descriptor;
6833 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_BATTERY_LEVEL: {
6834 char char_value[1] = {1 + (rand()%100)};
6836 TC_PRT("bt gatt server is not created");
6839 ret = bt_gatt_set_value(battery_h.chr, char_value, 1);
6840 TC_PRT("Value[%d], returns %s\n", char_value[0], __bt_get_error_message(ret));
6842 /* notify only client remote_addr */
6843 ret = bt_gatt_server_notify_characteristic_changed_value(battery_h.chr,
6844 __bt_gatt_server_notification_sent_cb,
6846 TC_PRT("bt_gatt_server_notify : %s\n", __bt_get_error_message(ret));
6850 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_HEART_RATE_SVC: {
6851 bt_gatt_h service = NULL;
6852 bt_gatt_h characteristic = NULL;
6853 bt_gatt_h descriptor = NULL;
6854 char *service_uuid = "180d"; /* Heart Rate Service */
6855 char *char_uuid = "2a37"; /* Heart Rate Measurement */
6856 char *desc_uuid = "2902"; /* CCCD */
6857 char char_value_1[3] = {1, 0x38, 0}; /* Flag + Measurement value (56) */
6858 char desc_value[2] = {1, 0}; /* Notification enabled */
6859 int permissions = BT_GATT_PERMISSION_READ;
6860 int properties = BT_GATT_PROPERTY_NOTIFY | BT_GATT_PROPERTY_READ; /* READ property added for testing */
6862 ret = bt_gatt_server_initialize();
6863 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
6865 if (server == NULL) {
6866 ret = bt_gatt_server_create(&server);
6867 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
6870 ret = bt_gatt_service_create(service_uuid, BT_GATT_SERVICE_TYPE_PRIMARY, &service);
6871 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
6873 ret = bt_gatt_characteristic_create(char_uuid, permissions, properties,
6874 char_value_1, sizeof(char_value_1), &characteristic);
6875 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
6877 heart_rate_h.chr = characteristic;
6879 bt_gatt_server_set_read_value_requested_cb(characteristic,
6880 __bt_gatt_server_read_value_requested_cb, NULL);
6881 bt_gatt_server_set_characteristic_notification_state_change_cb(characteristic,
6882 __bt_gatt_server_notification_state_change_cb, NULL);
6883 ret = bt_gatt_service_add_characteristic(service, characteristic);
6884 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
6886 permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
6887 ret = bt_gatt_descriptor_create(desc_uuid, permissions,
6888 desc_value, sizeof(desc_value), &descriptor);
6889 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
6891 ret = bt_gatt_characteristic_add_descriptor(characteristic, descriptor);
6892 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
6894 char_uuid = "2a38"; /* Body Sensor Location */
6895 permissions = BT_GATT_PERMISSION_READ;
6896 properties = BT_GATT_PROPERTY_READ;
6897 char char_value_2 = 4; /* Hand */
6898 ret = bt_gatt_characteristic_create(char_uuid, permissions, properties,
6899 &char_value_2, sizeof(char_value_2), &characteristic);
6900 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
6902 bt_gatt_server_set_read_value_requested_cb(characteristic,
6903 __bt_gatt_server_read_value_requested_cb, NULL);
6904 ret = bt_gatt_service_add_characteristic(service, characteristic);
6905 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
6907 ret = bt_gatt_server_register_service(server, service);
6908 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
6910 heart_rate_h.svc = service;
6911 heart_rate_h.desc = descriptor;
6915 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_NOTIFY_HEART_RATE_MEASUREMENT: {
6916 int char_value = 60 + (rand()%60);
6918 TC_PRT("bt gatt server is not created");
6921 ret = bt_gatt_set_int_value(heart_rate_h.chr,
6922 BT_DATA_TYPE_UINT16, char_value, 1);
6923 TC_PRT("bt_gatt_set_value(value : %d) : %s\n",
6924 char_value, __bt_get_error_message(ret));
6926 /* Notify all client devices */
6927 ret = bt_gatt_server_notify_characteristic_changed_value(heart_rate_h.chr,
6928 __bt_gatt_server_notification_sent_cb,
6930 TC_PRT("bt_gatt_server_notify : %s\n", __bt_get_error_message(ret));
6934 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_THERMOMETER_SVC: {
6935 bt_gatt_h service = NULL;
6936 bt_gatt_h characteristic = NULL;
6937 bt_gatt_h descriptor = NULL;
6938 char *service_uuid = "1809"; /* Health Thermometer Service */
6939 char *char_uuid = "2a1c"; /* Temperature Measurement */
6940 char *desc_uuid = "2902"; /* CCCD */
6941 char char_value[5] = {0, 0x85, 0xff, 0xff, 0xfe}; /* Flag + Temperature Measurement Value (Celsius, -1.23) */
6942 char desc_value[2] = {2, 0}; /* Indication enabled */
6943 int permissions = BT_GATT_PERMISSION_READ;
6944 int properties = BT_GATT_PROPERTY_INDICATE | BT_GATT_PROPERTY_READ; /* READ property added for testing */
6946 ret = bt_gatt_server_initialize();
6947 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
6949 if (server == NULL) {
6950 ret = bt_gatt_server_create(&server);
6951 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
6954 ret = bt_gatt_service_create(service_uuid,
6955 BT_GATT_SERVICE_TYPE_PRIMARY, &service);
6956 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
6958 ret = bt_gatt_characteristic_create(char_uuid, permissions, properties,
6959 char_value, sizeof(char_value), &characteristic);
6960 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
6962 bt_gatt_server_set_read_value_requested_cb(characteristic,
6963 __bt_gatt_server_read_value_requested_cb, NULL);
6964 bt_gatt_server_set_characteristic_notification_state_change_cb(characteristic,
6965 __bt_gatt_server_notification_state_change_cb, NULL);
6966 ret = bt_gatt_service_add_characteristic(service, characteristic);
6967 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
6969 permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
6970 ret = bt_gatt_descriptor_create(desc_uuid, permissions,
6971 desc_value, sizeof(desc_value), &descriptor);
6972 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
6974 ret = bt_gatt_characteristic_add_descriptor(characteristic, descriptor);
6975 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
6977 ret = bt_gatt_server_register_service(server, service);
6978 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
6980 thermometer_h.chr = characteristic;
6981 thermometer_h.svc = service;
6982 thermometer_h.desc = descriptor;
6986 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_THERMOMETER_MEASUREMENT: {
6988 TC_PRT("bt gatt server is not created");
6991 ret = bt_gatt_set_float_value(thermometer_h.chr, BT_DATA_TYPE_FLOAT, 123, -2, 1);
6992 TC_PRT("bt_gatt_set_value(value : 1.23) : %s\n", __bt_get_error_message(ret));
6994 /* notify only client remote_addr */
6995 ret = bt_gatt_server_notify_characteristic_changed_value(thermometer_h.chr,
6996 __bt_gatt_server_notification_sent_cb, remote_addr, NULL);
6997 TC_PRT("bt_gatt_server_notify : %s\n", __bt_get_error_message(ret));
7001 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_DEVICE_INFORMATION_SVC: {
7002 bt_gatt_h service = NULL;
7003 bt_gatt_h characteristic = NULL;
7004 char *service_uuid = "180a"; /* Device Infromation Service */
7005 char *char_uuid = NULL;
7007 int permissions = BT_GATT_PERMISSION_READ;
7008 int properties = BT_GATT_PROPERTY_READ;
7010 ret = bt_gatt_server_initialize();
7011 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
7013 if (server == NULL) {
7014 ret = bt_gatt_server_create(&server);
7015 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
7018 ret = bt_gatt_service_create(service_uuid,
7019 BT_GATT_SERVICE_TYPE_PRIMARY, &service);
7020 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
7022 char_uuid = "2a29"; /* Manufacturer Name String */
7023 char_value = g_strdup("Samsung");
7024 ret = bt_gatt_characteristic_create(char_uuid, permissions,
7025 properties, char_value,
7026 strlen(char_value), &characteristic);
7027 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7030 bt_gatt_server_set_read_value_requested_cb(characteristic,
7031 __bt_gatt_server_read_value_requested_cb,
7033 ret = bt_gatt_service_add_characteristic(service, characteristic);
7034 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7036 char_uuid = "2a24"; /* Model Number String */
7037 char_value = g_strdup("TIZEN_HR 0408");
7038 ret = bt_gatt_characteristic_create(char_uuid, permissions,
7039 properties, char_value,
7040 strlen(char_value), &characteristic);
7041 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7044 bt_gatt_server_set_read_value_requested_cb(characteristic,
7045 __bt_gatt_server_read_value_requested_cb,
7047 ret = bt_gatt_service_add_characteristic(service, characteristic);
7048 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7050 char_uuid = "2a28"; /* S/W Revision String */
7051 char_value = g_strdup("NC2");
7052 ret = bt_gatt_characteristic_create(char_uuid, permissions, properties,
7053 char_value, strlen(char_value), &characteristic);
7054 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7057 bt_gatt_server_set_read_value_requested_cb(characteristic,
7058 __bt_gatt_server_read_value_requested_cb,
7060 ret = bt_gatt_service_add_characteristic(service, characteristic);
7061 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7063 char_uuid = "2a26"; /* Firmware Revision Name String */
7064 char_value = g_strdup("Firmware Ver 04");
7065 ret = bt_gatt_characteristic_create(char_uuid, permissions,
7066 properties, char_value,
7067 strlen(char_value), &characteristic);
7068 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7071 bt_gatt_server_set_read_value_requested_cb(characteristic,
7072 __bt_gatt_server_read_value_requested_cb,
7074 ret = bt_gatt_service_add_characteristic(service, characteristic);
7075 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7077 ret = bt_gatt_server_register_service(server, service);
7078 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
7081 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_LINK_LOSS_SVC: {
7082 bt_gatt_h service = NULL;
7083 bt_gatt_h characteristic = NULL;
7084 char *service_uuid = "1803"; /* Link Loss Service */
7085 char *char_uuid = "2a06"; /* Alert Level */
7086 char char_value[1] = {2}; /* high alert */
7087 int value_length = 1;
7088 int permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
7089 int properties = BT_GATT_PROPERTY_READ | BT_GATT_PROPERTY_WRITE;
7091 ret = bt_gatt_server_initialize();
7092 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
7094 if (server == NULL) {
7095 ret = bt_gatt_server_create(&server);
7096 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
7099 ret = bt_gatt_service_create(service_uuid,
7100 BT_GATT_SERVICE_TYPE_PRIMARY,
7102 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
7104 ret = bt_gatt_characteristic_create(char_uuid, permissions,
7105 properties, char_value,
7106 value_length, &characteristic);
7107 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7109 ret = bt_gatt_server_set_write_value_requested_cb(characteristic,
7110 __bt_gatt_server_write_value_requested_cb,
7112 TC_PRT("bt_gatt_server_set_write_value_requested_cb : %s\n", __bt_get_error_message(ret));
7114 bt_gatt_server_set_read_value_requested_cb(characteristic,
7115 __bt_gatt_server_read_value_requested_cb, NULL);
7116 ret = bt_gatt_service_add_characteristic(service, characteristic);
7117 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7119 ret = bt_gatt_server_register_service(server, service);
7120 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
7124 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_HOGP_SVC: {
7125 bt_gatt_h service1 = NULL;
7126 bt_gatt_h service2 = NULL;
7127 bt_gatt_h service3 = NULL;
7128 bt_gatt_h characteristic1_1 = NULL;
7129 bt_gatt_h characteristic2_1 = NULL;
7130 bt_gatt_h characteristic2_2 = NULL;
7131 bt_gatt_h characteristic2_3 = NULL;
7132 bt_gatt_h characteristic2_4 = NULL;
7133 bt_gatt_h characteristic2_5 = NULL;
7134 bt_gatt_h characteristic2_6 = NULL;
7135 bt_gatt_h characteristic2_7 = NULL;
7136 bt_gatt_h descriptor1_1 = NULL;
7137 bt_gatt_h descriptor2_3 = NULL;
7138 bt_gatt_h descriptor2_4_1 = NULL;
7139 bt_gatt_h descriptor2_4_2 = NULL;
7140 bt_gatt_h descriptor2_5_1 = NULL;
7141 bt_gatt_h descriptor2_5_2 = NULL;
7142 char *service_uuid1 = "180f"; /* Battery Service */
7143 char *service_uuid2 = "1812"; /* HID Service */
7144 char *service_uuid3 = "1801"; /* Generic Attribute Service */
7145 char *char_uuid1 = "2a19"; /* Battery Level */
7146 char *char_uuid2_1 = "2a4a"; /* HID information */
7147 char *char_uuid2_2 = "2a4b";
7148 char *char_uuid2_3 = "2a33";
7149 char *char_uuid2_4 = "2a4d";
7150 char *char_uuid2_5 = "2a4d";
7151 char *char_uuid2_6 = "2a4c";
7152 char *char_uuid2_7 = "2a4e";
7153 char *desc_uuid1_1 = "2902"; /* Client Characteristic Configuration */
7154 char *desc_uuid2_3 = "2902"; /* Client Characteristic Configuration */
7155 char *desc_uuid2_4_1 = "2902"; /* Client Characteristic Configuration */
7156 char *desc_uuid2_4_2 = "2908"; /* Report Reference */
7157 char *desc_uuid2_5_1 = "2908"; /* Report Reference */
7158 char *desc_uuid2_5_2 = "2901"; /* Characteristic User Description */
7159 int permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
7160 int properties = BT_GATT_PROPERTY_READ | BT_GATT_PROPERTY_WRITE;
7162 char char_value[1] = {80}; /* 80% */
7163 char char_value_unknown[4] = {10, 20, 30, 40};
7164 char desc_value_configration[2] = {0, 0}; /* Notification & Indication */
7166 ret = bt_gatt_server_initialize();
7167 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
7169 if (server == NULL) {
7170 ret = bt_gatt_server_create(&server);
7171 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
7174 /* Battery Service */
7175 ret = bt_gatt_service_create(service_uuid1,
7176 BT_GATT_SERVICE_TYPE_PRIMARY,
7178 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
7180 ret = bt_gatt_characteristic_create(char_uuid1, permissions,
7181 properties, char_value,
7182 1, &characteristic1_1);
7183 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7185 ret = bt_gatt_service_add_characteristic(service1, characteristic1_1);
7186 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7188 ret = bt_gatt_descriptor_create(desc_uuid1_1, permissions,
7189 desc_value_configration, 2, &descriptor1_1);
7190 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
7192 ret = bt_gatt_characteristic_add_descriptor(characteristic1_1, descriptor1_1);
7193 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
7195 ret = bt_gatt_server_register_service(server, service1);
7196 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
7199 ret = bt_gatt_service_create(service_uuid2,
7200 BT_GATT_SERVICE_TYPE_PRIMARY,
7202 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
7204 ret = bt_gatt_characteristic_create(char_uuid2_1, permissions,
7205 properties, char_value_unknown,
7206 4, &characteristic2_1);
7207 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7209 ret = bt_gatt_service_add_characteristic(service2, characteristic2_1);
7210 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7212 ret = bt_gatt_characteristic_create(char_uuid2_2, permissions,
7213 properties, char_value_unknown,
7214 4, &characteristic2_2);
7215 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7217 ret = bt_gatt_service_add_characteristic(service2, characteristic2_2);
7218 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7220 ret = bt_gatt_characteristic_create(char_uuid2_3, permissions,
7221 properties, char_value_unknown,
7222 4, &characteristic2_3);
7223 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7225 ret = bt_gatt_service_add_characteristic(service2, characteristic2_3);
7226 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7228 ret = bt_gatt_descriptor_create(desc_uuid2_3, permissions,
7229 desc_value_configration, 2, &descriptor2_3);
7230 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
7232 ret = bt_gatt_characteristic_add_descriptor(characteristic2_3, descriptor2_3);
7233 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
7235 ret = bt_gatt_characteristic_create(char_uuid2_4, permissions,
7236 properties, char_value_unknown,
7237 4, &characteristic2_4);
7238 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7240 ret = bt_gatt_service_add_characteristic(service2, characteristic2_4);
7241 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7243 ret = bt_gatt_descriptor_create(desc_uuid2_4_1, permissions,
7244 desc_value_configration, 2, &descriptor2_4_1);
7245 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
7247 ret = bt_gatt_characteristic_add_descriptor(characteristic2_4, descriptor2_4_1);
7248 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
7250 ret = bt_gatt_descriptor_create(desc_uuid2_4_2, permissions,
7251 desc_value_configration, 2, &descriptor2_4_2);
7252 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
7254 ret = bt_gatt_characteristic_add_descriptor(characteristic2_4, descriptor2_4_2);
7255 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
7257 ret = bt_gatt_characteristic_create(char_uuid2_5, permissions,
7258 properties, char_value_unknown,
7259 4, &characteristic2_5);
7260 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7262 ret = bt_gatt_service_add_characteristic(service2, characteristic2_5);
7263 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7265 ret = bt_gatt_descriptor_create(desc_uuid2_5_1, permissions,
7266 desc_value_configration, 2, &descriptor2_5_1);
7267 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
7269 ret = bt_gatt_characteristic_add_descriptor(characteristic2_5, descriptor2_5_1);
7270 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
7272 ret = bt_gatt_descriptor_create(desc_uuid2_5_2, permissions,
7273 desc_value_configration, 2, &descriptor2_5_2);
7274 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
7276 ret = bt_gatt_characteristic_add_descriptor(characteristic2_5, descriptor2_5_2);
7277 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
7279 ret = bt_gatt_characteristic_create(char_uuid2_6, permissions,
7280 properties, char_value_unknown,
7281 4, &characteristic2_6);
7282 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7284 ret = bt_gatt_service_add_characteristic(service2, characteristic2_6);
7285 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7287 ret = bt_gatt_characteristic_create(char_uuid2_7, permissions,
7288 properties, char_value_unknown,
7289 4, &characteristic2_7);
7290 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7292 ret = bt_gatt_service_add_characteristic(service2, characteristic2_7);
7293 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7295 ret = bt_gatt_server_register_service(server, service2);
7296 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
7298 /* Generic Attribute Service */
7299 ret = bt_gatt_service_create(service_uuid3,
7300 BT_GATT_SERVICE_TYPE_PRIMARY,
7302 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
7304 ret = bt_gatt_server_register_service(server, service3);
7305 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
7308 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_REGISTER_CUSTOM_SVC: {
7309 bt_gatt_h service = NULL;
7310 bt_gatt_h characteristic = NULL;
7311 bt_gatt_h descriptor = NULL;
7312 char *service_uuid = "000018f2-0000-1000-8000-00805f9b34fb";
7313 char *char_uuid = "00002af6-0000-1000-8000-00805f9b34fb";
7314 char *desc_uuid = "2902"; // CCCD
7315 char char_value[4] = {10, 20, 30, 40};
7316 char desc_value[2] = {0, 0}; // Notification disabled
7317 int value_length = 4;
7318 int permissions = BT_GATT_PERMISSION_READ | BT_GATT_PERMISSION_WRITE;
7319 int properties = BT_GATT_PROPERTY_BROADCAST | BT_GATT_PROPERTY_READ |
7320 BT_GATT_PROPERTY_WRITE | BT_GATT_PROPERTY_NOTIFY;
7322 ret = bt_gatt_server_initialize();
7323 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
7325 if (server == NULL) {
7326 ret = bt_gatt_server_create(&server);
7327 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
7330 ret = bt_gatt_service_create(service_uuid,
7331 BT_GATT_SERVICE_TYPE_PRIMARY,
7333 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
7335 /* Read & Write & Notify characteristics UUID */
7336 ret = bt_gatt_characteristic_create(char_uuid, permissions,
7337 properties, char_value,
7338 value_length, &characteristic);
7339 TC_PRT("bt_gatt_characteristic_create : %s\n", __bt_get_error_message(ret));
7341 bt_gatt_server_set_read_value_requested_cb(characteristic,
7342 __bt_gatt_server_read_value_requested_cb, NULL);
7344 ret = bt_gatt_server_set_write_value_requested_cb(characteristic,
7345 __bt_gatt_server_write_value_requested_cb, NULL);
7347 ret = bt_gatt_server_set_characteristic_notification_state_change_cb(characteristic,
7348 __bt_gatt_server_notification_state_change_cb, NULL);
7350 ret = bt_gatt_service_add_characteristic(service, characteristic);
7351 TC_PRT("bt_gatt_service_add_characteristic : %s\n", __bt_get_error_message(ret));
7353 /* CCCD for Notify characteristics */
7354 ret = bt_gatt_descriptor_create(desc_uuid, permissions,
7355 desc_value, value_length, &descriptor);
7356 TC_PRT("bt_gatt_descriptor_create : %s\n", __bt_get_error_message(ret));
7358 ret = bt_gatt_characteristic_add_descriptor(characteristic, descriptor);
7359 TC_PRT("bt_gatt_characteristic_add_descriptor : %s\n", __bt_get_error_message(ret));
7361 ret = bt_gatt_server_register_service(server, service);
7362 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
7364 custom_h.svc = service;
7365 custom_h.chr = characteristic;
7366 custom_h.desc = descriptor;
7369 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_CHANGE_CUSTOM_VAL: {
7370 char char_value[4] = {50, 60, 70, 80};
7372 TC_PRT("bt gatt server is not created");
7375 ret = bt_gatt_set_value(custom_h.chr, char_value, 4);
7376 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7378 /* notify only client remote_addr */
7379 ret = bt_gatt_server_notify_characteristic_changed_value(custom_h.chr,
7380 __bt_gatt_server_notification_sent_cb, remote_addr, NULL);
7381 TC_PRT("bt_gatt_server_notify_characteristic_changed_value : %s\n",
7382 __bt_get_error_message(ret));
7386 case BT_UNIT_TEST_FUNCTION_GATT_START_SERVER: {
7387 ret = bt_gatt_server_start();
7388 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
7391 case BT_UNIT_TEST_FUNCTION_GATT_GET_SPEC_NAME_FROM_UUID: {
7393 char *uuid = "0000180F-0000-1000-8000-00805F9B34FB";
7394 ret = bt_gatt_get_uuid_specification_name(uuid, &name);
7395 TC_PRT("bt_gatt_get_uuid_specification_name : %s\n", __bt_get_error_message(ret));
7396 if (BT_ERROR_NONE == ret) {
7397 TC_PRT("UUID [%s] Specification Name [%s]", uuid, name);
7402 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_FOREACH_SERVICES: {
7404 ret = bt_gatt_server_foreach_services(server,
7405 __bt_gatt_server_foreach_svc_cb, (void *)(uintptr_t)test_id);
7407 ret = bt_gatt_server_foreach_services(server,
7408 __bt_gatt_server_foreach_svc_cb, (void *)test_id);
7410 TC_PRT("bt_gatt_server_foreach_services: %s\n", __bt_get_error_message(ret));
7413 case BT_UNIT_TEST_FUNCTION_GATT_SERVER_GET_DEVICE_MTU: {
7414 unsigned int mtu = 0;
7415 ret = bt_gatt_server_get_device_mtu(remote_addr, &mtu);
7416 TC_PRT("returns %s, MTU %d\n", __bt_get_error_message(ret), mtu);
7419 case BT_UNIT_TEST_FUNCTION_ANCS_PAIR: {
7420 bt_device_connection_link_type_e link_type = BT_DEVICE_CONNECTION_LINK_LE;
7422 if (g_test_param.param_count > 0) {
7423 link_type = atoi(g_test_param.params[0]);
7425 __bt_free_test_param(&g_test_param);
7428 ret = bt_device_create_bond_by_type(remote_addr, link_type);
7429 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7432 case BT_UNIT_TEST_FUNCTION_ANCS_WATCH: {
7433 bt_gatt_h ancs_svc = NULL;
7434 bt_gatt_h noti_source = NULL;;
7435 char *svc_uuid = "7905F431-B5CE-4E99-A40F-4B1E122D00D0";
7436 char *chr_uuid = "9FBF120D-6301-42D9-8C58-25E699A21DBD";
7438 ret = bt_gatt_client_get_service(client, svc_uuid, &ancs_svc);
7439 if (ret != BT_ERROR_NONE) {
7440 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7444 ret = bt_gatt_service_get_characteristic(ancs_svc,
7445 chr_uuid, ¬i_source);
7446 if (ret != BT_ERROR_NONE) {
7447 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7451 ret = bt_gatt_client_set_characteristic_value_changed_cb(noti_source,
7452 __bt_gatt_client_value_changed_cb, NULL);
7453 if (ret != BT_ERROR_NONE)
7454 TC_PRT("bt_gatt_client_set_characteristic_value_changed_cb is failed : %d", ret);
7457 case BT_UNIT_TEST_FUNCTION_ANCS_POSITIVE_ACTION: {
7459 char *noti_id = NULL;
7462 if (g_test_param.param_count == 0) {
7463 TC_PRT("Input parameters first");
7467 noti_id = g_test_param.params[0];
7471 memcpy(&value[1], &id, sizeof(int));
7474 __ancs_write_value_to_control_point(client,
7475 value, sizeof(value));
7479 case BT_UNIT_TEST_FUNCTION_ANCS_NEGATIVE_ACTION: {
7481 char *noti_id = NULL;
7484 if (g_test_param.param_count == 0) {
7485 TC_PRT("Input parameters first");
7489 noti_id = g_test_param.params[0];
7493 memcpy(&value[1], &id, sizeof(int));
7496 __ancs_write_value_to_control_point(client,
7497 value, sizeof(value));
7501 case BT_UNIT_TEST_FUNCTION_ANCS_GET_NOTI_ATTR: {
7502 bt_gatt_h ancs_svc = NULL;
7503 bt_gatt_h data_source = NULL;;
7504 char *svc_uuid = "7905F431-B5CE-4E99-A40F-4B1E122D00D0";
7505 char *chr_uuid = "22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB";
7508 char *noti_id = NULL;
7511 if (g_test_param.param_count == 0) {
7512 TC_PRT("Input parameters first");
7516 ret = bt_gatt_client_get_service(client,
7517 svc_uuid, &ancs_svc);
7518 if (ret != BT_ERROR_NONE) {
7519 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7523 ret = bt_gatt_service_get_characteristic(ancs_svc,
7524 chr_uuid, &data_source);
7525 if (ret != BT_ERROR_NONE) {
7526 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7530 ret = bt_gatt_client_set_characteristic_value_changed_cb(data_source,
7531 __bt_gatt_client_value_changed_cb, NULL);
7532 if (ret != BT_ERROR_NONE)
7533 TC_PRT("bt_gatt_client_set_characteristic_value_changed_cb is failed : %d", ret);
7535 noti_id = g_test_param.params[0];
7539 memcpy(&value[1], &id, sizeof(int));
7555 __ancs_write_value_to_control_point(client,
7556 value, sizeof(value));
7560 case BT_UNIT_TEST_FUNCTION_GATT_GET_DATA_BATCHING_AVAILABLE_PACKETS: {
7562 ret = bt_gatt_get_data_batching_available_packets(&available);
7563 TC_PRT("returns %s, (available:%d)\n", __bt_get_error_message(ret), available);
7566 case BT_UNIT_TEST_FUNCTION_GATT_ENABLE_DATA_BATCHING: {
7567 int packet_threshold = 30;
7570 if (g_test_param.param_count > 0) {
7571 packet_threshold = atoi(g_test_param.params[0]);
7572 timeout = atoi(g_test_param.params[1]);
7574 __bt_free_test_param(&g_test_param);
7577 ret = bt_gatt_enable_data_batching(remote_addr, packet_threshold, timeout);
7578 TC_PRT("returns %s, (packet_threshold:%d, timeout:%d)\n", __bt_get_error_message(ret), packet_threshold, timeout);
7581 case BT_UNIT_TEST_FUNCTION_GATT_DISABLE_DATA_BATCHING: {
7582 ret = bt_gatt_disable_data_batching(remote_addr);
7583 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7586 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
7587 need_to_set_params = true;
7588 TC_PRT("Select the function again");
7597 case BT_UNIT_TEST_TABLE_HPS: {
7599 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_CREATE: {
7600 bool auto_connect = false;
7602 if (g_test_param.param_count > 0) {
7603 if (g_strrstr(g_test_param.params[0], "true"))
7604 auto_connect = true;
7606 auto_connect = false;
7608 __bt_free_test_param(&g_test_param);
7611 ret = bt_gatt_connect(remote_addr, auto_connect);
7612 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7613 ret = bt_gatt_set_connection_state_changed_cb(
7614 __bt_hps_connection_state_changed_cb,
7616 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7619 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_DESTROY: {
7623 ret = bt_gatt_client_destroy(hps_client);
7624 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7626 ret = bt_gatt_disconnect(remote_addr);
7627 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7630 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_PRINT_ALL: {
7632 ret = bt_gatt_client_foreach_services(hps_client,
7633 __bt_hps_client_svc_cb, (void *)(uintptr_t)test_id);
7635 ret = bt_gatt_client_foreach_services(hps_client,
7636 __bt_hps_client_svc_cb, (void *)test_id);
7638 if (ret != BT_ERROR_NONE)
7639 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7642 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_URI: {
7643 bt_gatt_h svc = NULL;
7644 bt_gatt_h chr = NULL;
7647 if (g_test_param.param_count < 1) {
7648 TC_PRT("Input parameters first");
7652 uri = g_test_param.params[0];
7653 ret = bt_gatt_client_get_service(hps_client,
7655 if (ret != BT_ERROR_NONE) {
7656 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7657 __bt_free_test_param(&g_test_param);
7661 ret = bt_gatt_service_get_characteristic(svc,
7662 HTTP_URI_UUID, &chr);
7663 if (ret != BT_ERROR_NONE) {
7664 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7665 __bt_free_test_param(&g_test_param);
7669 ret = __bt_gatt_client_set_value("str", uri, chr);
7670 if (ret != BT_ERROR_NONE) {
7671 TC_PRT("bt_gatt_set_value is failed : %d", ret);
7672 __bt_free_test_param(&g_test_param);
7676 ret = bt_gatt_client_write_value(chr,
7677 __bt_gatt_client_write_complete_cb, NULL);
7679 if (ret != BT_ERROR_NONE)
7680 TC_PRT("bt_gatt_client_write_value is failed : %d", ret);
7682 __bt_free_test_param(&g_test_param);
7685 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_HDR: {
7686 bt_gatt_h svc = NULL;
7687 bt_gatt_h chr = NULL;
7690 if (g_test_param.param_count < 1) {
7691 TC_PRT("Input parameters first");
7695 hdr = g_test_param.params[0];
7697 ret = bt_gatt_client_get_service(hps_client,
7699 if (ret != BT_ERROR_NONE) {
7700 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7701 __bt_free_test_param(&g_test_param);
7705 ret = bt_gatt_service_get_characteristic(svc,
7706 HTTP_HDR_UUID, &chr);
7707 if (ret != BT_ERROR_NONE) {
7708 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7709 __bt_free_test_param(&g_test_param);
7713 ret = __bt_gatt_client_set_value("str", hdr, chr);
7714 if (ret != BT_ERROR_NONE) {
7715 TC_PRT("bt_gatt_set_value is failed : %d", ret);
7716 __bt_free_test_param(&g_test_param);
7720 ret = bt_gatt_client_write_value(chr,
7721 __bt_gatt_client_write_complete_cb, NULL);
7723 if (ret != BT_ERROR_NONE)
7724 TC_PRT("bt_gatt_client_write_value is failed : %d", ret);
7726 __bt_free_test_param(&g_test_param);
7729 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_ENTITY: {
7730 bt_gatt_h svc = NULL;
7731 bt_gatt_h chr = NULL;
7732 char *entity = NULL;
7734 if (g_test_param.param_count < 1) {
7735 TC_PRT("Input parameters first");
7739 entity = g_test_param.params[0];
7741 ret = bt_gatt_client_get_service(hps_client,
7743 if (ret != BT_ERROR_NONE) {
7744 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7745 __bt_free_test_param(&g_test_param);
7749 ret = bt_gatt_service_get_characteristic(svc,
7750 HTTP_ENTITY_UUID, &chr);
7751 if (ret != BT_ERROR_NONE) {
7752 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7753 __bt_free_test_param(&g_test_param);
7757 ret = __bt_gatt_client_set_value("str",
7759 if (ret != BT_ERROR_NONE) {
7760 TC_PRT("bt_gatt_set_value is failed : %d", ret);
7761 __bt_free_test_param(&g_test_param);
7765 ret = bt_gatt_client_set_characteristic_value_changed_cb(chr,
7766 __bt_HP_client_cp_req_status_changed_cb, NULL);
7768 if (ret != BT_ERROR_NONE)
7769 TC_PRT("bt_gatt_client_write_value is failed : %d", ret);
7771 ret = bt_gatt_client_write_value(chr,
7772 __bt_gatt_client_write_complete_cb, NULL);
7774 if (ret != BT_ERROR_NONE)
7775 TC_PRT("bt_gatt_client_write_value is failed : %d", ret);
7777 __bt_free_test_param(&g_test_param);
7780 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_CP: {
7781 bt_gatt_h svc = NULL;
7782 bt_gatt_h chr = NULL;
7784 if (g_test_param.param_count < 1) {
7785 TC_PRT("Input parameters first");
7789 ret = bt_gatt_client_get_service(hps_client,
7791 if (ret != BT_ERROR_NONE) {
7792 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7793 __bt_free_test_param(&g_test_param);
7797 ret = bt_gatt_service_get_characteristic(svc,
7798 HTTP_CP_UUID, &chr);
7799 if (ret != BT_ERROR_NONE) {
7800 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7801 __bt_free_test_param(&g_test_param);
7805 ret = __bt_gatt_client_set_value("uint8",
7806 g_test_param.params[0], chr);
7807 if (ret != BT_ERROR_NONE) {
7808 TC_PRT("bt_gatt_set_value is failed : %d", ret);
7809 __bt_free_test_param(&g_test_param);
7813 ret = bt_gatt_client_write_value(chr,
7814 __bt_gatt_client_write_complete_cb, NULL);
7816 if (ret != BT_ERROR_NONE)
7817 TC_PRT("bt_gatt_client_write_value is failed : %d", ret);
7819 __bt_free_test_param(&g_test_param);
7823 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_URI: {
7824 bt_gatt_h svc = NULL;
7825 bt_gatt_h chr = NULL;
7827 ret = bt_gatt_client_get_service(hps_client,
7829 if (ret != BT_ERROR_NONE) {
7830 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7834 ret = bt_gatt_service_get_characteristic(svc,
7835 HTTP_URI_UUID, &chr);
7836 if (ret != BT_ERROR_NONE) {
7837 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7841 ret = bt_gatt_client_read_value(chr,
7842 __bt_gatt_client_read_complete_cb, NULL);
7844 if (ret != BT_ERROR_NONE)
7845 TC_PRT("bt_gatt_client_read_value is failed : %d", ret);
7849 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_HDR: {
7850 bt_gatt_h svc = NULL;
7851 bt_gatt_h chr = NULL;
7853 ret = bt_gatt_client_get_service(hps_client,
7855 if (ret != BT_ERROR_NONE) {
7856 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7860 ret = bt_gatt_service_get_characteristic(svc,
7861 HTTP_HDR_UUID, &chr);
7862 if (ret != BT_ERROR_NONE) {
7863 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7867 ret = bt_gatt_client_read_value(chr,
7868 __bt_gatt_client_read_complete_cb, NULL);
7870 if (ret != BT_ERROR_NONE)
7871 TC_PRT("bt_gatt_client_read_value is failed : %d", ret);
7874 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_ENTITY: {
7875 bt_gatt_h svc = NULL;
7876 bt_gatt_h chr = NULL;
7878 ret = bt_gatt_client_get_service(hps_client,
7880 if (ret != BT_ERROR_NONE) {
7881 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7885 ret = bt_gatt_service_get_characteristic(svc,
7886 HTTP_ENTITY_UUID, &chr);
7887 if (ret != BT_ERROR_NONE) {
7888 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7892 ret = bt_gatt_client_read_value(chr,
7893 __bt_gatt_client_read_complete_cb, NULL);
7895 if (ret != BT_ERROR_NONE)
7896 TC_PRT("bt_gatt_client_read_value is failed : %d", ret);
7900 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_GET_SECURITY: {
7901 bt_gatt_h svc = NULL;
7902 bt_gatt_h chr = NULL;
7904 ret = bt_gatt_client_get_service(hps_client,
7906 if (ret != BT_ERROR_NONE) {
7907 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7911 ret = bt_gatt_service_get_characteristic(svc,
7912 HTTP_SECURITY_UUID, &chr);
7913 if (ret != BT_ERROR_NONE) {
7914 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7918 ret = bt_gatt_client_read_value(chr,
7919 __bt_gatt_client_read_complete_cb, NULL);
7921 if (ret != BT_ERROR_NONE)
7922 TC_PRT("bt_gatt_client_read_value is failed : %d", ret);
7926 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_SET_STATUS_NOTIFICATION: {
7927 bt_gatt_h svc = NULL;
7928 bt_gatt_h chr = NULL;
7930 ret = bt_gatt_client_get_service(hps_client,
7932 if (ret != BT_ERROR_NONE) {
7933 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7937 ret = bt_gatt_service_get_characteristic(svc,
7938 HTTP_STATUS_UUID, &chr);
7939 if (ret != BT_ERROR_NONE) {
7940 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7944 ret = bt_gatt_client_set_characteristic_value_changed_cb(chr,
7945 __bt_gatt_client_value_changed_cb, NULL);
7946 if (ret != BT_ERROR_NONE)
7947 TC_PRT("bt_gatt_client_set_characteristic_value_changed_cb is failed : %d", ret);
7950 case BT_UNIT_TEST_FUNCTION_HPS_CLIENT_UNSET_STATUS_NOTIFICATION: {
7951 bt_gatt_h svc = NULL;
7952 bt_gatt_h chr = NULL;
7954 ret = bt_gatt_client_get_service(hps_client,
7956 if (ret != BT_ERROR_NONE) {
7957 TC_PRT("bt_gatt_client_get_service is failed : %d", ret);
7961 ret = bt_gatt_service_get_characteristic(svc,
7962 HTTP_STATUS_UUID, &chr);
7963 if (ret != BT_ERROR_NONE) {
7964 TC_PRT("bt_gatt_service_get_characteristic is failed : %d", ret);
7968 ret = bt_gatt_client_unset_characteristic_value_changed_cb(chr);
7969 if (ret != BT_ERROR_NONE)
7970 TC_PRT("bt_gatt_client_unset_characteristic_value_changed_cb is failed : %d", ret);
7973 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
7974 need_to_set_params = true;
7975 TC_PRT("Select the function again");
7986 case BT_UNIT_TEST_TABLE_AVRCP: {
7988 case BT_UNIT_TEST_FUNCTION_AVRCP_TARGET_INITIALIZE:
7989 ret = bt_avrcp_target_initialize(
7990 __bt_avrcp_target_connection_state_changed_cb,
7992 TC_PRT("returns %s\n", __bt_get_error_message(ret));
7995 case BT_UNIT_TEST_FUNCTION_AVRCP_TARGET_DEINITIALIZE:
7996 ret = bt_avrcp_target_deinitialize();
7997 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8000 case BT_UNIT_TEST_FUNCTION_AVRCP_SET_EQUALIZER_STATE_CHANGED_CB:
8001 ret = bt_avrcp_set_equalizer_state_changed_cb(
8002 __bt_avrcp_equalizer_state_changed_cb,
8004 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8007 case BT_UNIT_TEST_FUNCTION_AVRCP_SET_REPEAT_MODE_CHANGED_CB:
8008 ret = bt_avrcp_set_repeat_mode_changed_cb(
8009 __bt_avrcp_repeat_mode_changed_cb,
8011 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8014 case BT_UNIT_TEST_FUNCTION_AVRCP_SET_SHUFFLE_MODE_CHANGED_CB:
8015 ret = bt_avrcp_set_shuffle_mode_changed_cb(
8016 __bt_avrcp_shuffle_mode_changed_cb,
8018 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8021 case BT_UNIT_TEST_FUNCTION_AVRCP_SET_SCAN_MODE_CHANGED_CB:
8022 ret = bt_avrcp_set_scan_mode_changed_cb(
8023 __bt_avrcp_scan_mode_changed_cb,
8025 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8028 case BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_EQUALIZER_STATE_CHANGED_CB:
8029 ret = bt_avrcp_unset_equalizer_state_changed_cb();
8030 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8033 case BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_REPEAT_MODE_CHANGED_CB:
8034 ret = bt_avrcp_unset_repeat_mode_changed_cb();
8035 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8038 case BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_SHUFFLE_MODE_CHANGED_CB:
8039 ret = bt_avrcp_unset_shuffle_mode_changed_cb();
8040 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8043 case BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_SCAN_MODE_CHANGED_CB:
8044 ret = bt_avrcp_unset_scan_mode_changed_cb();
8045 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8048 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_INITIALIZE:
8049 ret = bt_avrcp_control_initialize(
8050 __bt_avrcp_control_connection_state_changed_cb,
8052 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8055 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_DEINITIALIZE:
8056 ret = bt_avrcp_control_deinitialize();
8057 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8060 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_CONNECT:
8061 ret = bt_avrcp_control_connect(remote_addr);
8062 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8065 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_DISCONNECT:
8066 ret = bt_avrcp_control_disconnect(remote_addr);
8067 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8070 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PLAY:
8071 ret = bt_avrcp_control_send_player_command(BT_AVRCP_CONTROL_PLAY);
8072 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8075 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_STOP:
8076 ret = bt_avrcp_control_send_player_command(BT_AVRCP_CONTROL_STOP);
8077 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8080 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PAUSE:
8081 ret = bt_avrcp_control_send_player_command(BT_AVRCP_CONTROL_PAUSE);
8082 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8085 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_FF:
8086 ret = bt_avrcp_control_send_player_command(BT_AVRCP_CONTROL_FAST_FORWARD);
8087 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8090 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_RW:
8091 ret = bt_avrcp_control_send_player_command(BT_AVRCP_CONTROL_REWIND);
8092 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8095 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_NEXT:
8096 ret = bt_avrcp_control_send_player_command(BT_AVRCP_CONTROL_NEXT);
8097 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8100 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_PREV: {
8101 ret = bt_avrcp_control_send_player_command(BT_AVRCP_CONTROL_PREVIOUS);
8102 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8105 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_ABSOLUTE_VOLUME: {
8106 static unsigned int volume_level = 1;
8107 ret = bt_avrcp_control_set_absolute_volume(volume_level++);
8108 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8111 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_UP: {
8112 ret = bt_avrcp_control_increase_volume();
8113 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8116 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_VOLUME_DOWN: {
8117 ret = bt_avrcp_control_decrease_volume();
8118 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8121 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SEND_DELAY_REPORT: {
8122 static unsigned int delay_level = 1;
8123 ret = bt_avrcp_control_send_delay_report(delay_level++);
8124 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8127 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_REPEAT: {
8128 bt_avrcp_repeat_mode_e mode = BT_AVRCP_REPEAT_MODE_GROUP;
8129 ret = bt_avrcp_control_get_repeat_mode(&mode);
8130 TC_PRT("Repet mode : %d returns %s\n", mode,
8131 __bt_get_error_message(ret));
8135 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_REPEAT: {
8136 ret = bt_avrcp_control_set_repeat_mode(2);
8137 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8141 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_SHUFFLE: {
8142 bt_avrcp_shuffle_mode_e mode = BT_AVRCP_SHUFFLE_MODE_ALL_TRACK;
8143 ret = bt_avrcp_control_get_shuffle_mode(&mode);
8144 TC_PRT("Shuffle mode %d returns %s\n", mode, __bt_get_error_message(ret));
8148 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_SET_SHUFFLE: {
8149 ret = bt_avrcp_control_set_shuffle_mode(1);
8150 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8154 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_POSITION: {
8155 unsigned int position = 0;
8156 ret = bt_avrcp_control_get_position(&position);
8157 TC_PRT("position %d returns %s\n", position, __bt_get_error_message(ret));
8161 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_PLAY_STATUS: {
8162 unsigned int status = 0;
8163 ret = bt_avrcp_control_get_play_status(&status);
8164 TC_PRT("status %d returns %s\n", status, __bt_get_error_message(ret));
8168 case BT_UNIT_TEST_FUNCTION_AVRCP_CONTROL_GET_TRACK_INFO: {
8169 bt_avrcp_metadata_attributes_info_s *track;
8170 ret = bt_avrcp_control_get_track_info(&track);
8171 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8172 if (ret == BT_ERROR_NONE) {
8173 TC_PRT("Title. %s\n", track->title);
8174 TC_PRT("Artist %s\n", track->artist);
8175 TC_PRT("Album %s\n", track->album);
8176 TC_PRT("Genre %s\n", track->genre);
8177 TC_PRT("Total tracks %d\n", track->total_tracks);
8178 TC_PRT("Number %d\n", track->number);
8179 TC_PRT("Duration %d\n", track->duration);
8180 bt_avrcp_control_free_track_info(track);
8185 case BT_UNIT_TEST_FUNCTION_AVRCP_SET_SONG_POSITION_CHANGED_CB:
8186 ret = bt_avrcp_set_position_changed_cb(
8187 __bt_avrcp_song_position_changed_cb,
8189 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8192 case BT_UNIT_TEST_FUNCTION_AVRCP_SET_PLAY_STATE_CHANGED_CB:
8193 ret = bt_avrcp_set_play_status_changed_cb(
8194 __bt_avrcp_player_state_changed_cb,
8196 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8199 case BT_UNIT_TEST_FUNCTION_AVRCP_SET_TRACK_INFO_CHANGED_CB:
8200 ret = bt_avrcp_set_track_info_changed_cb(
8201 __bt_avrcp_track_info_changed_cb,
8203 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8206 case BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_SONG_POSITION_CHANGED_CB:
8207 ret = bt_avrcp_unset_position_changed_cb();
8208 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8211 case BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_PLAY_STATE_CHANGED_CB:
8212 ret = bt_avrcp_unset_play_status_changed_cb();
8213 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8216 case BT_UNIT_TEST_FUNCTION_AVRCP_UNSET_TRACK_INFO_CHANGED_CB:
8217 ret = bt_avrcp_unset_track_info_changed_cb();
8218 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8221 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
8222 need_to_set_params = true;
8223 TC_PRT("Select the function again");
8232 case BT_UNIT_TEST_TABLE_HID: {
8234 case BT_UNIT_TEST_FUNCTION_HID_HOST_INITIALIZE:
8235 ret = bt_hid_host_initialize(
8236 __bt_hid_host_connection_state_changed_cb,
8238 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8240 case BT_UNIT_TEST_FUNCTION_HID_HOST_DEINITIALIZE:
8241 ret = bt_hid_host_deinitialize();
8242 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8244 case BT_UNIT_TEST_FUNCTION_HID_HOST_CONNECT: {
8245 ret = bt_hid_host_connect(remote_addr);
8246 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8249 case BT_UNIT_TEST_FUNCTION_HID_HOST_DISCONNECT: {
8250 ret = bt_hid_host_disconnect(remote_addr);
8251 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8254 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_ACTIVATE: {
8255 ret = bt_hid_device_activate(
8256 __bt_hid_device_connection_state_changed_cb,
8258 TC_PRT("returns %s", __bt_get_error_message(ret));
8261 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_CONNECT: {
8262 ret = bt_hid_device_connect(remote_addr);
8263 TC_PRT("returns %s", __bt_get_error_message(ret));
8266 case BT_UNIT_TEST_FUCNTION_HID_DEVICE_DEACTIVATE: {
8267 ret = bt_hid_device_deactivate();
8268 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8271 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_DISCONNECT: {
8272 ret = bt_hid_device_disconnect(remote_addr);
8273 TC_PRT("return %s", __bt_get_error_message(ret));
8276 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT: {
8277 bt_hid_mouse_data_s send_data;
8280 send_data.buttons = 1;
8281 send_data.padding = BT_HID_MOUSE_BUTTON_LEFT;
8283 send_data.axis_x = 10;
8284 send_data.axis_y = 0;
8285 for (i = 0; i < 30; i++) {
8287 ret = bt_hid_device_send_mouse_event(
8288 remote_addr, &send_data);
8290 TC_PRT("returns %d\n", ret);
8292 send_data.axis_x = 0;
8293 send_data.axis_y = 10;
8294 for (i = 0; i < 30; i++) {
8296 ret = bt_hid_device_send_mouse_event(
8297 remote_addr, &send_data);
8299 TC_PRT("returns %d\n", ret);
8301 send_data.axis_x = -10;
8302 send_data.axis_y = 0;
8303 for (i = 0; i < 60; i++) {
8305 ret = bt_hid_device_send_mouse_event(
8306 remote_addr, &send_data);
8308 TC_PRT("returns %d\n", ret);
8310 send_data.axis_x = 0;
8311 send_data.axis_y = -10;
8312 for (i = 0; i < 60; i++) {
8314 ret = bt_hid_device_send_mouse_event(
8315 remote_addr, &send_data);
8317 TC_PRT("returns %d\n", ret);
8319 send_data.axis_x = 10;
8320 send_data.axis_y = 0;
8321 for (i = 0; i < 60; i++) {
8323 ret = bt_hid_device_send_mouse_event(
8324 remote_addr, &send_data);
8326 TC_PRT("returns %d\n", ret);
8328 send_data.axis_x = 0;
8329 send_data.axis_y = 10;
8330 for (i = 0; i < 30; i++) {
8332 ret = bt_hid_device_send_mouse_event(
8333 remote_addr, &send_data);
8335 TC_PRT("returns %d\n", ret);
8337 send_data.axis_x = -10;
8338 send_data.axis_y = 0;
8339 for (i = 0; i < 30; i++) {
8341 ret = bt_hid_device_send_mouse_event(
8342 remote_addr, &send_data);
8344 TC_PRT("returns %d\n", ret);
8346 TC_PRT("Completed");
8350 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT_SCROLL: {
8351 bt_hid_mouse_data_s send_data;
8353 send_data.buttons = BT_HID_MOUSE_BUTTON_NONE;
8354 send_data.padding = 0x01;
8356 send_data.axis_x = 0;
8357 send_data.axis_y = 0;
8358 TC_PRT("Scroll UP");
8359 ret = bt_hid_device_send_mouse_event(remote_addr, &send_data);
8361 TC_PRT("returns %d\n", ret);
8364 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT_SCROLL_DOWN: {
8365 bt_hid_mouse_data_s send_data;
8366 send_data.buttons = BT_HID_MOUSE_BUTTON_NONE;
8367 send_data.padding = 0xff;
8368 send_data.axis_x = 0;
8369 send_data.axis_y = 0;
8370 TC_PRT("Scroll Down");
8371 ret = bt_hid_device_send_mouse_event(remote_addr, &send_data);
8373 TC_PRT("returns %d\n", ret);
8376 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_KEY_EVENT: {
8377 bt_hid_key_data_s send_data;
8378 /* Will send character 'a' */
8379 char pressedkey[8] = { 4, 0, 0, 0, 0, 0, 0, 0 };
8380 char pressedkey1[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
8381 memcpy(send_data.key, pressedkey, 8);
8382 send_data.modifier = 0;
8383 ret = bt_hid_device_send_key_event(
8384 remote_addr, &send_data);
8385 TC_PRT("returns %d\n", ret);
8386 memcpy(send_data.key, pressedkey1, 8);
8387 ret = bt_hid_device_send_key_event(
8388 remote_addr, &send_data);
8389 TC_PRT("returns %d\n", ret);
8392 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_RC_KEY_EVENT: {
8393 unsigned char report_id = 0xF7;
8394 char pressed_data[6] = {0x07, 0x00, 0x00, 0x00, 0x00, 0x00};
8395 char released_data[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
8396 static int mode = 1;
8398 if (g_test_param.param_count > 0) {
8399 mode = atoi(g_test_param.params[0]);
8400 __bt_free_test_param(&g_test_param);
8404 pressed_data[0] = 0x07; /* Vol up */
8406 pressed_data[0] = 0x0B; /* Vol down */
8408 pressed_data[0] = 0x12; /* CH up */
8410 pressed_data[0] = 0x10; /* CH down */
8412 ret = bt_hid_device_send_custom_event(remote_addr,
8413 report_id, pressed_data, 6);
8414 TC_PRT("returns %d\n", ret);
8416 ret = bt_hid_device_send_custom_event(remote_addr,
8417 report_id, released_data, 6);
8418 TC_PRT("returns %d\n", ret);
8422 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SET_DATA_RECEIVED_CB: {
8423 ret = bt_hid_device_set_data_received_cb(
8424 __bt_hid_device_data_received_cb,
8426 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8429 case BT_UNIT_TEST_FUNCTION_HID_DEVICE_UNSET_DATA_RECEIVED_CB: {
8430 ret = bt_hid_device_unset_data_received_cb();
8431 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8435 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
8436 need_to_set_params = true;
8437 TC_PRT("Select the function again");
8447 case BT_UNIT_TEST_TABLE_IPSP: {
8449 case BT_UNIT_TEST_FUNCTION_IPSP_REGISTER: {
8450 bt_gatt_h service = NULL;
8451 char *service_uuid = "1820"; /* IPSP Service */
8453 ret = bt_gatt_server_initialize();
8454 TC_PRT("bt_gatt_server_initialize : %s \n", __bt_get_error_message(ret));
8456 if (server == NULL) {
8457 ret = bt_gatt_server_create(&server);
8458 TC_PRT("bt_gatt_server_create : %s \n", __bt_get_error_message(ret));
8461 ret = bt_gatt_service_create(service_uuid, BT_GATT_SERVICE_TYPE_PRIMARY, &service);
8462 TC_PRT("bt_gatt_service_create : %s \n", __bt_get_error_message(ret));
8464 ret = bt_gatt_server_register_service(server, service);
8465 TC_PRT("bt_gatt_server_register_service : %s\n", __bt_get_error_message(ret));
8466 ipsp_h.svc = service;
8470 case BT_UNIT_TEST_FUNCTION_IPSP_UNREGISTER:
8471 if (server != NULL && ipsp_h.svc != NULL) {
8472 ret = bt_gatt_server_unregister_service(server,
8474 TC_PRT("bt_gatt_server_unregister_service : returns %s\n",
8475 __bt_get_error_message(ret));
8476 if (ret == BT_ERROR_NONE)
8479 TC_PRT("Gatt Server or IPSP not registered !");
8482 case BT_UNIT_TEST_FUNCTION_IPSP_INITIALIZE:
8483 /* Initialize IPSP server */
8484 if (server != NULL && ipsp_h.svc != NULL) {
8485 ret = bt_ipsp_initialize(
8486 &__bt_ipsp_init_state_changed_cb,
8488 TC_PRT("bt_le_ipsp_initialize : returns %s\n", __bt_get_error_message(ret));
8490 TC_PRT("Gatt Server or IPSP not registered !");
8493 case BT_UNIT_TEST_FUNCTION_IPSP_DEINITIALIZE:
8494 /* De-Initialize IPSP server */
8495 ret = bt_ipsp_deinitialize();
8496 TC_PRT("bt_le_ipsp_deinitialize : returns %s\n", __bt_get_error_message(ret));
8498 case BT_UNIT_TEST_FUNCTION_IPSP_CONNECT:
8499 ret = bt_ipsp_connect(remote_addr);
8500 TC_PRT("returns %s", __bt_get_error_message(ret));
8502 case BT_UNIT_TEST_FUNCTION_IPSP_DISCONNECT:
8503 ret = bt_ipsp_disconnect(remote_addr);
8504 TC_PRT("returns %s", __bt_get_error_message(ret));
8506 case BT_UNIT_TEST_FUNCTION_IPSP_START_ADVERTISING: {
8507 const char *ipsp_svc_uuid_16 = "1820";
8509 /* Add IPSP service in advertising data */
8510 advertiser = advertiser_list[advertiser_index];
8511 if (advertiser == NULL) {
8512 ret = bt_adapter_le_create_advertiser(&advertiser);
8513 if (ret != BT_ERROR_NONE) {
8514 TC_PRT("created le advertiser(%d)", ret);
8518 advertiser_list[advertiser_index] = advertiser;
8519 ret = bt_adapter_le_set_advertising_device_name(advertiser,
8520 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
8521 if (ret != BT_ERROR_NONE) {
8522 TC_PRT("set device name [0x%04x]", ret);
8527 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
8528 BT_ADAPTER_LE_PACKET_ADVERTISING, ipsp_svc_uuid_16);
8529 if (ret != BT_ERROR_NONE) {
8530 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
8534 /* Start advertising IPSP service */
8535 bt_adapter_le_advertising_state_changed_cb cb;
8537 if (advertiser_index == 0) cb = __bt_adapter_le_advertising_state_changed_cb;
8538 else if (advertiser_index == 1) cb = __bt_adapter_le_advertising_state_changed_cb_2;
8539 else cb = __bt_adapter_le_advertising_state_changed_cb_3;
8541 advertiser = advertiser_list[advertiser_index];
8544 advertiser_index %= 3;
8546 TC_PRT("advertiser: %p", advertiser);
8548 ret = bt_adapter_le_start_advertising_new(advertiser, cb, NULL);
8549 if (ret < BT_ERROR_NONE)
8550 TC_PRT("failed with [0x%04x]", ret);
8554 case BT_UNIT_TEST_FUNCTION_IPSP_SET_CONNECTION_STATE_CHANGED_CB:
8555 ret = bt_ipsp_set_connection_state_changed_cb(
8556 __bt_ipsp_connection_state_changed_cb, NULL);
8557 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8560 case BT_UNIT_TEST_FUNCTION_IPSP_UNSET_CONNECTION_STATE_CHANGED_CB:
8561 ret = bt_ipsp_unset_connection_state_changed_cb();
8562 TC_PRT("returns %s\n", __bt_get_error_message(ret));
8565 case BT_UNIT_TEST_FUNCTION_IPSP_CREATE_APP_SERVER_SOCKET: {
8566 int serverSocket = 0;
8567 struct ifaddrs *ifap, *ifa;
8568 struct sockaddr_in6 serverAddr, clientAddr;
8570 char host[NI_MAXHOST];
8571 char client_ipv6[100] = {0, };
8574 TC_PRT("\n****** IPSP Application Server Started ******\n");
8578 for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
8579 if (ifa->ifa_addr->sa_family == AF_INET6) {
8580 if (!memcmp(ifa->ifa_name, ipsp_iface_name, IFNAMSIZ)) {
8581 getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in6), host, NI_MAXHOST,
8582 NULL, 0, NI_NUMERICHOST);
8583 TC_PRT("[IPV6]Host : %s \n", host);
8584 addr = strchr(host, '%');
8586 addr = g_strndup(host, (addr - host));
8587 TC_PRT("Found match Interface: %s and addr : %s\n", ifa->ifa_name, addr);
8596 bzero((char *) &serverAddr, sizeof(serverAddr));
8598 serverAddr.sin6_flowinfo = 0;
8599 serverAddr.sin6_family = AF_INET6;
8600 serverAddr.sin6_addr = in6addr_any;
8601 serverAddr.sin6_port = htons(IPSP_PORT);
8602 serverAddr.sin6_scope_id = if_nametoindex(ipsp_iface_name);
8603 inet_pton(AF_INET6, addr, &(serverAddr.sin6_addr.s6_addr));
8607 /* Create the IPSP APP server socket */
8608 serverSocket = socket(AF_INET6, SOCK_STREAM, 0);
8609 if (serverSocket < 0) {
8610 TC_PRT("\nIPSP server Error : In socket creation !");
8614 TC_PRT("\nIPSP Server : Socket created..");
8617 /* Bind the address struct to the socket */
8618 if (bind(serverSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) < 0) {
8619 TC_PRT("\nIPSP server Error : In socket binding !");
8620 close(serverSocket);
8624 TC_PRT("\nIPSP Server : Socket binding done..");
8627 /* Listen on the socket, with 1 max connection requests queued */
8628 if (listen(serverSocket, 1) < 0) {
8629 TC_PRT("\nIPSP server Error : In socket listening !");
8630 close(serverSocket);
8634 TC_PRT("\nIPSP server : Socket listening, waiting for connection...\n");
8636 /* Accept call creates a new socket for the incoming connection */
8637 clilen = sizeof(clientAddr);
8638 ipsp_server_sock = accept(serverSocket, (struct sockaddr *) &clientAddr, &clilen);
8639 if (ipsp_server_sock < 0) {
8640 TC_PRT("\nIPSP server Error : While accepting incoming connection !");
8641 close(serverSocket);
8645 inet_ntop(AF_INET6, &(clientAddr.sin6_addr), client_ipv6, 100);
8646 TC_PRT("\n****** IPSP server : Incoming connection from client... %s successful, ready to send/receive IPV6 data ******", client_ipv6);
8648 close(serverSocket);
8650 TC_PRT("Matching Address is Not Found , Wait till the Connected Event is recieved from STACK");
8654 case BT_UNIT_TEST_FUNCTION_IPSP_CONNECT_WITH_APP_SERVER_SOCKET: {
8656 struct sockaddr_in6 serverAddr;
8657 struct hostent *server;
8659 if (g_test_param.param_count < 1) {
8660 TC_PRT("Input IPSP Application's server IPv6 address first !");
8663 saddr = g_test_param.params[0];
8665 TC_PRT("\n****** IPSP Application Client Started ******\n");
8667 /* Create the IPSP APP Client socket */
8668 ipsp_client_sock = socket(AF_INET6, SOCK_STREAM, 0);
8669 if (ipsp_client_sock < 0)
8670 TC_PRT("\nIPSP Client Error : In socket creation !");
8672 TC_PRT("\nIPSP Client : Socket created..");
8674 /* Sockets Layer Call: gethostbyname2() */
8675 server = gethostbyname2(saddr, AF_INET6);
8678 TC_PRT("\nIPSP Client Error : No such host !");
8681 TC_PRT("\nIPSP Client GetHostbyName Success!");
8682 memset((char *) &serverAddr, 0, sizeof(serverAddr));
8683 serverAddr.sin6_flowinfo = 0;
8684 serverAddr.sin6_family = AF_INET6;
8685 serverAddr.sin6_addr = in6addr_any;
8686 serverAddr.sin6_port = htons(IPSP_PORT);
8687 serverAddr.sin6_scope_id = if_nametoindex(ipsp_iface_name);
8689 memmove((char *) &serverAddr.sin6_addr.s6_addr, (char *) server->h_addr, server->h_length);
8691 TC_PRT("\nIPSP Client Attempt To Connect to server %s!", serverAddr.sin6_addr.s6_addr);
8692 /* Connect with IPSP APP Server socket */
8693 if (connect(ipsp_client_sock, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) < 0)
8694 TC_PRT("\nIPSP Client Error : %d while connecting with server !", errno);
8696 TC_PRT("\n****** IPSP Client : Connection with : %s successful, ready to send/receive IPV6 data ******\n", saddr);
8698 __bt_free_test_param(&g_test_param);
8702 case BT_UNIT_TEST_FUNCTION_IPSP_SEND_IPV6_APP_DATA: {
8703 int role = -1, n = 0;
8704 char *param_data = NULL;
8706 if (g_test_param.param_count < 2) {
8707 TC_PRT("IPSP Error : Input IPSP Application's role and data to send first !");
8711 role = atoi(g_test_param.params[0]);
8712 param_data = g_test_param.params[1];
8715 if (ipsp_server_sock) {
8716 TC_PRT("IPSP : Current role is IPSP Sever !");
8718 /* Sockets Layer Call: send() */
8719 n = send(ipsp_server_sock, param_data, strlen(param_data) + 1, 0);
8721 TC_PRT("\nIPSP Error : While sending data !");
8723 TC_PRT("IPSP Error: There is no connected server socket !");
8725 } else if (role == 1) {
8726 if (ipsp_client_sock) {
8727 /* Sockets Layer Call: send() */
8728 n = send(ipsp_client_sock, param_data, strlen(param_data) + 1, 0);
8730 TC_PRT("\nIPSP Error : While sending data !");
8732 TC_PRT("IPSP Error: There is no connected client socket !");
8735 TC_PRT("IPSP Error: Please input the proper role !");
8737 __bt_free_test_param(&g_test_param);
8741 case BT_UNIT_TEST_FUNCTION_IPSP_RECV_IPV6_APP_DATA: {
8743 char buffer[256] = {0};
8745 if (g_test_param.param_count < 1) {
8746 TC_PRT("IPSP Error : Input IPSP Application's role first !");
8750 role = atoi(g_test_param.params[0]);
8753 if (ipsp_server_sock) {
8754 TC_PRT("IPSP : Current role is IPSP Sever, ready to receive data !");
8756 /* Sockets Layer Call: recv() */
8757 n = recv(ipsp_server_sock, buffer, 255, 0);
8759 TC_PRT("\nIPSP Server Error : While receiving data from client !");
8761 TC_PRT("\nIPSP Server : Message received from client: %s\n", buffer);
8763 TC_PRT("IPSP Error: There is no connected or active server socket !");
8765 } else if (role == 1) {
8766 if (ipsp_client_sock) {
8767 TC_PRT("IPSP : Current role is IPSP Client, ready to receive data !");
8769 /* Sockets Layer Call: recv() */
8770 n = recv(ipsp_client_sock, buffer, 255, 0);
8772 TC_PRT("\nIPSP Client Error : %d while receiving data from server!", errno);
8774 TC_PRT("\nIPSP Client : Message received from server: %s\n", buffer);
8776 TC_PRT("IPSP Error: There is no connected or active client socket !");
8779 TC_PRT("IPSP Error: Please input the proper role !");
8782 __bt_free_test_param(&g_test_param);
8786 case BT_UNIT_TEST_FUNCTION_IPSP_CLOSE_SOCKET: {
8787 if (ipsp_server_sock) {
8788 TC_PRT("IPSP server : Closing server socket..");
8789 close(ipsp_server_sock);
8790 ipsp_server_sock = 0;
8793 if (ipsp_client_sock) {
8794 TC_PRT("IPSP Client : Closing client socket..");
8795 close(ipsp_client_sock);
8796 ipsp_client_sock = 0;
8802 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
8803 need_to_set_params = true;
8804 TC_PRT("Select the function again");
8814 case BT_UNIT_TEST_TABLE_HDP: {
8816 case BT_UNIT_TEST_FUNCTION_HDP_REGISTER_SINK_APP:
8817 ret = bt_hdp_register_sink_app(0x1007, &appid);
8818 TC_PRT("bt_hdp_register_sink_app : returns %s\n", __bt_get_error_message(ret));
8820 case BT_UNIT_TEST_FUNCTION_HDP_UNREGISTER_SINK_APP:
8821 ret = bt_hdp_unregister_sink_app(appid);
8822 TC_PRT("bt_hdp_unregister_sink_app : returns %s\n", __bt_get_error_message(ret));
8824 case BT_UNIT_TEST_FUNCTION_HDP_CONNECT_TO_SOURCE:
8825 ret = bt_hdp_connect_to_source(remote_addr,
8827 TC_PRT("bt_hdp_connect_to_source : returns %s\n", __bt_get_error_message(ret));
8829 case BT_UNIT_TEST_FUNCTION_HDP_DISCONNECT:
8830 ret = bt_hdp_disconnect(remote_addr,
8832 TC_PRT("bt_hdp_disconnect : returns %s\n", __bt_get_error_message(ret));
8834 case BT_UNIT_TEST_FUNCTION_HDP_SEND_DATA:
8835 ret = bt_hdp_send_data(channel_hdp,
8836 data_hdp, strlen(data_hdp));
8837 TC_PRT("bt_hdp_send_data : returns %s\n", __bt_get_error_message(ret));
8839 case BT_UNIT_TEST_FUNCTION_HDP_SET_CONNECTION_CB:
8840 ret = bt_hdp_set_connection_state_changed_cb(
8841 __bt_hdp_connected_cb,
8842 __bt_hdp_disconnected_cb, NULL);
8843 TC_PRT("bt_hdp_set_connection_state_changed_cb : returns %s\n", __bt_get_error_message(ret));
8845 case BT_UNIT_TEST_FUNCTION_HDP_UNSET_CONNECTION_CB:
8846 ret = bt_hdp_unset_connection_state_changed_cb();
8847 TC_PRT("bt_hdp_unset_connection_state_changed_cb : returns %s\n", __bt_get_error_message(ret));
8849 case BT_UNIT_TEST_FUNCTION_HDP_SET_DATA_RECEIVED_CB:
8850 ret = bt_hdp_set_data_received_cb(
8851 __bt_hdp_data_received_cb,
8853 TC_PRT("bt_hdp_set_data_received_cb : returns %s\n", __bt_get_error_message(ret));
8855 case BT_UNIT_TEST_FUNCTION_HDP_UNSET_DATA_RECEIVED_CB:
8856 ret = bt_hdp_unset_data_received_cb();
8857 TC_PRT("bt_hdp_unset_data_received_cb : returns %s\n", __bt_get_error_message(ret));
8864 case BT_UNIT_TEST_TABLE_DPM: {
8866 case BT_UNIT_TEST_FUNCTION_DPM_SET_DEFAULT_POLICIES: {
8867 const char *hfp_uuid = "0000111f-0000-1000-8000-00805f9b34fb";
8868 const char *hsp_uuid = "00001112-0000-1000-8000-00805f9b34fb";
8869 const char *a2dp_uuid = "0000110D-0000-1000-8000-00805F9B34FB";
8870 const char *avrcp_target_uuid = "0000110c-0000-1000-8000-00805f9b34fb";
8872 ret = bt_dpm_set_allow_bluetooth_mode(BT_DPM_BT_ALLOWED);
8874 TC_PRT("bt_dpm_set_allow_bluetooth_mode : returns %s\n",
8875 __bt_get_error_message(ret));
8877 ret = bt_dpm_activate_device_restriction(BT_DPM_BT_ALLOWED);
8879 TC_PRT("bt_dpm_activate_device_restriction : returns %s\n",
8880 __bt_get_error_message(ret));
8882 ret = bt_dpm_activate_uuid_restriction(BT_DPM_BT_ALLOWED);
8884 TC_PRT("bt_dpm_activate_uuid_restriction : returns %s\n",
8885 __bt_get_error_message(ret));
8887 ret = bt_dpm_set_allow_outgoing_call(BT_DPM_BT_ALLOWED);
8889 TC_PRT("bt_dpm_set_allow_outgoing_call : returns %s\n",
8890 __bt_get_error_message(ret));
8892 ret = bt_dpm_set_pairing_state(BT_DPM_BT_ALLOWED);
8894 TC_PRT("bt_dpm_set_pairing_state : returns %s\n",
8895 __bt_get_error_message(ret));
8897 ret = bt_dpm_set_profile_state(BT_DPM_POLICY_HFP_PROFILE_STATE,
8900 TC_PRT("bt_dpm_set_profile_state : returns %s\n",
8901 __bt_get_error_message(ret));
8903 ret = bt_dpm_set_desktop_connectivity_state(BT_DPM_BT_ALLOWED);
8905 TC_PRT("bt_dpm_set_desktop_connectivity_state : returns %s\n",
8906 __bt_get_error_message(ret));
8908 ret = bt_dpm_set_discoverable_state(BT_DPM_BT_ALLOWED);
8910 TC_PRT("bt_dpm_set_discoverable_state : returns %s\n",
8911 __bt_get_error_message(ret));
8913 ret = bt_dpm_set_limited_discoverable_state(BT_DPM_BT_ALLOWED);
8915 TC_PRT("bt_dpm_set_limited_discoverable_state : returns %s\n",
8916 __bt_get_error_message(ret));
8918 ret = bt_dpm_set_data_transfer_state(BT_DPM_BT_ALLOWED);
8920 TC_PRT("bt_dpm_set_data_transfer_state : returns %s\n",
8921 __bt_get_error_message(ret));
8923 ret = bt_dpm_add_uuids_to_whitelist(spp_uuid);
8925 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
8926 __bt_get_error_message(ret));
8928 ret = bt_dpm_add_uuids_to_whitelist(opp_uuid);
8930 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
8931 __bt_get_error_message(ret));
8933 ret = bt_dpm_add_uuids_to_whitelist(hid_uuid);
8935 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
8936 __bt_get_error_message(ret));
8938 ret = bt_dpm_add_uuids_to_whitelist(hfp_uuid);
8940 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
8941 __bt_get_error_message(ret));
8943 ret = bt_dpm_add_uuids_to_whitelist(hsp_uuid);
8945 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
8946 __bt_get_error_message(ret));
8948 ret = bt_dpm_add_uuids_to_whitelist(a2dp_uuid);
8950 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
8951 __bt_get_error_message(ret));
8953 ret = bt_dpm_add_uuids_to_whitelist(avrcp_target_uuid);
8955 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
8956 __bt_get_error_message(ret));
8959 case BT_UNIT_TEST_FUNCTION_DPM_SET_ALLOW_BLUETOOTH_MODE: {
8961 if (g_test_param.param_count < 1) {
8962 TC_PRT("Input parameters first");
8965 value = atoi(g_test_param.params[0]);
8966 ret = bt_dpm_set_allow_bluetooth_mode(value);
8968 TC_PRT("bt_dpm_set_allow_bluetooth_mode : returns %s\n",
8969 __bt_get_error_message(ret));
8970 __bt_free_test_param(&g_test_param);
8973 case BT_UNIT_TEST_FUNCTION_DPM_GET_ALLOW_BLUETOOTH_MODE: {
8974 bt_dpm_allow_e value = BT_DPM_ERROR;
8975 ret = bt_dpm_get_allow_bluetooth_mode(&value);
8976 TC_PRT("bt_dpm_get_allow_bluetooth_mode : allow: %d, returns %s\n",
8977 value , __bt_get_error_message(ret));
8980 case BT_UNIT_TEST_FUNCTION_DPM_ACTIVATE_DEVICE_RESTRICTION: {
8982 if (g_test_param.param_count < 1) {
8983 TC_PRT("Input parameters first");
8986 value = atoi(g_test_param.params[0]);
8988 ret = bt_dpm_activate_device_restriction(value);
8989 TC_PRT("bt_dpm_activate_device_restriction : returns %s\n",
8990 __bt_get_error_message(ret));
8991 __bt_free_test_param(&g_test_param);
8994 case BT_UNIT_TEST_FUNCTION_DPM_IS_DEVICE_RESTRICTIO_ACTIVATE: {
8995 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
8996 ret = bt_dpm_is_device_restriction_active(&value);
8997 TC_PRT("bt_dpm_is_device_restriction_active : allow: %d, returns %s\n",
8998 value, __bt_get_error_message(ret));
9001 case BT_UNIT_TEST_FUNCTION_DPM_ACTIVATE_UUID_RESTRICTION: {
9003 if (g_test_param.param_count < 1) {
9004 TC_PRT("Input parameters first");
9007 value = atoi(g_test_param.params[0]);
9009 ret = bt_dpm_activate_uuid_restriction(value);
9010 TC_PRT("bt_dpm_activate_uuid_restriction : returns %s\n",
9011 __bt_get_error_message(ret));
9012 __bt_free_test_param(&g_test_param);
9015 case BT_UNIT_TEST_FUNCTION_DPM_IS_UUID_RESTRICTIO_ACTIVATE: {
9016 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9017 ret = bt_dpm_is_uuid_restriction_active(&value);
9018 TC_PRT("bt_dpm_is_uuid_restriction_active : allow: %d, returns %s\n",
9019 value, __bt_get_error_message(ret));
9022 case BT_UNIT_TEST_FUNCTION_DPM_ADD_DEVICES_TO_BLACKLIST:
9023 if (g_test_param.param_count < 1) {
9024 TC_PRT("Input parameters first");
9028 ret = bt_dpm_add_devices_to_blacklist(g_test_param.params[0]);
9029 TC_PRT("bt_dpm_add_devices_to_blacklist : returns %s\n",
9030 __bt_get_error_message(ret));
9031 __bt_free_test_param(&g_test_param);
9033 case BT_UNIT_TEST_FUNCTION_DPM_ADD_DEVICES_TO_WHITELIST:
9034 if (g_test_param.param_count < 1) {
9035 TC_PRT("Input parameters first");
9039 ret = bt_dpm_add_devices_to_whitelist(g_test_param.params[0]);
9040 TC_PRT("bt_dpm_add_devices_to_whitelist : returns %s\n",
9041 __bt_get_error_message(ret));
9042 __bt_free_test_param(&g_test_param);
9044 case BT_UNIT_TEST_FUNCTION_DPM_ADD_UUIDS_TO_BLACKLIST:
9045 if (g_test_param.param_count < 1) {
9046 TC_PRT("Input parameters first");
9050 ret = bt_dpm_add_uuids_to_blacklist(g_test_param.params[0]);
9051 TC_PRT("bt_dpm_add_uuids_to_blacklist : returns %s\n",
9052 __bt_get_error_message(ret));
9053 __bt_free_test_param(&g_test_param);
9055 case BT_UNIT_TEST_FUNCTION_DPM_ADD_UUIDS_TO_WHITELIST:
9056 if (g_test_param.param_count < 1) {
9057 TC_PRT("Input parameters first");
9061 ret = bt_dpm_add_uuids_to_whitelist(g_test_param.params[0]);
9062 TC_PRT("bt_dpm_add_uuids_to_whitelist : returns %s\n",
9063 __bt_get_error_message(ret));
9064 __bt_free_test_param(&g_test_param);
9066 case BT_UNIT_TEST_FUNCTION_DPM_GET_DEVICES_FROM_BLACKLIST: {
9067 bt_dpm_device_list_s *device_list = NULL;
9070 ret = bt_dpm_get_devices_from_blacklist(&device_list);
9071 TC_PRT("bt_dpm_get_devices_from_blacklist : returns %s\n",
9072 __bt_get_error_message(ret));
9074 TC_PRT("list len %d", device_list->count);
9075 for (i = 0; i < device_list->count; i++) {
9076 str = g_strdup((const gchar*)device_list->devices[i]);
9077 TC_PRT("%d: %s\n", i, str);
9079 free(device_list->devices[i]);
9085 case BT_UNIT_TEST_FUNCTION_DPM_GET_DEVICES_FROM_WHITELIST: {
9086 bt_dpm_device_list_s *device_list = NULL;
9089 ret = bt_dpm_get_devices_from_whitelist(&device_list);
9090 TC_PRT("bt_dpm_get_devices_from_whitelist : returns %s\n",
9091 __bt_get_error_message(ret));
9094 TC_PRT("list len %d", device_list->count);
9095 for (i = 0; i < device_list->count; i++) {
9096 str = g_strdup((const gchar*)device_list->devices[i]);
9097 TC_PRT("%d: %s\n", i, str);
9099 free(device_list->devices[i]);
9105 case BT_UNIT_TEST_FUNCTION_DPM_GET_UUIDS_FROM_BLACKLIST: {
9106 bt_dpm_uuids_list_s *uuids_list = NULL;
9109 ret = bt_dpm_get_uuids_from_blacklist(&uuids_list);
9110 TC_PRT("bt_dpm_get_uuids_from_blacklist : returns %s\n",
9111 __bt_get_error_message(ret));
9114 TC_PRT("list len %d", uuids_list->count);
9115 for (i = 0; i < uuids_list->count; i++) {
9116 str = g_strdup(uuids_list->uuids[i]);
9117 TC_PRT("%d: %s\n", i, str);
9119 free(uuids_list->uuids[i]);
9125 case BT_UNIT_TEST_FUNCTION_DPM_GET_UUIDS_FROM_WHITELIST: {
9126 bt_dpm_uuids_list_s *uuids_list = NULL;
9129 ret = bt_dpm_get_uuids_from_whitelist(&uuids_list);
9130 TC_PRT("bt_dpm_get_uuids_from_whitelist : returns %s\n",
9131 __bt_get_error_message(ret));
9134 TC_PRT("list len %d", uuids_list->count);
9135 for (i = 0; i < uuids_list->count; i++) {
9136 str = g_strdup(uuids_list->uuids[i]);
9137 TC_PRT("%d: %s\n", i, str);
9139 free(uuids_list->uuids[i]);
9145 case BT_UNIT_TEST_FUNCTION_DPM_CLEAR_DEVICES_FROM_BLACKLIST:
9146 ret = bt_dpm_clear_devices_from_blacklist();
9147 TC_PRT("bt_dpm_clear_devices_from_blacklist : returns %s\n",
9148 __bt_get_error_message(ret));
9150 case BT_UNIT_TEST_FUNCTION_DPM_CLEAR_DEVICES_FROM_WHITELIST:
9151 ret = bt_dpm_clear_devices_from_whitelist();
9152 TC_PRT("bt_dpm_clear_devices_from_whitelist : returns %s\n",
9153 __bt_get_error_message(ret));
9155 case BT_UNIT_TEST_FUNCTION_DPM_CLEAR_UUIDS_FROM_BLACKLIST:
9156 ret = bt_dpm_clear_uuids_from_blacklist();
9157 TC_PRT("bt_dpm_clear_uuids_from_blacklist : returns %s\n",
9158 __bt_get_error_message(ret));
9160 case BT_UNIT_TEST_FUNCTION_DPM_CLEAR_UUIDS_FROM_WHITELIST:
9161 ret = bt_dpm_clear_uuids_from_whitelist();
9162 TC_PRT("bt_dpm_clear_uuids_from_whitelist : returns %s\n",
9163 __bt_get_error_message(ret));
9165 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_DEVICE_FROM_BLACKLIST:
9166 if (g_test_param.param_count < 1) {
9167 TC_PRT("Input parameters first");
9171 ret = bt_dpm_remove_device_from_blacklist(g_test_param.params[0]);
9172 TC_PRT("bt_dpm_add_devices_to_blacklist : returns %s\n",
9173 __bt_get_error_message(ret));
9174 __bt_free_test_param(&g_test_param);
9176 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_DEVICE_FROM_WHITELIST:
9177 if (g_test_param.param_count < 1) {
9178 TC_PRT("Input parameters first");
9182 ret = bt_dpm_remove_device_from_whitelist(g_test_param.params[0]);
9183 TC_PRT("bt_dpm_remove_device_from_whitelist : returns %s\n",
9184 __bt_get_error_message(ret));
9185 __bt_free_test_param(&g_test_param);
9187 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_UUIDS_FROM_BLACKLIST:
9188 if (g_test_param.param_count < 1) {
9189 TC_PRT("Input parameters first");
9193 ret = bt_dpm_remove_uuid_from_blacklist(g_test_param.params[0]);
9194 TC_PRT("bt_dpm_remove_device_from_blacklist : returns %s\n",
9195 __bt_get_error_message(ret));
9196 __bt_free_test_param(&g_test_param);
9198 case BT_UNIT_TEST_FUNCTION_DPM_REMOVE_UUIDS_FROM_WHITELIST:
9199 if (g_test_param.param_count < 1) {
9200 TC_PRT("Input parameters first");
9204 ret = bt_dpm_remove_uuid_from_whitelist(g_test_param.params[0]);
9205 TC_PRT("bt_dpm_remove_uuid_from_whitelist : returns %s\n",
9206 __bt_get_error_message(ret));
9207 __bt_free_test_param(&g_test_param);
9209 case BT_UNIT_TEST_FUNCTION_DPM_SET_ALLOW_OUTGOING_CALL: {
9211 if (g_test_param.param_count < 1) {
9212 TC_PRT("Input parameters first");
9215 value = atoi(g_test_param.params[0]);
9217 ret = bt_dpm_set_allow_outgoing_call(value);
9218 TC_PRT("bt_dpm_set_allow_outgoing_call : returns %s\n",
9219 __bt_get_error_message(ret));
9220 __bt_free_test_param(&g_test_param);
9223 case BT_UNIT_TEST_FUNCTION_DPM_GET_ALLOW_OUTGOING_CALL: {
9224 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9225 ret = bt_dpm_get_allow_outgoing_call(&value);
9226 TC_PRT("bt_dpm_get_allow_outgoing_call : allow: %d, returns %s\n",
9227 value, __bt_get_error_message(ret));
9230 case BT_UNIT_TEST_FUNCTION_DPM_SET_PAIRING_STATE: {
9232 if (g_test_param.param_count < 1) {
9233 TC_PRT("Input parameters first");
9236 value = atoi(g_test_param.params[0]);
9238 ret = bt_dpm_set_pairing_state(value);
9239 TC_PRT("bt_dpm_set_pairing_state : returns %s\n",
9240 __bt_get_error_message(ret));
9241 __bt_free_test_param(&g_test_param);
9244 case BT_UNIT_TEST_FUNCTION_DPM_GET_PAIRING_STATE: {
9245 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9246 ret = bt_dpm_get_pairing_state(&value);
9247 TC_PRT("bt_dpm_get_pairing_state : allow: %d, returns %s\n",
9248 value, __bt_get_error_message(ret));
9251 case BT_UNIT_TEST_FUNCTION_DPM_SET_PROFILE_STATE: {
9253 if (g_test_param.param_count < 2) {
9254 TC_PRT("Input parameters first");
9257 profile = atoi(g_test_param.params[0]);
9258 value = atoi(g_test_param.params[1]);
9260 ret = bt_dpm_set_profile_state(profile, value);
9261 TC_PRT("bt_dpm_set_profile_state : returns %s\n",
9262 __bt_get_error_message(ret));
9263 __bt_free_test_param(&g_test_param);
9266 case BT_UNIT_TEST_FUNCTION_DPM_GET_PROFILE_STATE: {
9267 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9269 if (g_test_param.param_count < 1) {
9270 TC_PRT("Input parameters first");
9273 profile = atoi(g_test_param.params[0]);
9275 ret = bt_dpm_get_profile_state(profile, &value);
9276 TC_PRT("bt_dpm_get_profile_state : allow: %d, returns %s\n",
9277 value, __bt_get_error_message(ret));
9278 __bt_free_test_param(&g_test_param);
9281 case BT_UNIT_TEST_FUNCTION_DPM_SET_DESKTOP_CONNECTIVITY_STATE: {
9283 if (g_test_param.param_count < 1) {
9284 TC_PRT("Input parameters first");
9287 value = atoi(g_test_param.params[0]);
9289 ret = bt_dpm_set_desktop_connectivity_state(value);
9290 TC_PRT("bt_dpm_set_desktop_connectivity_state : returns %s\n",
9291 __bt_get_error_message(ret));
9292 __bt_free_test_param(&g_test_param);
9295 case BT_UNIT_TEST_FUNCTION_DPM_GET_DESKTOP_CONNECTIVITY_STATE: {
9296 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9297 ret = bt_dpm_get_desktop_connectivity_state(&value);
9298 TC_PRT("bt_dpm_get_desktop_connectivity_state : allow: %d, returns %s\n",
9299 value, __bt_get_error_message(ret));
9302 case BT_UNIT_TEST_FUNCTION_DPM_SET_DISCOVERABLE_STATE: {
9304 if (g_test_param.param_count < 1) {
9305 TC_PRT("Input parameters first");
9308 value = atoi(g_test_param.params[0]);
9309 ret = bt_dpm_set_discoverable_state(value);
9310 TC_PRT("bt_dpm_set_discoverable_state : returns %s\n",
9311 __bt_get_error_message(ret));
9312 __bt_free_test_param(&g_test_param);
9315 case BT_UNIT_TEST_FUNCTION_DPM_GET_DISCOVERABLE_STATE: {
9316 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9317 ret = bt_dpm_get_discoverable_state(&value);
9318 TC_PRT("bt_dpm_get_discoverable_state : allow: %d, returns %s\n",
9319 value, __bt_get_error_message(ret));
9322 case BT_UNIT_TEST_FUNCTION_DPM_SET_LIMITED_DISCOVERABLE_STATE: {
9324 if (g_test_param.param_count < 1) {
9325 TC_PRT("Input parameters first");
9328 value = atoi(g_test_param.params[0]);
9330 ret = bt_dpm_set_limited_discoverable_state(value);
9331 TC_PRT("bt_dpm_set_limited_discoverable_state : returns %s\n",
9332 __bt_get_error_message(ret));
9333 __bt_free_test_param(&g_test_param);
9336 case BT_UNIT_TEST_FUNCTION_DPM_GET_LIMITED_DISCOVERABLE_STATE: {
9337 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9338 ret = bt_dpm_get_limited_discoverable_state(&value);
9339 TC_PRT("bt_dpm_get_limited_discoverable_state : allow: %d, returns %s\n",
9340 value, __bt_get_error_message(ret));
9343 case BT_UNIT_TEST_FUNCTION_DPM_SET_DATA_TRANSFER_STATE: {
9345 if (g_test_param.param_count < 1) {
9346 TC_PRT("Input parameters first");
9349 value = atoi(g_test_param.params[0]);
9351 ret = bt_dpm_set_data_transfer_state(value);
9352 TC_PRT("bt_dpm_set_data_transfer_state : returns %s\n",
9353 __bt_get_error_message(ret));
9354 __bt_free_test_param(&g_test_param);
9357 case BT_UNIT_TEST_FUNCTION_DPM_GET_DATA_TRANSFER_STATE: {
9358 bt_dpm_status_e value = BT_DPM_STATUS_ERROR;
9359 ret = bt_dpm_get_data_transfer_state(&value);
9360 TC_PRT("bt_dpm_get_data_transfer_state : allow: %d, returns %s\n",
9361 value, __bt_get_error_message(ret));
9364 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
9365 need_to_set_params = true;
9366 TC_PRT("Select the function again");
9375 case BT_UNIT_TEST_TABLE_PXP: {
9377 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_REGISTER: {
9379 ret = bt_proximity_reporter_destroy(reporter);
9380 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9382 ret = bt_proximity_reporter_unset_property_changed_cb(reporter);
9383 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9385 ret = bt_proximity_reporter_unset_connection_state_changed_cb(reporter);
9386 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9389 ret = bt_proximity_reporter_create(&reporter);
9390 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9393 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNREGISTER: {
9394 ret = bt_proximity_reporter_unset_connection_state_changed_cb(reporter);
9395 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9397 ret = bt_proximity_reporter_unset_property_changed_cb(reporter);
9398 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9401 ret = bt_proximity_reporter_destroy(reporter);
9402 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9406 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CREATE: {
9408 ret = bt_proximity_monitor_disconnect(monitor);
9409 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9411 ret = bt_proximity_monitor_unset_connection_state_changed_cb(monitor);
9412 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9414 ret = bt_proximity_monitor_destroy(monitor);
9415 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9418 ret = bt_proximity_monitor_create(remote_addr, &monitor);
9419 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9423 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DESTROY: {
9424 ret = bt_proximity_monitor_unset_connection_state_changed_cb(monitor);
9425 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9427 ret = bt_proximity_monitor_destroy(monitor);
9428 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9432 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_CONNECT: {
9433 ret = bt_proximity_monitor_connect(monitor);
9434 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9437 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_DISCONNECT: {
9438 ret = bt_proximity_monitor_disconnect(monitor);
9439 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9442 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_CONNECTION_STATE_CHANGED_CB: {
9443 ret = bt_proximity_monitor_set_connection_state_changed_cb(monitor,
9444 __bt_proximity_monitor_connection_state_changed_cb,
9446 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9449 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_CONNECTION_STATE_CHANGED_CB: {
9450 ret = bt_proximity_monitor_unset_connection_state_changed_cb(monitor);
9451 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9454 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_CONNECTION_STATE_CHANGED_CB: {
9455 ret = bt_proximity_reporter_set_connection_state_changed_cb(reporter,
9456 __bt_proximity_reporter_connection_state_changed_cb,
9458 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9461 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_CONNECTION_STATE_CHANGED_CB: {
9462 ret = bt_proximity_reporter_unset_connection_state_changed_cb(reporter);
9463 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9466 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_SET_PROPERTIES_CHANGED_CB: {
9467 ret = bt_proximity_reporter_set_property_changed_cb(reporter,
9468 __bt_proximity_reporter_property_changed_cb,
9470 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9473 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_UNSET_PROPERTIES_CHANGED_CB: {
9474 ret = bt_proximity_reporter_unset_property_changed_cb(reporter);
9475 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9478 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_SET_SCAN_FILTER_SERVICE_UUID: {
9479 if (pxp_scan_filter) {
9480 ret = bt_adapter_le_scan_filter_unset_proximity_uuid(pxp_scan_filter);
9481 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9483 ret = bt_adapter_le_scan_filter_destroy(pxp_scan_filter);
9484 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9485 pxp_scan_filter = NULL;
9487 ret = bt_adapter_le_scan_filter_create(&pxp_scan_filter);
9488 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9490 ret = bt_adapter_le_scan_filter_set_type(pxp_scan_filter,
9491 BT_ADAPTER_LE_SCAN_FILTER_TYPE_PROXIMITY_UUID);
9492 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9494 ret = bt_adapter_le_scan_filter_register(pxp_scan_filter);
9495 if (ret != BT_ERROR_NONE)
9496 TC_PRT("failed with [0x%04x]", ret);
9500 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_UNSET_SCAN_FILTER_SERVICE_UUID: {
9501 ret = bt_adapter_le_scan_filter_unset_proximity_uuid(pxp_scan_filter);
9502 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9504 ret = bt_adapter_le_scan_filter_destroy(pxp_scan_filter);
9505 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9506 pxp_scan_filter = NULL;
9510 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_START_ADVERTISING: {
9511 /* Add Reporter service in advertising data */
9512 advertiser = advertiser_list[advertiser_index];
9513 if (advertiser == NULL) {
9514 ret = bt_adapter_le_create_advertiser(&advertiser);
9515 if (ret != BT_ERROR_NONE) {
9516 TC_PRT("created le advertiser(%d)", ret);
9520 advertiser_list[advertiser_index] = advertiser;
9521 ret = bt_adapter_le_set_advertising_device_name(advertiser,
9522 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, true);
9523 if (ret != BT_ERROR_NONE) {
9524 TC_PRT("set device name [0x%04x]", ret);
9529 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
9530 BT_ADAPTER_LE_PACKET_ADVERTISING, PXP_IMMEDIATE_ALERT_SVC_UUID);
9531 if (ret != BT_ERROR_NONE) {
9532 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
9536 ret = bt_adapter_le_add_advertising_service_solicitation_uuid(advertiser,
9537 BT_ADAPTER_LE_PACKET_ADVERTISING, PXP_LINK_LOSS_SVC_UUID);
9538 if (ret != BT_ERROR_NONE) {
9539 TC_PRT("add service_solicitation_uuid [0x%04x]", ret);
9543 /* Start advertising PXP Reporter service */
9544 bt_adapter_le_advertising_state_changed_cb cb;
9546 if (advertiser_index == 0) cb = __bt_adapter_le_advertising_state_changed_cb;
9547 else if (advertiser_index == 1) cb = __bt_adapter_le_advertising_state_changed_cb_2;
9548 else cb = __bt_adapter_le_advertising_state_changed_cb_3;
9550 advertiser = advertiser_list[advertiser_index];
9553 advertiser_index %= 3;
9555 TC_PRT("advertiser: %p", advertiser);
9557 ret = bt_adapter_le_start_advertising_new(advertiser, cb, NULL);
9558 if (ret < BT_ERROR_NONE)
9559 TC_PRT("failed with [0x%04x]", ret);
9563 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_LINKLOSS_ALERT: {
9565 if (g_test_param.param_count < 1) {
9566 TC_PRT("Input parameters first");
9570 alert_value = atoi(g_test_param.params[0]);
9571 ret = bt_proximity_monitor_set_linkloss_alert(monitor, alert_value);
9572 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9575 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_WRITE_IMMEDIATE_ALERT: {
9577 if (g_test_param.param_count < 1) {
9578 TC_PRT("Input parameters first");
9582 alert_value = atoi(g_test_param.params[0]);
9583 ret = bt_proximity_monitor_set_immediate_alert(monitor, alert_value);
9584 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9588 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_LINKLOSS_ALERT: {
9589 int alert_level = 0;
9590 ret = bt_proximity_monitor_get_linkloss_alert(monitor, &alert_level);
9591 TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
9594 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_IMMEDIATE_ALERT: {
9595 int alert_level = 0;
9596 ret = bt_proximity_monitor_get_immediate_alert(monitor, &alert_level);
9597 TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
9600 case BT_UNIT_TEST_FUNCTION_PXP_MONITOR_READ_SIGNAL_LEVEL: {
9601 int alert_level = 0;
9602 ret = bt_proximity_monitor_get_signal_level(monitor, &alert_level);
9603 TC_PRT("returns %s, signal_level: %d\n", __bt_get_error_message(ret), alert_level);
9606 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_LINKLOSS_ALERT: {
9607 int alert_level = 0;
9608 ret = bt_proximity_reporter_get_linkloss_alert(remote_addr, &alert_level);
9609 TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
9612 case BT_UNIT_TEST_FUNCTION_PXP_REPORTER_READ_IMMEDIATE_ALERT: {
9613 int alert_level = 0;
9614 ret = bt_proximity_reporter_get_immediate_alert(remote_addr, &alert_level);
9615 TC_PRT("returns %s, alert_level: %d\n", __bt_get_error_message(ret), alert_level);
9618 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
9619 need_to_set_params = true;
9620 TC_PRT("Select the function again");
9629 case BT_UNIT_TEST_TABLE_HF: {
9630 if (!TIZEN_PROFILE_WEARABLE_IVI)
9633 case BT_UNIT_TEST_FUNCTION_HF_INITIALIZE:
9634 ret = bt_hf_initialize();
9635 if (ret < BT_ERROR_NONE)
9636 TC_PRT("failed with [0x%04x]", ret);
9637 else if (ret == BT_ERROR_NONE)
9640 case BT_UNIT_TEST_FUNCTION_HF_DEINITIALIZE:
9641 ret = bt_hf_deinitialize();
9642 if (ret < BT_ERROR_NONE)
9643 TC_PRT("failed with [0x%04x]", ret);
9644 else if (ret == BT_ERROR_NONE)
9647 case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_ANSWER:
9648 ret = bt_hf_notify_call_event(
9649 BT_HF_CALL_EVENT_ANSWER,
9651 if (ret < BT_ERROR_NONE)
9652 TC_PRT("failed with [0x%04x]", ret);
9653 else if (ret == BT_ERROR_NONE)
9656 case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_SPEAKER_GAIN:
9657 ret = bt_hf_notify_speaker_gain(10);
9658 if (ret < BT_ERROR_NONE)
9659 TC_PRT("failed with [0x%04x]", ret);
9660 else if (ret == BT_ERROR_NONE)
9663 case BT_UNIT_TEST_FUNCTION_HF_SET_SPEAKER_GAIN_CB:
9664 ret = bt_hf_set_speaker_gain_changed_cb(
9665 __bt_hf_speaker_gain_changed_cb,
9667 if (ret < BT_ERROR_NONE)
9668 TC_PRT("failed with [0x%04x]", ret);
9669 else if (ret == BT_ERROR_NONE)
9672 case BT_UNIT_TEST_FUNCTION_HF_UNSET_SPEAKER_GAIN_CB:
9673 ret = bt_hf_unset_speaker_gain_changed_cb();
9674 if (ret < BT_ERROR_NONE)
9675 TC_PRT("failed with [0x%04x]", ret);
9676 else if (ret == BT_ERROR_NONE)
9679 case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_VOICE_REC_TRUE:
9680 ret = bt_hf_notify_voice_recognition_state(true);
9681 if (ret < BT_ERROR_NONE)
9682 TC_PRT("failed with [0x%04x]", ret);
9683 else if (ret == BT_ERROR_NONE)
9686 case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_TERM:
9687 ret = bt_hf_notify_call_event(
9688 BT_HF_CALL_EVENT_IDLE,
9690 if (ret < BT_ERROR_NONE)
9691 TC_PRT("failed with [0x%04x]", ret);
9692 else if (ret == BT_ERROR_NONE)
9695 case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_CALL_INIT:
9696 ret = bt_hf_notify_call_event(
9697 BT_HF_CALL_EVENT_DIAL,
9699 if (ret < BT_ERROR_NONE)
9700 TC_PRT("failed with [0x%04x]", ret);
9701 else if (ret == BT_ERROR_NONE)
9704 case BT_UNIT_TEST_FUNCTION_HF_NOTIFY_VOICE_REC_FALSE:
9705 ret = bt_hf_notify_voice_recognition_state(false);
9706 if (ret < BT_ERROR_NONE)
9707 TC_PRT("failed with [0x%04x]", ret);
9708 else if (ret == BT_ERROR_NONE)
9711 case BT_UNIT_TEST_FUNCTION_HF_IS_SCO_OPENED: {
9712 bool is_opened = false;
9713 ret = bt_hf_is_sco_opened(&is_opened);
9714 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9715 TC_PRT("Sco is opened [%s]", is_opened ? "YES" : "NO");
9718 case BT_UNIT_TEST_FUNCTION_HF_GET_CODEC_ID: {
9719 unsigned int codec_id = 0;
9720 ret = bt_hf_get_codec_id(&codec_id);
9721 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9722 TC_PRT("Codec ID [%d]", codec_id);
9725 case BT_UNIT_TEST_FUNCTION_HF_GET_CALL_STATUS_INFO_LIST: {
9727 ret = bt_hf_get_call_status_info_list(&list);
9729 if (ret < BT_ERROR_NONE)
9730 TC_PRT("failed with [0x%04x]", ret);
9732 for (; list; list = g_slist_next(list)) {
9733 bt_hf_call_status_info_s *call_info = list->data;
9734 TC_PRT("Call info [No:%s, Dir:%d, Stat:%d, Mpt:%d, Idx:%d]",
9735 call_info->number, call_info->direction,
9736 call_info->status, call_info->multi_party,
9739 bt_hf_free_call_status_info_list(list);
9743 case BT_UNIT_TEST_FUNCTION_HF_REQUEST_CALL_STATUS_INFO_LIST: {
9744 ret = bt_hf_request_call_status_info_list();
9745 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9748 case BT_UNIT_TEST_FUNCTION_HF_SET_SCO_CHANGED_CB:
9749 ret = bt_hf_set_sco_state_changed_cb(
9750 __bt_hf_sco_state_changed_cb, NULL);
9751 if (ret < BT_ERROR_NONE)
9752 TC_PRT("failed with [0x%04x]", ret);
9753 else if (ret == BT_ERROR_NONE)
9756 case BT_UNIT_TEST_FUNCTION_HF_UNSET_SCO_CHANGED_CB:
9757 ret = bt_hf_unset_sco_state_changed_cb();
9758 if (ret < BT_ERROR_NONE)
9759 TC_PRT("failed with [0x%04x]", ret);
9760 else if (ret == BT_ERROR_NONE)
9763 case BT_UNIT_TEST_FUNCTION_HF_SET_CALL_EVENT_CB:
9764 ret = bt_hf_set_call_handling_event_cb(
9765 __bt_hf_set_call_handling_event_cb,
9767 if (ret < BT_ERROR_NONE)
9768 TC_PRT("failed with [0x%04x]", ret);
9769 else if (ret == BT_ERROR_NONE)
9772 case BT_UNIT_TEST_FUNCTION_HF_UNSET_CALL_EVENT_CB:
9773 ret = bt_hf_unset_call_handling_event_cb();
9774 if (ret < BT_ERROR_NONE)
9775 TC_PRT("failed with [0x%04x]", ret);
9776 else if (ret == BT_ERROR_NONE)
9779 case BT_UNIT_TEST_FUNCTION_HF_SET_CALL_STATUS_UPDATED_EVENT_CB:
9780 ret = bt_hf_set_call_status_updated_event_cb(
9781 __bt_hf_call_status_updated_event_cb,
9783 if (ret < BT_ERROR_NONE)
9784 TC_PRT("failed with [0x%04x]", ret);
9785 else if (ret == BT_ERROR_NONE)
9788 case BT_UNIT_TEST_FUNCTION_HF_UNSET_CALL_STATUS_UPDATED_EVENT_CB:
9789 ret = bt_hf_unset_call_status_updated_event_cb();
9790 if (ret < BT_ERROR_NONE)
9791 TC_PRT("failed with [0x%04x]", ret);
9792 else if (ret == BT_ERROR_NONE)
9795 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
9796 need_to_set_params = true;
9797 TC_PRT("Select the function again");
9806 case BT_UNIT_TEST_TABLE_PBAP_CLIENT: {
9807 if (!TIZEN_PROFILE_WEARABLE_IVI)
9811 /*PBAP Test Cases */
9812 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_INITIALIZE:
9813 ret = bt_pbap_client_initialize();
9814 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9816 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_DEINITIALIZE:
9817 ret = bt_pbap_client_deinitialize();
9818 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9820 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_SET_CONNECTION_STATE_CHANGED_CB: {
9821 ret = bt_pbap_client_set_connection_state_changed_cb(__bt_pbap_connection_state_changed_cb,
9823 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9826 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_UNSET_CONNECTION_STATE_CHANGED_CB: {
9827 ret = bt_pbap_client_unset_connection_state_changed_cb();
9828 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9831 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_CONNECT: {
9832 ret = bt_pbap_client_connect(remote_addr);
9833 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9836 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_DISCONNECT: {
9837 ret = bt_pbap_client_disconnect(remote_addr);
9838 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9841 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_IS_CONNECTED: {
9842 bool connected_status = false;
9844 ret = bt_pbap_client_is_connected(remote_addr, &connected_status);
9845 if (ret < BT_ERROR_NONE)
9846 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9848 TC_PRT("PBAP Profile [%s]",
9849 connected_status ? "Connected" : "Disconnected");
9852 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_GETSIZE: {
9853 ret = bt_pbap_client_get_phone_book_size(remote_addr,
9855 __bt_pbap_phonebook_size_cb,
9857 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9860 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_PHONEBOOKPULL: {
9861 unsigned int fields = BT_PBAP_FIELD_PHOTO | BT_PBAP_FIELD_EMAIL | BT_PBAP_FIELD_ORG | BT_PBAP_FIELD_X_IRMC_CALL_DATETIME;
9863 ret = bt_pbap_client_get_phone_book(remote_addr,
9865 fields, __bt_pbap_phonebook_pull_cb,
9867 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9870 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDLIST: {
9871 ret = bt_pbap_client_get_list(remote_addr,
9873 __bt_pbap_vcard_list_cb,
9875 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9878 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDPULL: {
9879 long long unsigned fields = BT_PBAP_FIELD_PHOTO | BT_PBAP_FIELD_EMAIL | BT_PBAP_FIELD_ORG;
9880 ret = bt_pbap_client_pull_vcard(remote_addr,
9882 __bt_pbap_phonebook_pull_cb,
9884 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9887 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_PHONEBOOKSEARCH: {
9888 ret = bt_pbap_client_search_phone_book(remote_addr,
9892 __bt_pbap_vcard_list_cb,
9894 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9897 case BT_UNIT_TEST_FUNCTION_PBAP_CLIENT_VCARDLIST_MAXLIST_ZERO: {
9898 ret = bt_pbap_client_get_list(remote_addr,
9900 __bt_pbap_vcard_list_cb,
9902 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9906 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
9907 need_to_set_params = true;
9908 TC_PRT("Select the function again");
9917 case BT_UNIT_TEST_TABLE_TDS_PROVIDER: {
9919 case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_REGISTER: {
9920 ret = bt_tds_provider_register();
9921 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9924 case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNREGISTER: {
9925 ret = bt_tds_provider_unregister();
9926 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9930 case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_SET_ACT_REQ_CB: {
9931 ret = bt_tds_set_transport_activation_requested_cb(__tds_activation_req_cb, NULL);
9932 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9935 case BT_UNIT_TEST_FUNCTION_TDS_PROVIDER_UNSET_ACT_REQ_CB: {
9936 ret = bt_tds_unset_transport_activation_requested_cb();
9937 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9940 case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_CREATE: {
9942 ret = bt_tds_provider_destroy(provider);
9943 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9947 ret = bt_tds_provider_create(&provider, BT_TDS_TRANSPORT_CUSTOM);
9948 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9951 case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_DESTROY: {
9952 ret = bt_tds_provider_destroy(provider);
9953 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9957 case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_TRANSPORT_DATA: {
9958 unsigned char buf[] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, /* Mac */
9959 0x20, 0xFA, /* Operating Channel */
9960 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}; /* Hash */
9962 ret = bt_tds_provider_set_transport_data(provider,
9963 BT_TDS_TRANSPORT_STATE_OFF, buf, sizeof(buf));
9964 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9967 case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SET_MANUF_DATA: {
9968 unsigned char buf[] = {0x00, 0x75, 0x4E, 0x24, 0x36, 0x28, 0x01, 0x13};
9970 ret = bt_tds_provider_set_manufacturer_data(buf, sizeof(buf));
9971 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9974 case BT_UNIT_TEST_FUNCTION_TDS_CUSTOM_PROVIDER_SEND_ACTIVATION_RESP: {
9975 ret = bt_tds_provider_send_activation_resp(
9976 tds_act_address, BLUETOOTH_ERROR_NONE, provider);
9977 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9985 case BT_UNIT_TEST_TABLE_TDS_SEEKER: {
9987 case BT_UNIT_TEST_FUNCTION_TDS_START_DISCOVERING_PROVIDER: {
9988 ret = bt_tds_start_seeking_providers(__bt_tds_provider_scan_result_cb, NULL);
9989 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9992 case BT_UNIT_TEST_FUNCTION_TDS_STOP_DISCOVERING_PROVIDER: {
9993 ret = bt_tds_stop_seeking_providers();
9994 TC_PRT("returns %s\n", __bt_get_error_message(ret));
9997 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CREATE: {
10000 ret = bt_tds_seeker_create(remote_addr, &seeker);
10001 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10004 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DESTROY: {
10006 ret = bt_tds_seeker_destroy(seeker);
10007 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10011 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_SET_CONNECTION_CALLBACK: {
10013 ret = bt_tds_seeker_set_connection_state_changed_cb(seeker,
10014 __bt_tds_seeker_connection_state_changed_cb, NULL);
10015 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10019 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_CONNECT: {
10021 ret = bt_tds_seeker_connect(seeker);
10022 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10026 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_DISCONNECT: {
10028 ret = bt_tds_seeker_disconnect(seeker);
10029 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10033 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_UNSET_CONNECTION_CALLBACK: {
10035 ret = bt_tds_seeker_unset_connection_state_changed_cb(seeker);
10036 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10040 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_GET_COMPLETE_DATA: {
10042 ret = bt_tds_seeker_get_complete_transport_blocks(seeker,
10043 __bt_tds_seeker_complete_transport_data_cb, NULL);
10044 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10048 case BT_UNIT_TEST_FUNCTION_TDS_SEEKER_ACTIVATE_CONTROL_POINT: {
10050 unsigned char buf[] = {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, /* Mac */
10051 0x0A, 0x0B}; /* Channel Info */
10052 bt_tds_transport_e transport = BT_TDS_TRANSPORT_CUSTOM;
10053 ret = bt_tds_seeker_activate_control_point(seeker, transport, buf, sizeof(buf),
10054 __bt_tds_control_point_activation_result_cb, NULL);
10055 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10064 case BT_UNIT_TEST_TABLE_OTP: {
10066 case BT_UNIT_TEST_FUNCTION_OTP_SERVER_INIT: {
10067 char *directory = NULL;
10069 if (g_test_param.param_count < 1)
10070 TC_PRT("No relative path set");
10072 directory = g_test_param.params[0];
10074 TC_PRT("%s", directory);
10076 ret = bt_otp_server_initialize(directory);
10077 if (ret < BT_ERROR_NONE)
10078 TC_PRT("failed with [0x%04x]", ret);
10079 else if (ret == BT_ERROR_NONE)
10081 /* __bt_free_test_param(&g_test_param); */
10084 case BT_UNIT_TEST_FUNCTION_OTP_SERVER_DEINIT: {
10085 ret = bt_otp_server_deinitialize();
10086 if (ret < BT_ERROR_NONE)
10087 TC_PRT("failed with [0x%04x]", ret);
10088 else if (ret == BT_ERROR_NONE)
10092 case BT_UNIT_TEST_FUNCTION_OTP_SET_SERVER_STATE_CHANGED_CB: {
10093 ret = bt_otp_set_server_state_changed_cb(
10094 __bt_otp_server_state_changed_cb, NULL);
10095 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10098 case BT_UNIT_TEST_FUNCTION_OTP_UNSET_SERVER_STATE_CHANGED_CB: {
10099 ret = bt_otp_unset_server_state_changed_cb();
10100 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10103 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE: {
10106 ret = bt_otp_client_create(remote_addr, &otp_client);
10107 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10110 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DESTROY: {
10112 ret = bt_otp_client_destroy(otp_client);
10113 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10117 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SET_CONNECTION_CALLBACK: {
10119 ret = bt_otp_client_set_connection_state_changed_cb(otp_client,
10120 __bt_otp_client_connection_state_changed_cb, NULL);
10121 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10125 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CONNECT: {
10127 ret = bt_otp_client_connect(otp_client);
10128 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10132 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCONNECT: {
10134 ret = bt_otp_client_disconnect(otp_client);
10135 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10139 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_UNSET_CONNECTION_CALLBACK: {
10141 ret = bt_otp_client_unset_connection_state_changed_cb(otp_client);
10142 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10146 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DISCOVER_ALL_OBJECTS: {
10148 ret = bt_otp_client_discover_all_objects(otp_client,
10149 __bt_otp_client_object_discovery_cb, NULL);
10150 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10154 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_SELECT_OBJ: {
10156 unsigned long long id;
10157 if (g_test_param.param_count < 1) {
10158 TC_PRT("Input parameters first");
10162 id = (unsigned long long)atoi(g_test_param.params[0]);
10163 TC_PRT("Object ID[%llu]", id);
10164 ret = bt_otp_client_select_object(otp_client, id,
10165 __bt_otp_client_object_select_cb, NULL);
10166 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10170 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_READ_OBJ_CONTENTS: {
10172 ret = bt_otp_client_read_object_contents(otp_client,
10173 __bt_otp_client_read_object_complete_cb, NULL);
10174 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10178 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_CREATE_OBJ: {
10179 char *file_path = NULL;
10180 if (g_test_param.param_count < 1) {
10181 TC_PRT("Input parameters first");
10185 file_path = g_test_param.params[0];
10186 TC_PRT("%s", file_path);
10189 ret = bt_otp_client_create_object(otp_client,
10190 file_path, __bt_otp_client_object_create_cb, NULL);
10191 if (ret < BT_ERROR_NONE)
10192 TC_PRT("failed with [0x%04x]", ret);
10193 else if (ret == BT_ERROR_NONE)
10196 __bt_free_test_param(&g_test_param);
10199 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_WRITE_OBJ: {
10200 char *file_path = NULL;
10201 int offset, length, mode;
10203 if (g_test_param.param_count < 4) {
10204 TC_PRT("Input parameters first");
10208 file_path = g_test_param.params[0];
10209 TC_PRT("%s", file_path);
10211 offset = strtoul(g_test_param.params[1], NULL, 10);
10212 length = strtoul(g_test_param.params[2], NULL, 10);
10213 mode = strtoul(g_test_param.params[3], NULL, 10);
10216 ret = bt_otp_client_write_object(otp_client,
10217 file_path, offset, length, mode,
10218 __bt_otp_client_object_write_cb, NULL);
10219 if (ret < BT_ERROR_NONE)
10220 TC_PRT("failed with [0x%04x]", ret);
10221 else if (ret == BT_ERROR_NONE)
10224 __bt_free_test_param(&g_test_param);
10227 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_EXECUTE_OBJ: {
10229 ret = bt_otp_client_execute_object(otp_client,
10230 __bt_otp_client_object_execute_cb, NULL);
10231 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10235 case BT_UNIT_TEST_FUNCTION_OTP_CLIENT_DELETE_OBJ: {
10237 ret = bt_otp_client_delete_object(otp_client,
10238 __bt_otp_client_object_delete_cb, NULL);
10239 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10243 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
10244 need_to_set_params = true;
10245 TC_PRT("Select the function again");
10252 case BT_UNIT_TEST_TABLE_HRP_SENSOR: {
10254 case BT_UNIT_TEST_FUNCTION_HR_SENSOR_SET_LOC_VALUE: {
10255 TC_PRT("HR SENSOR SET LOC VALUE\n");
10256 bt_body_sensor_location_e location = BT_BSL_WRIST;
10257 bt_hrp_sensor_set_location_value(location);
10261 case BT_UNIT_TEST_FUNCTION_HR_SENSOR_SET_CONTACT_VALUE: {
10262 TC_PRT("HR SENSOR SET CONTACT VALUE\n");
10263 bool iscontact = true;
10264 bt_hrp_sensor_set_contact_value(iscontact);
10267 case BT_UNIT_TEST_FUNCTION_HR_SENSOR_SET_DEVICE_NAME: {
10268 TC_PRT("HR SENSOR SET DEVICE NAME\n");
10269 char *name = g_strdup("SAMSUNG HR");
10270 bt_hrp_sensor_set_device_manufacturer_name(name);
10273 case BT_UNIT_TEST_FUNCTION_HR_SENSOR_CREATE: {
10274 TC_PRT("HR SENSOR CREATE\n");
10275 ret = bt_hrp_sensor_create();
10276 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10279 case BT_UNIT_TEST_FUNCTION_HR_SENSOR_NOTIFY: {
10280 TC_PRT("HR SENSOR UPDATE HR value\n");
10281 bt_hrp_sensor_set_heartrate_value(60 + (rand()%60));
10284 case BT_UNIT_TEST_FUNCTION_HR_SENSOR_DESTORY: {
10285 TC_PRT("HR SENSOR DESTROY\n");
10286 ret = bt_hrp_sensor_destroy();
10287 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10295 case BT_UNIT_TEST_TABLE_HRP_COLLECTOR: {
10297 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_CONNECTION_STATE_CALLBACK: {
10298 TC_PRT("HR COLLECTOR CONNECTION STATE CALLBACK\n");
10300 ret = bt_hrp_collector_set_connection_state_changed_cb(collector,
10301 __bt_hrp_collector_connection_state_changed_cb, NULL);
10302 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10306 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_SET_NOTIFICATION: {
10307 TC_PRT("HR COLLECTOR SET NOTIFICATION\n");
10308 if (set_notif == true) {
10310 ret = bt_hrp_collector_set_notification(collector,
10311 __bt_hrp_heart_rate_value_changed_cb, true);
10312 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10315 ret = bt_hrp_collector_set_notification(collector,
10316 __bt_hrp_heart_rate_value_changed_cb, false);
10317 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10321 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_CREATE: {
10322 TC_PRT("HR COLLECTOR CREATE\n");
10323 ret = bt_hrp_collector_create(remote_addr, &collector);
10324 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10327 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_START_SCAN: {
10328 TC_PRT("HR COLLECTOR START SCAN\n");
10329 ret = bt_hrp_collector_start_scan(__bt_adapter_le_scan_result_cb, NULL);
10330 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10333 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_STOP_SCAN: {
10334 TC_PRT("HR COLLECTOR STOP SCAN\n");
10335 ret = bt_hrp_collector_stop_scan();
10336 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10339 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_CONNECT: {
10340 TC_PRT("HR COLLECTOR CONNECT\n");
10341 ret = bt_hrp_collector_connect(collector);
10342 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10345 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_DISCONNECT: {
10346 TC_PRT("HR COLLECTOR DISCONNECT\n");
10347 ret = bt_hrp_collector_disconnect(collector);
10348 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10351 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_GET_BSL_LOC: {
10352 TC_PRT("HR COLLECTOR GET BSL LOCATION\n");
10354 ret = bt_hrp_collector_get_body_sensor_location(collector, _bt_hrp_collector_bsl_read_completed_cb);
10355 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10359 case BT_UNIT_TEST_FUNCTION_HR_COLLECTOR_DESTROY: {
10360 TC_PRT("HR COLLECTOR DESTROY\n");
10361 ret = bt_hrp_collector_destory(collector);
10362 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10372 case BT_UNIT_TEST_TABLE_ETC: {
10373 static unsigned int delay = 0;
10375 bt_onoff_cnt_success = 0;
10376 bt_onoff_cnt_fail = 0;
10379 gettimeofday(&check_time, NULL);
10381 if (input_automated_test_delay == true) {
10383 test_id = BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_N_SEC_DELAY;
10387 /*Automated Test Cases */
10388 case BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST: {
10389 bt_adapter_state_e state = BT_ADAPTER_DISABLED;
10392 ret = bt_adapter_set_state_changed_cb(
10393 __bt_repeat_test_adapter_state_changed_cb,
10395 TC_PRT("set_cb returns %s\n", __bt_get_error_message(ret));
10397 ret = bt_adapter_get_state(&state);
10398 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10399 TC_PRT("Current state: %d", state);
10401 if (state == BT_ADAPTER_DISABLED)
10402 bt_adapter_enable();
10404 bt_adapter_disable();
10407 case BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_1_SEC_DELAY: {
10408 bt_adapter_state_e state = BT_ADAPTER_DISABLED;
10411 ret = bt_adapter_set_state_changed_cb(
10412 __bt_repeat_test_adapter_state_changed_cb,
10414 TC_PRT("set_cb returns %s\n", __bt_get_error_message(ret));
10416 ret = bt_adapter_get_state(&state);
10417 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10418 TC_PRT("Current state: %d", state);
10420 if (state == BT_ADAPTER_DISABLED)
10421 bt_adapter_enable();
10423 bt_adapter_disable();
10426 case BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_N_SEC_DELAY: {
10427 bt_adapter_state_e state = BT_ADAPTER_DISABLED;
10429 input_automated_test_delay = false;
10431 ret = bt_adapter_set_state_changed_cb(
10432 __bt_repeat_test_adapter_state_changed_cb,
10434 TC_PRT("set_cb returns %s\n", __bt_get_error_message(ret));
10436 ret = bt_adapter_get_state(&state);
10437 TC_PRT("returns %s\n", __bt_get_error_message(ret));
10438 TC_PRT("Current state: %d", state);
10440 if (state == BT_ADAPTER_DISABLED)
10441 bt_adapter_enable();
10443 bt_adapter_disable();
10446 case BT_UNIT_TEST_FUNCTION_APP_CONTROL_DEFAULT: {
10447 char *mode = "setting";
10449 if (g_test_param.param_count > 0)
10450 mode = g_test_param.params[0];
10452 app_control_h service = NULL;
10454 app_control_create(&service);
10455 app_control_set_app_id(service, "com.samsung.bluetooth-single");
10456 app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT);
10457 app_control_add_extra_data(service, "launch-type", mode);
10458 ret = app_control_send_launch_request(service, NULL, NULL);
10459 TC_PRT("returns %d", ret);
10461 app_control_destroy(service);
10464 case BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_3_BT_ONOFF: {
10465 app_control_h service = NULL;
10467 app_control_create(&service);
10468 app_control_set_operation(service, APP_CONTROL_OPERATION_EDIT);
10469 app_control_set_mime(service, "application/x-bluetooth-on-off");
10471 ret = app_control_send_launch_request(service, NULL, NULL);
10472 TC_PRT("returns %d", ret);
10474 app_control_destroy(service);
10478 case BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_3_BT_VISIBILITY: {
10479 app_control_h service = NULL;
10481 app_control_create(&service);
10482 app_control_set_operation(service, APP_CONTROL_OPERATION_EDIT);
10483 app_control_set_mime(service, "application/x-bluetooth-visibility");
10485 ret = app_control_send_launch_request(service, NULL, NULL);
10486 TC_PRT("returns %d", ret);
10488 app_control_destroy(service);
10492 case BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_4_BT_ONOFF: {
10493 app_control_h service = NULL;
10495 app_control_create(&service);
10496 app_control_set_operation(service, APP_CONTROL_OPERATION_SETTING_BT_ENABLE);
10498 ret = app_control_send_launch_request(service, NULL, NULL);
10499 TC_PRT("returns %d", ret);
10501 app_control_destroy(service);
10505 case BT_UNIT_TEST_FUNCTION_APP_CONTROL_2_4_BT_VISIBILITY: {
10506 app_control_h service = NULL;
10508 app_control_create(&service);
10509 app_control_set_operation(service, APP_CONTROL_OPERATION_SETTING_BT_VISIBILITY);
10511 ret = app_control_send_launch_request(service, NULL, NULL);
10512 TC_PRT("returns %d", ret);
10514 app_control_destroy(service);
10518 case BT_UNIT_TEST_FUNCTION_CHECK_FEATURE: {
10520 bool is_supported = false;
10522 if (g_test_param.param_count > 0) {
10523 ret = system_info_get_custom_bool(
10524 g_test_param.params[0], &is_supported);
10526 TC_PRT("returns %d", ret);
10527 TC_PRT("%s is %s", g_test_param.params[0],
10528 is_supported ? "true" : "false");
10529 __bt_free_test_param(&g_test_param);
10531 ret = system_info_get_custom_bool(
10532 "tizen.org/feature/network.bluetooth", &is_supported);
10534 TC_PRT("returns %d", ret);
10535 TC_PRT("tizen.org/feature/network.bluetooth is %s",
10536 is_supported ? "true" : "false");
10541 case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
10542 need_to_set_params = true;
10543 TC_PRT("Select the function again");
10558 static gboolean key_event_cb(GIOChannel *chan,
10562 char buf[BUFFER_LEN] = { 0 };
10565 unsigned long len = 0;
10567 unsigned int len = 0;
10570 bool is_call_api = false;
10572 memset(buf, 0, sizeof(buf));
10574 if (g_io_channel_read_chars(chan, buf, sizeof(buf),
10575 &len, NULL) == G_IO_STATUS_ERROR) {
10576 TC_PRT("IO Channel read error");
10580 if (need_to_set_params == true) {
10581 if (g_test_id == -1) {
10582 test_id = atoi(buf);
10583 g_test_id = test_id;
10585 test_set_params(g_test_id, buf);
10589 test_id = atoi(buf);
10592 need_to_set_params = false;
10595 if (current_tc_table == BT_UNIT_TEST_TABLE_MAIN) {
10596 if (buf[0] == '0' && buf[2] == 0)
10597 current_tc_table = BT_UNIT_TEST_TABLE_SET_ADDRESS;
10598 else if (test_id >= BT_UNIT_TEST_TABLE_ADAPTER
10599 && test_id < BT_UNIT_TEST_TABLE_FINISH)
10600 current_tc_table = test_id;
10602 is_call_api = true;
10604 if (buf[0] == '0' && buf[2] == 0) {
10605 current_tc_table = BT_UNIT_TEST_TABLE_MAIN;
10606 } else if (current_tc_table == BT_UNIT_TEST_TABLE_ETC
10607 && test_id == BT_UNIT_TEST_FUNCTION_ON_OFF_REPEAT_TEST_N_SEC_DELAY
10608 && input_automated_test_delay == false) {
10609 input_automated_test_delay = true;
10611 is_call_api = true;
10617 if (current_tc_table == BT_UNIT_TEST_TABLE_SET_ADDRESS
10618 && is_call_api == true) {
10619 memcpy(remote_addr, buf, 17);
10620 remote_addr[17] = 0;
10621 } else if (test_id && is_call_api)
10623 g_idle_add(test_input_callback, (void *)(uintptr_t)test_id);
10625 g_idle_add(test_input_callback, (void *)test_id);
10630 void sig_handler(int signo)
10632 if (signo == SIGINT) {
10633 if (bt_onoff_cnt > 0)
10634 __bt_print_repeat_test_final_summary();
10643 GIOChannel *key_io;
10645 current_tc_table = BT_UNIT_TEST_TABLE_MAIN;
10647 key_io = g_io_channel_unix_new(fileno(stdin));
10649 g_io_channel_set_encoding(key_io, NULL, NULL);
10650 g_io_channel_set_flags(key_io, G_IO_FLAG_NONBLOCK, NULL);
10652 g_io_add_watch(key_io, G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
10653 key_event_cb, NULL);
10655 g_io_channel_unref(key_io);
10657 main_loop = g_main_loop_new(NULL, FALSE);
10659 if (signal(SIGINT, sig_handler) == SIG_ERR)
10660 TC_PRT("\n can't catch SIGINT\n");
10662 g_main_loop_run(main_loop);