* [PATCH v2 2/8] android/tester: Add create bond with PIN fail test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
@ 2014-03-03 10:44 ` Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 3/8] android/tester: Add create bond with SSP sucess " Grzegorz Kolodziejczyk
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-03-03 10:44 UTC (permalink / raw)
To: linux-bluetooth
This adds create bond with PIN fail test case.
---
android/android-tester.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/android/android-tester.c b/android/android-tester.c
index df89d82..a7f5f2d 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -1037,6 +1037,21 @@ static void bond_device_found_cb(int num_properties, bt_property_t *properties)
}
}
+static void bond_nostatus_device_found_cb(int num_properties,
+ bt_property_t *properties)
+{
+ struct test_data *data = tester_get_data();
+ uint8_t *bdaddr = (uint8_t *)hciemu_get_client_bdaddr(data->hciemu);
+ bt_bdaddr_t remote_addr;
+
+ bdaddr2android((const bdaddr_t *)bdaddr, &remote_addr.address);
+
+ if (data->cb_count == 4) {
+ data->cb_count--;
+ data->if_bluetooth->create_bond(&remote_addr);
+ }
+}
+
static gboolean device_found(gpointer user_data)
{
struct test_data *data = tester_get_data();
@@ -1190,6 +1205,25 @@ static void bond_test_bonded_state_changed_cb(bt_status_t status,
}
}
+static void bond_test_none_state_changed_cb(bt_status_t status,
+ bt_bdaddr_t *remote_bd_addr, bt_bond_state_t state)
+{
+ struct test_data *data = tester_get_data();
+
+ switch (state) {
+ case BT_BOND_STATE_BONDING:
+ data->cb_count--;
+ break;
+ case BT_BOND_STATE_NONE:
+ data->cb_count--;
+ check_cb_count();
+ break;
+ default:
+ tester_test_failed();
+ break;
+ }
+}
+
static gboolean bond_state_changed(gpointer user_data)
{
struct test_data *data = tester_get_data();
@@ -1231,6 +1265,21 @@ static void bond_create_pin_success_request_cb(bt_bdaddr_t *remote_bd_addr,
data->if_bluetooth->pin_reply(bdaddr, TRUE, pin_len, &pin_code);
}
+static void bond_create_pin_fail_request_cb(bt_bdaddr_t *remote_bd_addr,
+ bt_bdname_t *bd_name, uint32_t cod)
+{
+ struct test_data *data = tester_get_data();
+ const bt_bdaddr_t *bdaddr = remote_bd_addr;
+ bt_pin_code_t pin_code = {
+ .pin = { 0x31, 0x31, 0x31, 0x31 },
+ };
+ uint8_t pin_len = 4;
+
+ data->cb_count--;
+
+ data->if_bluetooth->pin_reply(bdaddr, TRUE, pin_len, &pin_code);
+}
+
static gboolean pin_request(gpointer user_data)
{
struct test_data *data = tester_get_data();
@@ -2288,6 +2337,15 @@ static const struct generic_data bt_bond_create_pin_success_test = {
.expected_adapter_status = BT_STATUS_SUCCESS,
};
+static const struct generic_data bt_bond_create_pin_fail_test = {
+ .expected_hal_cb.device_found_cb = bond_nostatus_device_found_cb,
+ .expected_hal_cb.bond_state_changed_cb =
+ bond_test_none_state_changed_cb,
+ .expected_hal_cb.pin_request_cb = bond_create_pin_fail_request_cb,
+ .expected_cb_count = 4,
+ .expected_adapter_status = MGMT_STATUS_AUTH_FAILED,
+};
+
static bt_callbacks_t bt_callbacks = {
.size = sizeof(bt_callbacks),
.adapter_state_changed_cb = adapter_state_changed_cb,
@@ -3026,6 +3084,16 @@ static void test_dev_setprop_disctimeout_fail(const void *test_data)
data->if_bluetooth->start_discovery();
}
+
+static void bond_device_auth_fail_callback(uint16_t index, uint16_t length,
+ const void *param,
+ void *user_data)
+{
+ const struct mgmt_ev_auth_failed *ev = param;
+
+ check_expected_status(ev->status);
+}
+
static void test_bond_create_pin_success(const void *test_data)
{
struct test_data *data = tester_get_data();
@@ -3042,6 +3110,26 @@ static void test_bond_create_pin_success(const void *test_data)
data->if_bluetooth->start_discovery();
}
+static void test_bond_create_pin_fail(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ struct bthost *bthost = hciemu_client_get_host(data->hciemu);
+
+ static uint8_t pair_device_pin[] = { 0x30, 0x30, 0x30, 0x30 };
+ const void *pin = pair_device_pin;
+ uint8_t pin_len = 4;
+
+ init_test_conditions(data);
+
+ mgmt_register(data->mgmt, MGMT_EV_AUTH_FAILED, data->mgmt_index,
+ bond_device_auth_fail_callback, data,
+ NULL);
+
+ bthost_set_pin_code(bthost, pin, pin_len);
+
+ data->if_bluetooth->start_discovery();
+}
+
/* Test Socket HAL */
static gboolean adapter_socket_state_changed(gpointer user_data)
@@ -4385,6 +4473,11 @@ int main(int argc, char *argv[])
setup_enabled_adapter,
test_bond_create_pin_success, teardown);
+ test_bredrle("Bluetooth Create Bond PIN - Bad PIN",
+ &bt_bond_create_pin_fail_test,
+ setup_enabled_adapter,
+ test_bond_create_pin_fail, teardown);
+
test_bredrle("Socket Init", NULL, setup_socket_interface,
test_dummy, teardown);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 3/8] android/tester: Add create bond with SSP sucess test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 2/8] android/tester: Add create bond with PIN fail " Grzegorz Kolodziejczyk
@ 2014-03-03 10:44 ` Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 4/8] android/tester: Add create bond with SSP fail " Grzegorz Kolodziejczyk
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-03-03 10:44 UTC (permalink / raw)
To: linux-bluetooth
This adds create bond with SSP succes test case. Confirm is set as SSP
pairing mode.
---
android/android-tester.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 85 insertions(+), 1 deletion(-)
diff --git a/android/android-tester.c b/android/android-tester.c
index a7f5f2d..054f73e 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -127,6 +127,9 @@ struct bt_cb_data {
bt_bdname_t bdname;
uint32_t cod;
+ bt_ssp_variant_t ssp_variant;
+ uint32_t passkey;
+
int num;
bt_property_t *props;
};
@@ -1306,6 +1309,61 @@ static void pin_request_cb(bt_bdaddr_t *remote_bd_addr,
g_idle_add(pin_request, cb_data);
}
+static void bond_create_ssp_request_cb(const bt_bdaddr_t *remote_bd_addr,
+ bt_ssp_variant_t pairing_variant,
+ bool accept, uint32_t pass_key)
+{
+ struct test_data *data = tester_get_data();
+
+ data->if_bluetooth->ssp_reply(remote_bd_addr,
+ BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
+ accept, pass_key);
+
+ data->cb_count--;
+}
+
+static void bond_create_ssp_success_request_cb(bt_bdaddr_t *remote_bd_addr,
+ bt_bdname_t *bd_name, uint32_t cod,
+ bt_ssp_variant_t pairing_variant,
+ uint32_t pass_key)
+{
+ bool accept = true;
+
+ bond_create_ssp_request_cb(remote_bd_addr, pairing_variant, accept,
+ pass_key);
+}
+
+static gboolean ssp_request(gpointer user_data)
+{
+ struct test_data *data = tester_get_data();
+ const struct generic_data *test = data->test_data;
+ struct bt_cb_data *cb_data = user_data;
+
+ if (data->test_init_done &&
+ test->expected_hal_cb.ssp_request_cb)
+ test->expected_hal_cb.ssp_request_cb(&cb_data->bdaddr,
+ &cb_data->bdname, cb_data->cod,
+ cb_data->ssp_variant, cb_data->passkey);
+
+ g_free(cb_data);
+ return FALSE;
+}
+
+static void ssp_request_cb(bt_bdaddr_t *remote_bd_addr, bt_bdname_t *bd_name,
+ uint32_t cod, bt_ssp_variant_t pairing_variant,
+ uint32_t pass_key)
+{
+ struct bt_cb_data *cb_data = g_new0(struct bt_cb_data, 1);
+
+ cb_data->bdaddr = *remote_bd_addr;
+ cb_data->bdname = *bd_name;
+ cb_data->cod = cod;
+ cb_data->ssp_variant = pairing_variant;
+ cb_data->passkey = pass_key;
+
+ g_idle_add(ssp_request, cb_data);
+}
+
static bt_bdaddr_t enable_done_bdaddr_val = { {0x00} };
static const char enable_done_bdname_val[] = "BlueZ for Android";
static bt_uuid_t enable_done_uuids_val = {
@@ -2346,6 +2404,15 @@ static const struct generic_data bt_bond_create_pin_fail_test = {
.expected_adapter_status = MGMT_STATUS_AUTH_FAILED,
};
+static const struct generic_data bt_bond_create_ssp_success_test = {
+ .expected_hal_cb.device_found_cb = bond_device_found_cb,
+ .expected_hal_cb.bond_state_changed_cb =
+ bond_test_bonded_state_changed_cb,
+ .expected_hal_cb.ssp_request_cb = bond_create_ssp_success_request_cb,
+ .expected_cb_count = 4,
+ .expected_adapter_status = BT_STATUS_SUCCESS,
+};
+
static bt_callbacks_t bt_callbacks = {
.size = sizeof(bt_callbacks),
.adapter_state_changed_cb = adapter_state_changed_cb,
@@ -2354,7 +2421,7 @@ static bt_callbacks_t bt_callbacks = {
.device_found_cb = device_found_cb,
.discovery_state_changed_cb = discovery_state_changed_cb,
.pin_request_cb = pin_request_cb,
- .ssp_request_cb = NULL,
+ .ssp_request_cb = ssp_request_cb,
.bond_state_changed_cb = bond_state_changed_cb,
.acl_state_changed_cb = NULL,
.thread_evt_cb = NULL,
@@ -3130,6 +3197,18 @@ static void test_bond_create_pin_fail(const void *test_data)
data->if_bluetooth->start_discovery();
}
+static void test_bond_create_ssp_success(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ struct bthost *bthost = hciemu_client_get_host(data->hciemu);
+
+ init_test_conditions(data);
+
+ bthost_write_ssp_mode(bthost, 0x01);
+
+ data->if_bluetooth->start_discovery();
+}
+
/* Test Socket HAL */
static gboolean adapter_socket_state_changed(gpointer user_data)
@@ -4478,6 +4557,11 @@ int main(int argc, char *argv[])
setup_enabled_adapter,
test_bond_create_pin_fail, teardown);
+ test_bredrle("Bluetooth Create Bond SSP - Success",
+ &bt_bond_create_ssp_success_test,
+ setup_enabled_adapter,
+ test_bond_create_ssp_success, teardown);
+
test_bredrle("Socket Init", NULL, setup_socket_interface,
test_dummy, teardown);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 4/8] android/tester: Add create bond with SSP fail test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 2/8] android/tester: Add create bond with PIN fail " Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 3/8] android/tester: Add create bond with SSP sucess " Grzegorz Kolodziejczyk
@ 2014-03-03 10:44 ` Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 5/8] android/tester: Add create bond with no discovery " Grzegorz Kolodziejczyk
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-03-03 10:44 UTC (permalink / raw)
To: linux-bluetooth
This adds create bond with SSP fail test case. Confirm is set as SSP
pairing mode.
---
android/android-tester.c | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/android/android-tester.c b/android/android-tester.c
index 054f73e..bfaffba 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -1333,6 +1333,17 @@ static void bond_create_ssp_success_request_cb(bt_bdaddr_t *remote_bd_addr,
pass_key);
}
+static void bond_create_ssp_fail_request_cb(bt_bdaddr_t *remote_bd_addr,
+ bt_bdname_t *bd_name, uint32_t cod,
+ bt_ssp_variant_t pairing_variant,
+ uint32_t pass_key)
+{
+ bool accept = false;
+
+ bond_create_ssp_request_cb(remote_bd_addr, pairing_variant, accept,
+ pass_key);
+}
+
static gboolean ssp_request(gpointer user_data)
{
struct test_data *data = tester_get_data();
@@ -2413,6 +2424,15 @@ static const struct generic_data bt_bond_create_ssp_success_test = {
.expected_adapter_status = BT_STATUS_SUCCESS,
};
+static const struct generic_data bt_bond_create_ssp_fail_test = {
+ .expected_hal_cb.device_found_cb = bond_nostatus_device_found_cb,
+ .expected_hal_cb.bond_state_changed_cb =
+ bond_test_none_state_changed_cb,
+ .expected_hal_cb.ssp_request_cb = bond_create_ssp_fail_request_cb,
+ .expected_cb_count = 4,
+ .expected_adapter_status = MGMT_STATUS_AUTH_FAILED,
+};
+
static bt_callbacks_t bt_callbacks = {
.size = sizeof(bt_callbacks),
.adapter_state_changed_cb = adapter_state_changed_cb,
@@ -3209,6 +3229,22 @@ static void test_bond_create_ssp_success(const void *test_data)
data->if_bluetooth->start_discovery();
}
+static void test_bond_create_ssp_fail(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ struct bthost *bthost = hciemu_client_get_host(data->hciemu);
+
+ init_test_conditions(data);
+
+ mgmt_register(data->mgmt, MGMT_EV_AUTH_FAILED, data->mgmt_index,
+ bond_device_auth_fail_callback, data,
+ NULL);
+
+ bthost_write_ssp_mode(bthost, 0x01);
+
+ data->if_bluetooth->start_discovery();
+}
+
/* Test Socket HAL */
static gboolean adapter_socket_state_changed(gpointer user_data)
@@ -4562,6 +4598,11 @@ int main(int argc, char *argv[])
setup_enabled_adapter,
test_bond_create_ssp_success, teardown);
+ test_bredrle("Bluetooth Create Bond SSP - Negative reply",
+ &bt_bond_create_ssp_fail_test,
+ setup_enabled_adapter,
+ test_bond_create_ssp_fail, teardown);
+
test_bredrle("Socket Init", NULL, setup_socket_interface,
test_dummy, teardown);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 5/8] android/tester: Add create bond with no discovery test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
` (2 preceding siblings ...)
2014-03-03 10:44 ` [PATCH v2 4/8] android/tester: Add create bond with SSP fail " Grzegorz Kolodziejczyk
@ 2014-03-03 10:44 ` Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 6/8] android/tester: Add create bond with bad addr fail " Grzegorz Kolodziejczyk
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-03-03 10:44 UTC (permalink / raw)
To: linux-bluetooth
This adds create bond with no discovery before create bond as NFC does.
SSP with confirm as authentication mode.
---
android/android-tester.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/android/android-tester.c b/android/android-tester.c
index bfaffba..3de79f4 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -2433,6 +2433,14 @@ static const struct generic_data bt_bond_create_ssp_fail_test = {
.expected_adapter_status = MGMT_STATUS_AUTH_FAILED,
};
+static const struct generic_data bt_bond_create_no_disc_success_test = {
+ .expected_hal_cb.bond_state_changed_cb =
+ bond_test_bonded_state_changed_cb,
+ .expected_hal_cb.ssp_request_cb = bond_create_ssp_success_request_cb,
+ .expected_cb_count = 3,
+ .expected_adapter_status = BT_STATUS_SUCCESS,
+};
+
static bt_callbacks_t bt_callbacks = {
.size = sizeof(bt_callbacks),
.adapter_state_changed_cb = adapter_state_changed_cb,
@@ -3245,6 +3253,25 @@ static void test_bond_create_ssp_fail(const void *test_data)
data->if_bluetooth->start_discovery();
}
+static void test_bond_create_no_disc_success(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ struct bthost *bthost = hciemu_client_get_host(data->hciemu);
+
+ uint8_t *bdaddr = (uint8_t *)hciemu_get_client_bdaddr(data->hciemu);
+ bt_bdaddr_t remote_addr;
+ bt_status_t status;
+
+ init_test_conditions(data);
+
+ bdaddr2android((const bdaddr_t *)bdaddr, &remote_addr.address);
+
+ bthost_write_ssp_mode(bthost, 0x01);
+
+ status = data->if_bluetooth->create_bond(&remote_addr);
+ check_expected_status(status);
+}
+
/* Test Socket HAL */
static gboolean adapter_socket_state_changed(gpointer user_data)
@@ -4603,6 +4630,11 @@ int main(int argc, char *argv[])
setup_enabled_adapter,
test_bond_create_ssp_fail, teardown);
+ test_bredrle("Bluetooth Create Bond - No Discovery",
+ &bt_bond_create_no_disc_success_test,
+ setup_enabled_adapter,
+ test_bond_create_no_disc_success, teardown);
+
test_bredrle("Socket Init", NULL, setup_socket_interface,
test_dummy, teardown);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 6/8] android/tester: Add create bond with bad addr fail test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
` (3 preceding siblings ...)
2014-03-03 10:44 ` [PATCH v2 5/8] android/tester: Add create bond with no discovery " Grzegorz Kolodziejczyk
@ 2014-03-03 10:44 ` Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 7/8] android/tester: Add cancel bond success " Grzegorz Kolodziejczyk
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-03-03 10:44 UTC (permalink / raw)
To: linux-bluetooth
This adds create bond with bad addr fail test case.
---
android/android-tester.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/android/android-tester.c b/android/android-tester.c
index 3de79f4..8baaecd 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -2441,6 +2441,10 @@ static const struct generic_data bt_bond_create_no_disc_success_test = {
.expected_adapter_status = BT_STATUS_SUCCESS,
};
+static const struct generic_data bt_bond_create_bad_addr_success_test = {
+ .expected_adapter_status = MGMT_STATUS_CONNECT_FAILED,
+};
+
static bt_callbacks_t bt_callbacks = {
.size = sizeof(bt_callbacks),
.adapter_state_changed_cb = adapter_state_changed_cb,
@@ -3272,6 +3276,22 @@ static void test_bond_create_no_disc_success(const void *test_data)
check_expected_status(status);
}
+static void test_bond_create_bad_addr_success(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ bt_bdaddr_t bad_addr = {
+ .address = { 0x12, 0x34, 0x56, 0x78, 0x90, 0x12 }
+ };
+
+ init_test_conditions(data);
+
+ mgmt_register(data->mgmt, MGMT_EV_CONNECT_FAILED, data->mgmt_index,
+ bond_device_auth_fail_callback, data,
+ NULL);
+
+ data->if_bluetooth->create_bond(&bad_addr);
+}
+
/* Test Socket HAL */
static gboolean adapter_socket_state_changed(gpointer user_data)
@@ -4635,6 +4655,11 @@ int main(int argc, char *argv[])
setup_enabled_adapter,
test_bond_create_no_disc_success, teardown);
+ test_bredrle("Bluetooth Create Bond - Bad Address",
+ &bt_bond_create_bad_addr_success_test,
+ setup_enabled_adapter,
+ test_bond_create_bad_addr_success, teardown);
+
test_bredrle("Socket Init", NULL, setup_socket_interface,
test_dummy, teardown);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 7/8] android/tester: Add cancel bond success test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
` (4 preceding siblings ...)
2014-03-03 10:44 ` [PATCH v2 6/8] android/tester: Add create bond with bad addr fail " Grzegorz Kolodziejczyk
@ 2014-03-03 10:44 ` Grzegorz Kolodziejczyk
2014-03-03 10:44 ` [PATCH v2 8/8] android/tester: Add remove " Grzegorz Kolodziejczyk
2014-03-03 12:55 ` [PATCH v2 1/8] android/tester: Add create bond with PIN " Szymon Janc
7 siblings, 0 replies; 9+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-03-03 10:44 UTC (permalink / raw)
To: linux-bluetooth
This adds cancel bond success test case. SSP as pairing mode.
---
android/android-tester.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/android/android-tester.c b/android/android-tester.c
index 8baaecd..5c7130e 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -1344,6 +1344,24 @@ static void bond_create_ssp_fail_request_cb(bt_bdaddr_t *remote_bd_addr,
pass_key);
}
+static void bond_cancel_success_ssp_request_cb(bt_bdaddr_t *remote_bd_addr,
+ bt_bdname_t *bd_name, uint32_t cod,
+ bt_ssp_variant_t pairing_variant,
+ uint32_t pass_key)
+{
+ struct test_data *data = tester_get_data();
+ uint8_t *bdaddr = (uint8_t *)hciemu_get_client_bdaddr(data->hciemu);
+ bt_bdaddr_t remote_addr;
+ bt_status_t status;
+
+ bdaddr2android((const bdaddr_t *)bdaddr, &remote_addr.address);
+
+ data->cb_count--;
+
+ status = data->if_bluetooth->cancel_bond(&remote_addr);
+ check_expected_status(status);
+}
+
static gboolean ssp_request(gpointer user_data)
{
struct test_data *data = tester_get_data();
@@ -2445,6 +2463,15 @@ static const struct generic_data bt_bond_create_bad_addr_success_test = {
.expected_adapter_status = MGMT_STATUS_CONNECT_FAILED,
};
+static const struct generic_data bt_bond_cancel_success_test = {
+ .expected_hal_cb.device_found_cb = bond_nostatus_device_found_cb,
+ .expected_hal_cb.bond_state_changed_cb =
+ bond_test_none_state_changed_cb,
+ .expected_hal_cb.ssp_request_cb = bond_cancel_success_ssp_request_cb,
+ .expected_cb_count = 4,
+ .expected_adapter_status = BT_STATUS_SUCCESS,
+};
+
static bt_callbacks_t bt_callbacks = {
.size = sizeof(bt_callbacks),
.adapter_state_changed_cb = adapter_state_changed_cb,
@@ -3292,6 +3319,18 @@ static void test_bond_create_bad_addr_success(const void *test_data)
data->if_bluetooth->create_bond(&bad_addr);
}
+static void test_bond_cancel_success(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ struct bthost *bthost = hciemu_client_get_host(data->hciemu);
+
+ init_test_conditions(data);
+
+ bthost_write_ssp_mode(bthost, 0x01);
+
+ data->if_bluetooth->start_discovery();
+}
+
/* Test Socket HAL */
static gboolean adapter_socket_state_changed(gpointer user_data)
@@ -4660,6 +4699,11 @@ int main(int argc, char *argv[])
setup_enabled_adapter,
test_bond_create_bad_addr_success, teardown);
+ test_bredrle("Bluetooth Cancel Bonding - Success",
+ &bt_bond_cancel_success_test,
+ setup_enabled_adapter,
+ test_bond_cancel_success, teardown);
+
test_bredrle("Socket Init", NULL, setup_socket_interface,
test_dummy, teardown);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 8/8] android/tester: Add remove bond success test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
` (5 preceding siblings ...)
2014-03-03 10:44 ` [PATCH v2 7/8] android/tester: Add cancel bond success " Grzegorz Kolodziejczyk
@ 2014-03-03 10:44 ` Grzegorz Kolodziejczyk
2014-03-03 12:55 ` [PATCH v2 1/8] android/tester: Add create bond with PIN " Szymon Janc
7 siblings, 0 replies; 9+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-03-03 10:44 UTC (permalink / raw)
To: linux-bluetooth
This adds remove bond success test case. SSP as pairing mode.
---
android/android-tester.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/android/android-tester.c b/android/android-tester.c
index 5c7130e..b762a2d 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -1227,6 +1227,29 @@ static void bond_test_none_state_changed_cb(bt_status_t status,
}
}
+static void bond_remove_success_state_changed_cb(bt_status_t status,
+ bt_bdaddr_t *remote_bd_addr, bt_bond_state_t state)
+{
+ struct test_data *data = tester_get_data();
+ bt_status_t remove_status;
+ uint8_t *bdaddr = (uint8_t *)hciemu_get_client_bdaddr(data->hciemu);
+ bt_bdaddr_t remote_addr;
+
+ bdaddr2android((const bdaddr_t *)bdaddr, &remote_addr.address);
+
+ if (state == BT_BOND_STATE_BONDED) {
+ data->cb_count--;
+ remove_status = data->if_bluetooth->remove_bond(&remote_addr);
+ check_expected_status(remove_status);
+ return;
+ }
+
+ if (state == BT_BOND_STATE_NONE) {
+ data->cb_count--;
+ check_cb_count();
+ }
+}
+
static gboolean bond_state_changed(gpointer user_data)
{
struct test_data *data = tester_get_data();
@@ -2472,6 +2495,15 @@ static const struct generic_data bt_bond_cancel_success_test = {
.expected_adapter_status = BT_STATUS_SUCCESS,
};
+static const struct generic_data bt_bond_remove_success_test = {
+ .expected_hal_cb.device_found_cb = bond_nostatus_device_found_cb,
+ .expected_hal_cb.bond_state_changed_cb =
+ bond_remove_success_state_changed_cb,
+ .expected_hal_cb.ssp_request_cb = bond_create_ssp_success_request_cb,
+ .expected_cb_count = 4,
+ .expected_adapter_status = BT_STATUS_SUCCESS,
+};
+
static bt_callbacks_t bt_callbacks = {
.size = sizeof(bt_callbacks),
.adapter_state_changed_cb = adapter_state_changed_cb,
@@ -3331,6 +3363,18 @@ static void test_bond_cancel_success(const void *test_data)
data->if_bluetooth->start_discovery();
}
+static void test_bond_remove_success(const void *test_data)
+{
+ struct test_data *data = tester_get_data();
+ struct bthost *bthost = hciemu_client_get_host(data->hciemu);
+
+ init_test_conditions(data);
+
+ bthost_write_ssp_mode(bthost, 0x01);
+
+ data->if_bluetooth->start_discovery();
+}
+
/* Test Socket HAL */
static gboolean adapter_socket_state_changed(gpointer user_data)
@@ -4704,6 +4748,11 @@ int main(int argc, char *argv[])
setup_enabled_adapter,
test_bond_cancel_success, teardown);
+ test_bredrle("Bluetooth Remove Bond - Success",
+ &bt_bond_remove_success_test,
+ setup_enabled_adapter,
+ test_bond_remove_success, teardown);
+
test_bredrle("Socket Init", NULL, setup_socket_interface,
test_dummy, teardown);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v2 1/8] android/tester: Add create bond with PIN success test case
2014-03-03 10:44 [PATCH v2 1/8] android/tester: Add create bond with PIN success test case Grzegorz Kolodziejczyk
` (6 preceding siblings ...)
2014-03-03 10:44 ` [PATCH v2 8/8] android/tester: Add remove " Grzegorz Kolodziejczyk
@ 2014-03-03 12:55 ` Szymon Janc
7 siblings, 0 replies; 9+ messages in thread
From: Szymon Janc @ 2014-03-03 12:55 UTC (permalink / raw)
To: Grzegorz Kolodziejczyk; +Cc: linux-bluetooth
Hi Grzegorz,
On Monday 03 of March 2014 11:44:11 Grzegorz Kolodziejczyk wrote:
> This adds create bond with PIN success test case.
> ---
> android/android-tester.c | 138 ++++++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 136 insertions(+), 2 deletions(-)
>
> diff --git a/android/android-tester.c b/android/android-tester.c
> index a94c536..df89d82 100644
> --- a/android/android-tester.c
> +++ b/android/android-tester.c
> @@ -124,6 +124,8 @@ struct bt_cb_data {
> bt_status_t status;
>
> bt_bdaddr_t bdaddr;
> + bt_bdname_t bdname;
> + uint32_t cod;
>
> int num;
> bt_property_t *props;
> @@ -1019,6 +1021,22 @@ static void remote_setprop_fail_device_found_cb(int num_properties,
> check_expected_status(status);
> }
>
> +static void bond_device_found_cb(int num_properties, bt_property_t *properties)
> +{
> + struct test_data *data = tester_get_data();
> + uint8_t *bdaddr = (uint8_t *)hciemu_get_client_bdaddr(data->hciemu);
> + bt_bdaddr_t remote_addr;
> + bt_status_t status;
> +
> + bdaddr2android((const bdaddr_t *)bdaddr, &remote_addr.address);
> +
> + if (data->cb_count == 4) {
> + data->cb_count--;
> + status = data->if_bluetooth->create_bond(&remote_addr);
> + check_expected_status(status);
> + }
> +}
> +
> static gboolean device_found(gpointer user_data)
> {
> struct test_data *data = tester_get_data();
> @@ -1153,6 +1171,92 @@ static void remote_device_properties_cb(bt_status_t status,
> g_idle_add(remote_device_properties, cb_data);
> }
>
> +static void bond_test_bonded_state_changed_cb(bt_status_t status,
> + bt_bdaddr_t *remote_bd_addr, bt_bond_state_t state)
> +{
> + struct test_data *data = tester_get_data();
> +
> + switch (state) {
> + case BT_BOND_STATE_BONDING:
> + data->cb_count--;
> + break;
> + case BT_BOND_STATE_BONDED:
> + data->cb_count--;
> + check_cb_count();
> + break;
> + default:
> + tester_test_failed();
> + break;
> + }
> +}
> +
> +static gboolean bond_state_changed(gpointer user_data)
> +{
> + struct test_data *data = tester_get_data();
> + const struct generic_data *test = data->test_data;
> + struct bt_cb_data *cb_data = user_data;
> +
> + if (data->test_init_done && test->expected_hal_cb.bond_state_changed_cb)
> + test->expected_hal_cb.bond_state_changed_cb(cb_data->status,
> + &cb_data->bdaddr, cb_data->state);
> +
> + g_free(cb_data);
> + return FALSE;
> +}
> +
> +static void bond_state_changed_cb(bt_status_t status,
> + bt_bdaddr_t *remote_bd_addr, bt_bond_state_t state)
> +{
> + struct bt_cb_data *cb_data = g_new0(struct bt_cb_data, 1);
> +
> + cb_data->status = status;
> + cb_data->bdaddr = *remote_bd_addr;
> + cb_data->state = state;
> +
> + g_idle_add(bond_state_changed, cb_data);
> +}
> +
> +static void bond_create_pin_success_request_cb(bt_bdaddr_t *remote_bd_addr,
> + bt_bdname_t *bd_name, uint32_t cod)
> +{
> + struct test_data *data = tester_get_data();
> + const bt_bdaddr_t *bdaddr = remote_bd_addr;
> + bt_pin_code_t pin_code = {
> + .pin = { 0x30, 0x30, 0x30, 0x30 },
> + };
> + uint8_t pin_len = 4;
> +
> + data->cb_count--;
> +
> + data->if_bluetooth->pin_reply(bdaddr, TRUE, pin_len, &pin_code);
> +}
> +
> +static gboolean pin_request(gpointer user_data)
> +{
> + struct test_data *data = tester_get_data();
> + const struct generic_data *test = data->test_data;
> + struct bt_cb_data *cb_data = user_data;
> +
> + if (data->test_init_done && test->expected_hal_cb.pin_request_cb)
> + test->expected_hal_cb.pin_request_cb(&cb_data->bdaddr,
> + &cb_data->bdname, cb_data->cod);
> +
> + g_free(cb_data);
> + return FALSE;
> +}
> +
> +static void pin_request_cb(bt_bdaddr_t *remote_bd_addr,
> + bt_bdname_t *bd_name, uint32_t cod)
> +{
> + struct bt_cb_data *cb_data = g_new0(struct bt_cb_data, 1);
> +
> + cb_data->bdaddr = *remote_bd_addr;
> + cb_data->bdname = *bd_name;
> + cb_data->cod = cod;
> +
> + g_idle_add(pin_request, cb_data);
> +}
> +
> static bt_bdaddr_t enable_done_bdaddr_val = { {0x00} };
> static const char enable_done_bdname_val[] = "BlueZ for Android";
> static bt_uuid_t enable_done_uuids_val = {
> @@ -2175,6 +2279,15 @@ static const struct generic_data bt_dev_setprop_disctimeout_fail_test = {
> .expected_adapter_status = BT_STATUS_FAIL,
> };
>
> +static const struct generic_data bt_bond_create_pin_success_test = {
> + .expected_hal_cb.device_found_cb = bond_device_found_cb,
> + .expected_hal_cb.bond_state_changed_cb =
> + bond_test_bonded_state_changed_cb,
> + .expected_hal_cb.pin_request_cb = bond_create_pin_success_request_cb,
> + .expected_cb_count = 4,
> + .expected_adapter_status = BT_STATUS_SUCCESS,
> +};
> +
> static bt_callbacks_t bt_callbacks = {
> .size = sizeof(bt_callbacks),
> .adapter_state_changed_cb = adapter_state_changed_cb,
> @@ -2182,9 +2295,9 @@ static bt_callbacks_t bt_callbacks = {
> .remote_device_properties_cb = remote_device_properties_cb,
> .device_found_cb = device_found_cb,
> .discovery_state_changed_cb = discovery_state_changed_cb,
> - .pin_request_cb = NULL,
> + .pin_request_cb = pin_request_cb,
> .ssp_request_cb = NULL,
> - .bond_state_changed_cb = NULL,
> + .bond_state_changed_cb = bond_state_changed_cb,
> .acl_state_changed_cb = NULL,
> .thread_evt_cb = NULL,
> .dut_mode_recv_cb = NULL,
> @@ -2913,6 +3026,22 @@ static void test_dev_setprop_disctimeout_fail(const void *test_data)
>
> data->if_bluetooth->start_discovery();
> }
> +static void test_bond_create_pin_success(const void *test_data)
> +{
> + struct test_data *data = tester_get_data();
> + struct bthost *bthost = hciemu_client_get_host(data->hciemu);
> +
> + static uint8_t pair_device_pin[] = { 0x30, 0x30, 0x30, 0x30 };
> + const void *pin = pair_device_pin;
> + uint8_t pin_len = 4;
> +
> + init_test_conditions(data);
> +
> + bthost_set_pin_code(bthost, pin, pin_len);
> +
> + data->if_bluetooth->start_discovery();
> +}
> +
> /* Test Socket HAL */
>
> static gboolean adapter_socket_state_changed(gpointer user_data)
> @@ -4251,6 +4380,11 @@ int main(int argc, char *argv[])
> setup_enabled_adapter,
> test_dev_setprop_disctimeout_fail, teardown);
>
> + test_bredrle("Bluetooth Create Bond PIN - Success",
> + &bt_bond_create_pin_success_test,
> + setup_enabled_adapter,
> + test_bond_create_pin_success, teardown);
> +
> test_bredrle("Socket Init", NULL, setup_socket_interface,
> test_dummy, teardown);
>
All patches applied. Thanks.
--
Best regards,
Szymon Janc
^ permalink raw reply [flat|nested] 9+ messages in thread