diff --git a/tests/bluetooth/tester/src/bttester.c b/tests/bluetooth/tester/src/bttester.c index dd6c19a0718..46cd4989361 100644 --- a/tests/bluetooth/tester/src/bttester.c +++ b/tests/bluetooth/tester/src/bttester.c @@ -46,6 +46,7 @@ static void supported_commands(u8_t *data, u16_t len) tester_set_bit(buf, CORE_READ_SUPPORTED_COMMANDS); tester_set_bit(buf, CORE_READ_SUPPORTED_SERVICES); tester_set_bit(buf, CORE_REGISTER_SERVICE); + tester_set_bit(buf, CORE_UNREGISTER_SERVICE); tester_send(BTP_SERVICE_ID_CORE, CORE_READ_SUPPORTED_COMMANDS, BTP_INDEX_NONE, (u8_t *) rp, sizeof(buf)); @@ -108,6 +109,37 @@ rsp: status); } +static void unregister_service(u8_t *data, u16_t len) +{ + struct core_unregister_service_cmd *cmd = (void *) data; + u8_t status; + + switch (cmd->id) { + case BTP_SERVICE_ID_GAP: + status = tester_unregister_gap(); + break; + case BTP_SERVICE_ID_GATT: + status = tester_unregister_gatt(); + break; +#if defined(CONFIG_BT_L2CAP_DYNAMIC_CHANNEL) + case BTP_SERVICE_ID_L2CAP: + status = tester_unregister_l2cap(); + break; +#endif /* CONFIG_BT_L2CAP_DYNAMIC_CHANNEL */ +#if defined(CONFIG_BT_MESH) + case BTP_SERVICE_ID_MESH: + status = tester_unregister_mesh(); + break; +#endif /* CONFIG_BT_MESH */ + default: + status = BTP_STATUS_FAILED; + break; + } + + tester_rsp(BTP_SERVICE_ID_CORE, CORE_UNREGISTER_SERVICE, BTP_INDEX_NONE, + status); +} + static void handle_core(u8_t opcode, u8_t index, u8_t *data, u16_t len) { @@ -126,6 +158,9 @@ static void handle_core(u8_t opcode, u8_t index, u8_t *data, case CORE_REGISTER_SERVICE: register_service(data, len); return; + case CORE_UNREGISTER_SERVICE: + unregister_service(data, len); + return; default: tester_rsp(BTP_SERVICE_ID_CORE, opcode, BTP_INDEX_NONE, BTP_STATUS_UNKNOWN_CMD); diff --git a/tests/bluetooth/tester/src/bttester.h b/tests/bluetooth/tester/src/bttester.h index eb58a0a2a28..3e59a92dfc7 100644 --- a/tests/bluetooth/tester/src/bttester.h +++ b/tests/bluetooth/tester/src/bttester.h @@ -57,6 +57,11 @@ struct core_register_service_cmd { u8_t id; } __packed; +#define CORE_UNREGISTER_SERVICE 0x04 +struct core_unregister_service_cmd { + u8_t id; +} __packed; + /* events */ #define CORE_EV_IUT_READY 0x80 @@ -791,19 +796,23 @@ void tester_send(u8_t service, u8_t opcode, u8_t index, u8_t *data, size_t len); u8_t tester_init_gap(void); +u8_t tester_unregister_gap(void); void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data, u16_t len); u8_t tester_init_gatt(void); +u8_t tester_unregister_gatt(void); void tester_handle_gatt(u8_t opcode, u8_t index, u8_t *data, u16_t len); #if defined(CONFIG_BT_L2CAP_DYNAMIC_CHANNEL) u8_t tester_init_l2cap(void); +u8_t tester_unregister_l2cap(void); void tester_handle_l2cap(u8_t opcode, u8_t index, u8_t *data, u16_t len); #endif /* CONFIG_BT_L2CAP_DYNAMIC_CHANNEL */ #if defined(CONFIG_BT_MESH) u8_t tester_init_mesh(void); +u8_t tester_unregister_mesh(void); void tester_handle_mesh(u8_t opcode, u8_t index, u8_t *data, u16_t len); #endif /* CONFIG_BT_MESH */ diff --git a/tests/bluetooth/tester/src/gap.c b/tests/bluetooth/tester/src/gap.c index a7e372b9eb6..0ee64883ccd 100644 --- a/tests/bluetooth/tester/src/gap.c +++ b/tests/bluetooth/tester/src/gap.c @@ -742,3 +742,8 @@ u8_t tester_init_gap(void) return BTP_STATUS_SUCCESS; } + +u8_t tester_unregister_gap(void) +{ + return BTP_STATUS_SUCCESS; +} diff --git a/tests/bluetooth/tester/src/gatt.c b/tests/bluetooth/tester/src/gatt.c index aeb609f3f90..96847eb89be 100644 --- a/tests/bluetooth/tester/src/gatt.c +++ b/tests/bluetooth/tester/src/gatt.c @@ -1940,3 +1940,8 @@ u8_t tester_init_gatt(void) return BTP_STATUS_SUCCESS; } + +u8_t tester_unregister_gatt(void) +{ + return BTP_STATUS_SUCCESS; +} diff --git a/tests/bluetooth/tester/src/l2cap.c b/tests/bluetooth/tester/src/l2cap.c index 7697619123e..ac0ed637d82 100644 --- a/tests/bluetooth/tester/src/l2cap.c +++ b/tests/bluetooth/tester/src/l2cap.c @@ -350,3 +350,8 @@ u8_t tester_init_l2cap(void) { return BTP_STATUS_SUCCESS; } + +u8_t tester_unregister_l2cap(void) +{ + return BTP_STATUS_SUCCESS; +} diff --git a/tests/bluetooth/tester/src/mesh.c b/tests/bluetooth/tester/src/mesh.c index aff3922db11..b277e3d8172 100644 --- a/tests/bluetooth/tester/src/mesh.c +++ b/tests/bluetooth/tester/src/mesh.c @@ -695,3 +695,8 @@ u8_t tester_init_mesh(void) return BTP_STATUS_SUCCESS; } + +u8_t tester_unregister_mesh(void) +{ + return BTP_STATUS_SUCCESS; +}