tests: Bluetooth: Mesh: Add comp p129 test to bsim
Adds testing of composition data page 129 in the mesh_prov_pst_pb_remote_ncrp bsim test. Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
This commit is contained in:
parent
8bb7a280eb
commit
b11c5dd398
3 changed files with 52 additions and 11 deletions
|
@ -61,6 +61,7 @@ CONFIG_BT_MESH_DFD_SRV=y
|
|||
CONFIG_BT_MESH_DFU_SLOT_CNT=3
|
||||
CONFIG_BT_MESH_PRIV_BEACON_SRV=y
|
||||
CONFIG_BT_MESH_PRIV_BEACON_CLI=y
|
||||
CONFIG_BT_MESH_COMP_PAGE_1=y
|
||||
|
||||
# Needed for RPR tests due to huge amount of retransmitted messages
|
||||
CONFIG_BT_MESH_MSG_CACHE_SIZE=64
|
||||
|
|
|
@ -1331,7 +1331,10 @@ static void test_provisioner_pb_remote_client_ncrp_provision(void)
|
|||
static void test_provisioner_pb_remote_client_ncrp(void)
|
||||
{
|
||||
NET_BUF_SIMPLE_DEFINE(dev_comp_p0, BT_MESH_RX_SDU_MAX);
|
||||
NET_BUF_SIMPLE_DEFINE(dev_comp_p1, BT_MESH_RX_SDU_MAX);
|
||||
NET_BUF_SIMPLE_DEFINE(dev_comp_p128, BT_MESH_RX_SDU_MAX);
|
||||
NET_BUF_SIMPLE_DEFINE(dev_comp_p129, BT_MESH_RX_SDU_MAX);
|
||||
|
||||
uint16_t pb_remote_server_addr = 0x0003;
|
||||
uint8_t page;
|
||||
|
||||
|
@ -1340,13 +1343,20 @@ static void test_provisioner_pb_remote_client_ncrp(void)
|
|||
|
||||
bt_mesh_device_setup(&prov, &rpr_cli_comp);
|
||||
|
||||
/* Store Composition Data Page 0 and 128. */
|
||||
/* Store Composition Data Page 0, 1, 128 and 129. */
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 0, &page, &dev_comp_p0));
|
||||
ASSERT_EQUAL(0, page);
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 1, &page, &dev_comp_p1));
|
||||
ASSERT_EQUAL(1, page);
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 128, &page,
|
||||
&dev_comp_p128));
|
||||
ASSERT_EQUAL(128, page);
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 129, &page,
|
||||
&dev_comp_p129));
|
||||
ASSERT_EQUAL(129, page);
|
||||
ASSERT_TRUE(dev_comp_p0.len != dev_comp_p128.len);
|
||||
ASSERT_TRUE(dev_comp_p1.len != dev_comp_p129.len);
|
||||
|
||||
|
||||
LOG_INF("Start Node Composition Refresh procedure...\n");
|
||||
struct bt_mesh_rpr_node srv = {
|
||||
|
@ -1379,18 +1389,50 @@ static void test_provisioner_pb_remote_client_ncrp(void)
|
|||
FAIL("Wrong composition data page 128");
|
||||
}
|
||||
|
||||
/* Check that Composition Data Page 129 still exists and is now equal to Page 1. */
|
||||
net_buf_simple_reset(&dev_comp_p1);
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 1, &page, &dev_comp_p1));
|
||||
ASSERT_EQUAL(1, page);
|
||||
ASSERT_EQUAL(dev_comp_p1.len, dev_comp_p129.len);
|
||||
if (memcmp(dev_comp_p1.data, dev_comp_p129.data, dev_comp_p1.len)) {
|
||||
FAIL("Wrong composition data page 1");
|
||||
}
|
||||
|
||||
net_buf_simple_reset(&dev_comp_p129);
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 129, &page,
|
||||
&dev_comp_p129));
|
||||
ASSERT_EQUAL(129, page);
|
||||
ASSERT_EQUAL(dev_comp_p1.len, dev_comp_p129.len);
|
||||
if (memcmp(dev_comp_p1.data, dev_comp_p129.data, dev_comp_p1.len)) {
|
||||
FAIL("Wrong composition data page 129");
|
||||
}
|
||||
|
||||
PASS();
|
||||
}
|
||||
|
||||
static void comp_data_pages_equal_check(uint16_t server_addr, uint8_t page1, uint8_t page2)
|
||||
{
|
||||
NET_BUF_SIMPLE_DEFINE(comp_1, BT_MESH_RX_SDU_MAX);
|
||||
NET_BUF_SIMPLE_DEFINE(comp_2, BT_MESH_RX_SDU_MAX);
|
||||
uint8_t page;
|
||||
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, server_addr, page1, &page, &comp_1));
|
||||
ASSERT_EQUAL(page1, page);
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, server_addr, page2, &page,
|
||||
&comp_2));
|
||||
ASSERT_EQUAL(page2, page);
|
||||
ASSERT_TRUE(comp_1.len == comp_2.len);
|
||||
if (memcmp(comp_1.data, comp_2.data, comp_1.len)) {
|
||||
FAIL("Composition data page %d is not the same as page %d", page1, page2);
|
||||
}
|
||||
}
|
||||
|
||||
/** @brief Test Node Composition Refresh procedure on Remote Provisioning client:
|
||||
* - verify that Composition Data Page 0 is now equal to Page 128 after reboot.
|
||||
*/
|
||||
static void test_provisioner_pb_remote_client_ncrp_second_time(void)
|
||||
{
|
||||
NET_BUF_SIMPLE_DEFINE(dev_comp_p0, BT_MESH_RX_SDU_MAX);
|
||||
NET_BUF_SIMPLE_DEFINE(dev_comp_p128, BT_MESH_RX_SDU_MAX);
|
||||
uint16_t pb_remote_server_addr = 0x0003;
|
||||
uint8_t page;
|
||||
int err;
|
||||
|
||||
k_sem_init(&prov_sem, 0, 1);
|
||||
|
@ -1398,13 +1440,9 @@ static void test_provisioner_pb_remote_client_ncrp_second_time(void)
|
|||
|
||||
bt_mesh_device_setup(&prov, &rpr_cli_comp);
|
||||
|
||||
/* Check Composition Data Page 0 and 128. */
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 0, &page, &dev_comp_p0));
|
||||
ASSERT_EQUAL(0, page);
|
||||
ASSERT_OK(bt_mesh_cfg_cli_comp_data_get(0, pb_remote_server_addr, 128, &page,
|
||||
&dev_comp_p128));
|
||||
ASSERT_EQUAL(128, page);
|
||||
ASSERT_TRUE(dev_comp_p0.len == dev_comp_p128.len);
|
||||
comp_data_pages_equal_check(pb_remote_server_addr, 0, 128);
|
||||
comp_data_pages_equal_check(pb_remote_server_addr, 1, 129);
|
||||
|
||||
|
||||
LOG_INF("Start Node Composition Refresh procedure...\n");
|
||||
struct bt_mesh_rpr_node srv = {
|
||||
|
|
|
@ -18,8 +18,10 @@ source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
|
|||
# 2. Verify Node Composition Refresh procedure.
|
||||
# PB-Remote client (1st device):
|
||||
# - check that Composition Data pages 0 (old comp data) and 128 (new comp data) are different
|
||||
# - check that Composition Data pages 1 (old comp data) and 129 (new comp data) are different
|
||||
# - run Node Composition Refresh procedure on the 3rd device
|
||||
# - verify Composition Data pages 0 (new comp data) and 128 (same as page 0)
|
||||
# - verify Composition Data pages 1 (new comp data) and 129 (same as page 1)
|
||||
# PB-Remote server (3rd device):
|
||||
# - start with a new Composition Data
|
||||
# 3. Verify that old settings are removed on the 3rd device after Composition Data change.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue