// SPDX-License-Identifier: Apache-2.0 /* * Copyright (C) 2014 Intel Corporation * */ #define _GNU_SOURCE #include #include "emulator/bthost.h" #include "src/shared/tester.h" #include "src/shared/queue.h" #include "tester-main.h" static struct queue *list; /* List of bluetooth test cases */ static bt_bdaddr_t emu_bdaddr_val = { .address = { 0x00, 0xaa, 0x01, 0x00, 0x00, 0x00 }, }; static bt_property_t prop_emu_bdaddr = { .type = BT_PROPERTY_BDADDR, .val = &emu_bdaddr_val, .len = sizeof(emu_bdaddr_val), }; static char emu_bdname_val[] = "BlueZ for Android"; static bt_property_t prop_emu_bdname = { .type = BT_PROPERTY_BDNAME, .val = &emu_bdname_val, .len = sizeof(emu_bdname_val) - 1, }; static char emu_uuids_val[] = { /* Multi profile UUID */ 0x00, 0x00, 0x11, 0x3b, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB, /* Device identification profile UUID */ 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB, }; static bt_property_t prop_emu_uuids = { .type = BT_PROPERTY_UUIDS, .val = &emu_uuids_val, .len = sizeof(emu_uuids_val), }; static uint32_t emu_cod_val = 0x00020c; static bt_property_t prop_emu_cod = { .type = BT_PROPERTY_CLASS_OF_DEVICE, .val = &emu_cod_val, .len = sizeof(emu_cod_val), }; static bt_device_type_t emu_tod_dual_val = BT_DEVICE_DEVTYPE_DUAL; static bt_property_t prop_emu_dual_tod = { .type = BT_PROPERTY_TYPE_OF_DEVICE, .val = &emu_tod_dual_val, .len = sizeof(emu_tod_dual_val), }; static bt_scan_mode_t emu_scan_mode_val = BT_SCAN_MODE_NONE; static bt_property_t prop_emu_scan_mode = { .type = BT_PROPERTY_ADAPTER_SCAN_MODE, .val = &emu_scan_mode_val, .len = sizeof(emu_scan_mode_val), }; static uint32_t emu_disc_timeout_val = 120; static bt_property_t prop_emu_disc_timeout = { .type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT, .val = &emu_disc_timeout_val, .len = sizeof(emu_disc_timeout_val), }; static bt_property_t prop_emu_bonded_devs = { .type = BT_PROPERTY_ADAPTER_BONDED_DEVICES, .val = NULL, .len = 0, }; static bt_bdaddr_t emu_remote_bdaddr_val = { .address = { 0x00, 0xaa, 0x01, 0x01, 0x00, 0x00 }, }; static bt_property_t prop_emu_remote_bdadr = { .type = BT_PROPERTY_BDADDR, .val = &emu_remote_bdaddr_val, .len = sizeof(emu_remote_bdaddr_val), }; static struct bt_action_data prop_emu_remote_ble_bdaddr_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_BDADDR, }; static uint32_t emu_remote_type_val = BT_DEVICE_DEVTYPE_BREDR; static uint32_t emu_remote_tod_ble_val = BT_DEVICE_DEVTYPE_BLE; static bt_property_t prop_emu_remote_ble_tod_prop = { .type = BT_PROPERTY_TYPE_OF_DEVICE, .val = &emu_remote_tod_ble_val, .len = sizeof(emu_remote_tod_ble_val), }; static struct bt_action_data prop_emu_remote_ble_tod_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_TYPE_OF_DEVICE, }; static int32_t emu_remote_rssi_val = -60; static int32_t emu_remote_ble_rssi_val = 127; static bt_property_t prop_emu_remote_ble_rssi_prop = { .type = BT_PROPERTY_REMOTE_RSSI, .val = &emu_remote_ble_rssi_val, .len = sizeof(emu_remote_ble_rssi_val), }; static struct bt_action_data prop_emu_remote_ble_rssi_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_REMOTE_RSSI, }; static char emu_remote_bdname_val[] = "00:AA:01:01:00:00"; static bt_property_t prop_emu_remote_ble_bdname_prop = { .type = BT_PROPERTY_BDNAME, .val = &emu_remote_bdname_val, .len = sizeof(emu_remote_bdname_val) - 1, }; static struct bt_action_data prop_emu_remote_ble_bdname_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_BDNAME, }; static uint32_t emu_remote_cod_val = 0; static bt_property_t prop_emu_remote_ble_cod_prop = { .type = BT_PROPERTY_CLASS_OF_DEVICE, .val = &emu_remote_cod_val, .len = sizeof(emu_remote_cod_val), }; static struct bt_action_data prop_emu_remote_ble_cod_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_CLASS_OF_DEVICE, }; static bt_property_t prop_emu_remote_ble_uuids_prop = { .type = BT_PROPERTY_UUIDS, .val = NULL, .len = 0, }; static struct bt_action_data prop_emu_remote_ble_uuids_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_UUIDS, }; static bt_property_t prop_emu_remote_ble_timestamp_prop = { .type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP, .val = NULL, .len = 4, }; static struct bt_action_data prop_emu_remote_ble_timestamp_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP, }; static struct bt_action_data prop_emu_remote_ble_scan_mode_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_ADAPTER_SCAN_MODE, }; static struct bt_action_data prop_emu_remote_ble_bondeddev_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_ADAPTER_BONDED_DEVICES, }; static struct bt_action_data prop_emu_remote_ble_disctimeout_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT, }; static struct bt_action_data prop_emu_remote_ble_verinfo_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_REMOTE_VERSION_INFO, }; static char prop_test_fname_val[] = "FriendlyTestName"; static bt_property_t prop_emu_remote_ble_fname_prop = { .type = BT_PROPERTY_REMOTE_FRIENDLY_NAME, .val = &prop_test_fname_val, .len = sizeof(prop_test_fname_val) - 1, }; static struct bt_action_data prop_emu_remote_ble_fname_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_REMOTE_FRIENDLY_NAME, .prop = &prop_emu_remote_ble_fname_prop, }; static bt_pin_code_t emu_pin_value = { .pin = { 0x30, 0x30, 0x30, 0x30 }, }; static bt_pin_code_t emu_pin_invalid_value = { .pin = { 0x30, 0x10, 0x30, 0x30 }, }; static struct bt_action_data emu_pin_set_req = { .addr = &emu_remote_bdaddr_val, .pin = &emu_pin_value, .pin_len = 4, }; static struct bt_action_data emu_pin_set_invalid_req = { .addr = &emu_remote_bdaddr_val, .pin = &emu_pin_invalid_value, .pin_len = 4, }; static bt_property_t prop_emu_default_set[] = { { BT_PROPERTY_BDADDR, sizeof(emu_bdaddr_val), NULL }, { BT_PROPERTY_BDNAME, sizeof(emu_bdname_val) - 1, &emu_bdname_val }, { BT_PROPERTY_CLASS_OF_DEVICE, sizeof(uint32_t), NULL }, { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_tod_dual_val), &emu_tod_dual_val }, { BT_PROPERTY_ADAPTER_SCAN_MODE, sizeof(emu_scan_mode_val), &emu_scan_mode_val }, { BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT, sizeof(emu_disc_timeout_val), &emu_disc_timeout_val}, { BT_PROPERTY_ADAPTER_BONDED_DEVICES, 0, NULL }, { BT_PROPERTY_UUIDS, sizeof(emu_uuids_val), &emu_uuids_val }, }; static bt_property_t prop_emu_remote_ble_default_set[] = { { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val), &emu_remote_bdaddr_val }, { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_remote_tod_ble_val), &emu_remote_tod_ble_val }, { BT_PROPERTY_REMOTE_RSSI, sizeof(emu_remote_ble_rssi_val), &emu_remote_ble_rssi_val }, }; static bt_property_t prop_emu_remote_bredr_default_set[] = { { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val), &emu_remote_bdaddr_val }, { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_remote_type_val), &emu_remote_type_val }, { BT_PROPERTY_REMOTE_RSSI, sizeof(emu_remote_rssi_val), &emu_remote_rssi_val }, }; static bt_property_t prop_emu_remote_any_default_set[] = { { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val), &emu_remote_bdaddr_val }, }; static bt_property_t prop_emu_remote_bles_query_set[] = { { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_remote_tod_ble_val), &emu_remote_tod_ble_val }, { BT_PROPERTY_CLASS_OF_DEVICE, sizeof(emu_remote_cod_val), &emu_remote_cod_val }, { BT_PROPERTY_REMOTE_RSSI, sizeof(emu_remote_ble_rssi_val), &emu_remote_ble_rssi_val }, { BT_PROPERTY_BDNAME, sizeof(emu_remote_bdname_val) - 1, &emu_remote_bdname_val }, { BT_PROPERTY_UUIDS, 0, NULL }, { BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP, 4, NULL }, }; static bt_property_t prop_emu_remotes_pin_req_set[] = { { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val), &emu_remote_bdaddr_val }, { BT_PROPERTY_CLASS_OF_DEVICE, sizeof(emu_remote_cod_val), &emu_remote_cod_val }, { BT_PROPERTY_BDNAME, sizeof(emu_remote_bdname_val) - 1, &emu_remote_bdname_val }, }; static char test_bdname[] = "test_bdname"; static bt_property_t prop_test_bdname = { .type = BT_PROPERTY_BDNAME, .val = test_bdname, .len = sizeof(test_bdname) - 1, }; static struct bt_action_data prop_test_remote_ble_bdname_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_BDNAME, .prop = &prop_test_bdname, }; static bt_scan_mode_t test_scan_mode_connectable_discoverable = BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE; static bt_property_t prop_test_scanmode_conn_discov = { .type = BT_PROPERTY_ADAPTER_SCAN_MODE, .val = &test_scan_mode_connectable_discoverable, .len = sizeof(bt_scan_mode_t), }; static uint32_t test_disctimeout_val = 600; static bt_property_t prop_test_disctimeout = { .type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT, .val = &test_disctimeout_val, .len = sizeof(test_disctimeout_val), }; static struct bt_action_data prop_test_remote_ble_disc_timeout_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT, .prop = &prop_test_disctimeout, }; static unsigned char test_uuids_val[] = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; static bt_property_t prop_test_uuid = { .type = BT_PROPERTY_UUIDS, .val = &test_uuids_val, .len = sizeof(test_uuids_val), }; static struct bt_action_data prop_test_remote_ble_uuids_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_UUIDS, .prop = &prop_test_uuid, }; static uint32_t test_cod_val = 0; static bt_property_t prop_test_cod = { .type = BT_PROPERTY_CLASS_OF_DEVICE, .val = &test_cod_val, .len = sizeof(test_cod_val), }; static struct bt_action_data prop_test_remote_ble_cod_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_CLASS_OF_DEVICE, .prop = &prop_test_cod, }; static uint32_t test_tod_val = BT_DEVICE_DEVTYPE_BLE; static bt_property_t prop_test_tod = { .type = BT_PROPERTY_TYPE_OF_DEVICE, .val = &test_tod_val, .len = sizeof(test_tod_val), }; static struct bt_action_data prop_test_remote_ble_tod_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_TYPE_OF_DEVICE, .prop = &prop_test_tod, }; static int32_t test_remote_rssi_val = -9; static bt_property_t prop_test_remote_rssi = { .type = BT_PROPERTY_REMOTE_RSSI, .val = &test_remote_rssi_val, .len = sizeof(test_remote_rssi_val), }; static struct bt_action_data prop_test_remote_ble_rssi_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_REMOTE_RSSI, .prop = &prop_test_remote_rssi, }; static bt_service_record_t test_srvc_record_val = { .uuid = { {0x00} }, .channel = 12, .name = "bt_name", }; static bt_property_t prop_test_srvc_record = { .type = BT_PROPERTY_SERVICE_RECORD, .val = &test_srvc_record_val, .len = sizeof(test_srvc_record_val), }; static struct bt_action_data prop_test_remote_ble_srvc_record_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_SERVICE_RECORD, .prop = &prop_test_srvc_record, }; static bt_bdaddr_t test_bdaddr_val = { .address = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, }; static bt_property_t prop_test_bdaddr = { .type = BT_PROPERTY_BDADDR, .val = &test_bdaddr_val, .len = sizeof(test_bdaddr_val), }; static struct bt_action_data prop_test_remote_ble_bdaddr_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_BDADDR, .prop = &prop_test_bdaddr, }; static struct bt_action_data prop_test_bdaddr_req = { .addr = &test_bdaddr_val, .prop_type = BT_PROPERTY_BDADDR, .prop = &prop_test_bdaddr, }; static bt_scan_mode_t setprop_scan_mode_conn_val = BT_SCAN_MODE_CONNECTABLE; static bt_property_t prop_test_scan_mode_conn = { .type = BT_PROPERTY_ADAPTER_SCAN_MODE, .val = &setprop_scan_mode_conn_val, .len = sizeof(setprop_scan_mode_conn_val), }; static bt_scan_mode_t test_scan_mode_none_val = BT_SCAN_MODE_NONE; static bt_property_t prop_test_scan_mode_none = { .type = BT_PROPERTY_ADAPTER_SCAN_MODE, .val = &test_scan_mode_none_val, .len = sizeof(test_scan_mode_none_val), }; static struct bt_action_data prop_test_remote_ble_scanmode_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_ADAPTER_SCAN_MODE, .prop = &prop_test_scan_mode_none, }; static bt_bdaddr_t test_bonded_dev_addr_val = { .address = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 }, }; static bt_property_t prop_test_bonded_dev_addr = { .type = BT_PROPERTY_ADAPTER_BONDED_DEVICES, .val = &test_bonded_dev_addr_val, .len = sizeof(test_bonded_dev_addr_val), }; static struct bt_action_data prop_test_ble_bonded_dev_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_ADAPTER_BONDED_DEVICES, .prop = &prop_test_bonded_dev_addr, }; static uint32_t test_remote_timestamp_val = 42; static bt_property_t prop_test_remote_ble_timestamp_prop = { .type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP, .val = &test_remote_timestamp_val, .len = sizeof(test_remote_timestamp_val), }; static struct bt_action_data prop_test_remote_ble_timestamp_req = { .addr = &emu_remote_bdaddr_val, .prop_type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP, .prop = &prop_test_remote_ble_timestamp_prop, }; static struct bt_action_data ssp_confirm_accept_reply = { .addr = &emu_remote_bdaddr_val, .ssp_variant = BT_SSP_VARIANT_PASSKEY_CONFIRMATION, .accept = TRUE, }; static struct bt_action_data ssp_confirm_reject_reply = { .addr = &emu_remote_bdaddr_val, .ssp_variant = BT_SSP_VARIANT_PASSKEY_CONFIRMATION, .accept = FALSE, }; static struct bt_action_data no_input_no_output_io_cap = { .io_cap = 0x03, }; static struct bt_action_data display_yes_no_io_cap = { .io_cap = 0x01, }; static uint16_t test_conn_handle = 0; static void conn_cb(uint16_t handle, void *user_data) { struct test_data *data = tester_get_data(); struct bthost *bthost = hciemu_client_get_host(data->hciemu); tester_print("New connection with handle 0x%04x", handle); test_conn_handle = handle; bthost_request_auth(bthost, handle); } static struct test_case test_cases[] = { TEST_CASE_BREDRLE("Bluetooth Init", ACTION_SUCCESS(dummy_action, NULL), ), TEST_CASE_BREDRLE("Bluetooth Enable - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_ADAPTER_PROPS(prop_emu_default_set, 8), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ), TEST_CASE_BREDRLE("Bluetooth Enable - Success 2", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_ADAPTER_PROPS(prop_emu_default_set, 8), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bluetooth_enable_action, NULL), ), TEST_CASE_BREDRLE("Bluetooth Disable - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bluetooth_disable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF), ), TEST_CASE_BREDRLE("Bluetooth Set BDNAME - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_set_property_action, &prop_test_bdname), CALLBACK_ADAPTER_PROPS(&prop_test_bdname, 1), ), TEST_CASE_BREDRLE("Bluetooth Set SCAN_MODE - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_set_property_action, &prop_test_scanmode_conn_discov), CALLBACK_ADAPTER_PROPS(&prop_test_scanmode_conn_discov, 1), ), TEST_CASE_BREDRLE("Bluetooth Set DISCOVERY_TIMEOUT - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_set_property_action, &prop_test_disctimeout), CALLBACK_ADAPTER_PROPS(&prop_test_disctimeout, 1), ), TEST_CASE_BREDRLE("Bluetooth Get BDADDR - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_bdaddr), CALLBACK_ADAPTER_PROPS(&prop_emu_bdaddr, 1), ), TEST_CASE_BREDRLE("Bluetooth Get BDNAME - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_bdname), CALLBACK_ADAPTER_PROPS(&prop_emu_bdname, 1), ), TEST_CASE_BREDRLE("Bluetooth Set UUID - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_FAIL(bt_set_property_action, &prop_test_uuid), ), TEST_CASE_BREDRLE("Bluetooth Set CLASS_OF_DEVICE - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_FAIL(bt_set_property_action, &prop_test_cod), ), TEST_CASE_BREDRLE("Bluetooth Set TYPE_OF_DEVICE - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_FAIL(bt_set_property_action, &prop_test_tod), ), TEST_CASE_BREDRLE("Bluetooth Set REMOTE_RSSI - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_FAIL(bt_set_property_action, &prop_test_remote_rssi), ), TEST_CASE_BREDRLE("Bluetooth Set SERVICE_RECORD - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_FAIL(bt_set_property_action, &prop_test_srvc_record), ), TEST_CASE_BREDRLE("Bluetooth Set BDADDR - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_FAIL(bt_set_property_action, &prop_test_bdaddr), ), TEST_CASE_BREDRLE("Bluetooth Set SCAN_MODE_CONNECTABLE - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_set_property_action, &prop_test_scan_mode_conn), CALLBACK_ADAPTER_PROPS(&prop_test_scan_mode_conn, 1), ), TEST_CASE_BREDRLE("Bluetooth Set BONDED_DEVICES - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_FAIL(bt_set_property_action, &prop_test_bonded_dev_addr), ), TEST_CASE_BREDRLE("Bluetooth Get CLASS_OF_DEVICE - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_cod), CALLBACK_ADAPTER_PROPS(&prop_emu_cod, 1), ), TEST_CASE_BREDRLE("Bluetooth Get TYPE_OF_DEVICE - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_dual_tod), CALLBACK_ADAPTER_PROPS(&prop_emu_dual_tod, 1), ), TEST_CASE_BREDRLE("Bluetooth Get SCAN_MODE - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_scan_mode), CALLBACK_ADAPTER_PROPS(&prop_emu_scan_mode, 1), ), TEST_CASE_BREDRLE("Bluetooth Get DISCOVERY_TIMEOUT - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_disc_timeout), CALLBACK_ADAPTER_PROPS(&prop_emu_disc_timeout, 1), ), TEST_CASE_BREDRLE("Bluetooth Get UUIDS - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_uuids), CALLBACK_ADAPTER_PROPS(&prop_emu_uuids, 1), ), TEST_CASE_BREDRLE("Bluetooth Get BONDED_DEVICES - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_get_property_action, &prop_emu_bonded_devs), CALLBACK_ADAPTER_PROPS(&prop_emu_bonded_devs, 1), ), TEST_CASE_BREDRLE("Bluetooth Set SCAN_MODE - Success 2", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_set_property_action, &prop_test_scan_mode_none), CALLBACK_ADAPTER_PROPS(&prop_test_scan_mode_none, 1), ), TEST_CASE_BREDRLE("Bluetooth Discovery Start - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ), TEST_CASE_BREDRLE("Bluetooth Discovery Start - Done", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(bt_start_discovery_action, NULL), ), TEST_CASE_BREDRLE("Bluetooth Discovery Stop - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ), TEST_CASE_BREDRLE("Bluetooth Discovery Stop - Done", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_start_discovery_action, NULL), ), TEST_CASE_BREDRLE("Bluetooth Discovery Device Found", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_ble_default_set, 3), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ), TEST_CASE_BREDRLE("Bluetooth Device Get Props - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_get_device_props_action, &emu_remote_bdaddr_val), CALLBACK_DEVICE_PROPS(prop_emu_remote_bles_query_set, 6), ), TEST_CASE_BREDRLE("Bluetooth Device Get BDNAME - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_get_device_prop_action, &prop_emu_remote_ble_bdname_req), CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_bdname_prop, 1), ), TEST_CASE_BREDRLE("Bluetooth Device Get UUIDS - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_get_device_prop_action, &prop_emu_remote_ble_uuids_req), CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_uuids_prop, 1), ), TEST_CASE_BREDRLE("Bluetooth Device Get COD - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_get_device_prop_action, &prop_emu_remote_ble_cod_req), CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_cod_prop, 1), ), TEST_CASE_BREDRLE("Bluetooth Device Get TOD - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_get_device_prop_action, &prop_emu_remote_ble_tod_req), CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_tod_prop, 1), ), TEST_CASE_BREDRLE("Bluetooth Device Get RSSI - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_get_device_prop_action, &prop_emu_remote_ble_rssi_req), CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_rssi_prop, 1), ), TEST_CASE_BREDRLE("Bluetooth Device Get TIMESTAMP - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_get_device_prop_action, &prop_emu_remote_ble_timestamp_req), CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_timestamp_prop, 1), ), TEST_CASE_BREDRLE("Bluetooth Device Get BDADDR - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_get_device_prop_action, &prop_emu_remote_ble_bdaddr_req), ), TEST_CASE_BREDRLE("Bluetooth Device Get SCAN_MODE - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_get_device_prop_action, &prop_emu_remote_ble_scan_mode_req), ), TEST_CASE_BREDRLE("Bluetooth Device Get BONDED_DEVICES - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_get_device_prop_action, &prop_emu_remote_ble_bondeddev_req), ), TEST_CASE_BREDRLE("Bluetooth Device Get DISCOVERY_TIMEOUT - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_get_device_prop_action, &prop_emu_remote_ble_disctimeout_req), ), TEST_CASE_BREDRLE("Bluetooth Device Get VERSION_INFO - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_get_device_prop_action, &prop_emu_remote_ble_verinfo_req), ), TEST_CASE_BREDRLE("Bluetooth Device Get FRIENDLY_NAME - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_get_device_prop_action, &prop_emu_remote_ble_fname_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set FRIENDLY_NAME - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_set_device_prop_action, &prop_emu_remote_ble_fname_req), ACTION_SUCCESS(bt_get_device_prop_action, &prop_emu_remote_ble_fname_req), CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_fname_prop, 1), ), TEST_CASE_BREDRLE("Bluetooth Device Set BDNAME - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_bdname_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set UUIDS - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_uuids_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set COD - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_cod_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set TOD - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_tod_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set RSSI - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_rssi_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set TIMESTAMP - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_timestamp_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set BDADDR - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_bdaddr_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set SERVICE_RECORD - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_srvc_record_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set SCAN_MODE - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_scanmode_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set BONDED_DEVICES - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_ble_bonded_dev_req), ), TEST_CASE_BREDRLE("Bluetooth Device Set DISCOVERY_TIMEOUT - Fail", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_FAIL(bt_set_device_prop_action, &prop_test_remote_ble_disc_timeout_req), ), TEST_CASE_BREDR("Bluetooth Create Bond PIN - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_set_pin_code_action, &emu_pin_set_req), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_create_bond_action, &prop_test_remote_ble_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_PROPS(CB_BT_PIN_REQUEST, prop_emu_remotes_pin_req_set, 2), ACTION_SUCCESS(bt_pin_reply_accept_action, &emu_pin_set_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED, &prop_emu_remote_bdadr, 1), ), TEST_CASE_BREDR("Bluetooth Create Bond PIN - Bad PIN", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_set_pin_code_action, &emu_pin_set_req), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_create_bond_action, &prop_test_remote_ble_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_PROPS(CB_BT_PIN_REQUEST, prop_emu_remotes_pin_req_set, 2), ACTION_SUCCESS(bt_pin_reply_accept_action, &emu_pin_set_invalid_req), CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE, &prop_emu_remote_bdadr, 1, BT_STATUS_AUTH_FAILURE), ), TEST_CASE_BREDR("Bluetooth Create Bond SSP -Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_create_bond_action, &prop_test_remote_ble_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION, prop_emu_remotes_pin_req_set, 2), ACTION_SUCCESS(bt_ssp_reply_accept_action, &ssp_confirm_accept_reply), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED, &prop_emu_remote_bdadr, 1), ), TEST_CASE_BREDR("Bluetooth Create Bond SSP - Negative reply", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_create_bond_action, &prop_test_remote_ble_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION, prop_emu_remotes_pin_req_set, 2), ACTION_SUCCESS(bt_ssp_reply_accept_action, &ssp_confirm_reject_reply), CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE, &prop_emu_remote_bdadr, 1, BT_STATUS_AUTH_FAILURE), ), TEST_CASE_BREDR("Bluetooth Create Bond - No Discovery", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap), ACTION_SUCCESS(bt_create_bond_action, &prop_test_remote_ble_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION, prop_emu_remotes_pin_req_set, 2), ACTION_SUCCESS(bt_ssp_reply_accept_action, &ssp_confirm_accept_reply), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED, &prop_emu_remote_bdadr, 1), ACTION_SUCCESS(bluetooth_disable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF), ), TEST_CASE_BREDR("Bluetooth Create Bond - Bad Address", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(bt_create_bond_action, &prop_test_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_test_bdaddr, 1), CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE, &prop_test_bdaddr, 1, BT_STATUS_FAIL), ACTION_SUCCESS(bluetooth_disable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF), ), TEST_CASE_BREDR("Bluetooth Cancel Bonding - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_create_bond_action, &prop_test_remote_ble_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION, prop_emu_remotes_pin_req_set, 2), ACTION_SUCCESS(bt_cancel_bond_action, &emu_remote_bdaddr_val), CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE, &prop_emu_remote_bdadr, 1, BT_STATUS_FAIL), ACTION_SUCCESS(bluetooth_disable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF), ), TEST_CASE_BREDR("Bluetooth Remove Bond - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap), ACTION_SUCCESS(bt_start_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STARTED), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3), ACTION_SUCCESS(bt_cancel_discovery_action, NULL), CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED, BT_DISCOVERY_STOPPED), ACTION_SUCCESS(bt_create_bond_action, &prop_test_remote_ble_bdaddr_req), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION, prop_emu_remotes_pin_req_set, 2), ACTION_SUCCESS(bt_ssp_reply_accept_action, &ssp_confirm_accept_reply), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED, &prop_emu_remote_bdadr, 1), ACTION_SUCCESS(bt_remove_bond_action, &emu_remote_bdaddr_val), CALLBACK_BOND_STATE(BT_BOND_STATE_NONE, &prop_emu_remote_bdadr, 1), ACTION_SUCCESS(bluetooth_disable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF), ), TEST_CASE_BREDR("Bluetooth Accept Bond - Just Works - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_set_property_action, &prop_test_scanmode_conn_discov), CALLBACK_ADAPTER_PROPS(&prop_test_scanmode_conn_discov, 1), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(emu_set_io_cap, &no_input_no_output_io_cap), ACTION_SUCCESS(emu_set_connect_cb_action, conn_cb), ACTION_SUCCESS(emu_remote_connect_hci_action, NULL), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED, &prop_emu_remote_bdadr, 1), ACTION_SUCCESS(bt_remove_bond_action, &emu_remote_bdaddr_val), CALLBACK_BOND_STATE(BT_BOND_STATE_NONE, &prop_emu_remote_bdadr, 1), ACTION_SUCCESS(bluetooth_disable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF), ), TEST_CASE_BREDR("Bluetooth Accept Bond - No Bond - Success", ACTION_SUCCESS(bluetooth_enable_action, NULL), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON), ACTION_SUCCESS(bt_set_property_action, &prop_test_scanmode_conn_discov), CALLBACK_ADAPTER_PROPS(&prop_test_scanmode_conn_discov, 1), ACTION_SUCCESS(emu_setup_powered_remote_action, NULL), ACTION_SUCCESS(emu_set_ssp_mode_action, NULL), ACTION_SUCCESS(emu_set_io_cap, &no_input_no_output_io_cap), ACTION_SUCCESS(emu_set_connect_cb_action, conn_cb), ACTION_SUCCESS(emu_remote_connect_hci_action, NULL), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED, &prop_emu_remote_bdadr, 1), ACTION_SUCCESS(emu_remote_disconnect_hci_action, &test_conn_handle), ACTION_SUCCESS(bluetooth_disable_action, NULL), CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING, &prop_emu_remote_bdadr, 1), CALLBACK_BOND_STATE(BT_BOND_STATE_NONE, &prop_emu_remote_bdadr, 1), CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF), ), }; struct queue *get_bluetooth_tests(void) { uint16_t i = 0; list = queue_new(); for (; i < sizeof(test_cases) / sizeof(test_cases[0]); ++i) queue_push_tail(list, &test_cases[i]); return list; } void remove_bluetooth_tests(void) { queue_destroy(list, NULL); }