Commit 79af744d authored by Pavel Vasilyev's avatar Pavel Vasilyev Committed by Christopher Friedt
Browse files

tests: Bluetooth: Mesh: Make mesh initialization function generic



This commit makes this small piece of code reusable in other tests.

Signed-off-by: default avatarPavel Vasilyev <pavel.vasilyev@nordicsemi.no>
parent 71b27487
Loading
Loading
Loading
Loading
+25 −20
Original line number Diff line number Diff line
@@ -167,26 +167,11 @@ const uint8_t test_net_key[16] = { 1, 2, 3 };
const uint8_t test_app_key[16] = { 4, 5, 6 };
const uint8_t test_va_uuid[16] = "Mesh Label UUID";

static void bt_enabled(void)
static void bt_mesh_device_provision_and_configure(void)
{
	static struct bt_mesh_prov prov;
	uint8_t status;
	int err;

	net_buf_simple_init(pub.msg, 0);
	net_buf_simple_init(vnd_pub.msg, 0);

	err = bt_mesh_init(&prov, &comp);
	if (err) {
		FAIL("Initializing mesh failed (err %d)", err);
		return;
	}

	if (IS_ENABLED(CONFIG_BT_SETTINGS)) {
		LOG_INF("Loading stored settings");
		settings_load();
	}

	err = bt_mesh_provision(test_net_key, 0, 0, 0, cfg->addr, cfg->dev_key);
	if (err == -EALREADY) {
		LOG_INF("Using stored settings");
@@ -196,8 +181,6 @@ static void bt_enabled(void)
		return;
	}

	LOG_INF("Mesh initialized");

	/* Self configure */

	err = bt_mesh_cfg_app_key_add(0, cfg->addr, 0, 0, test_app_key,
@@ -223,7 +206,7 @@ static void bt_enabled(void)
	}
}

void bt_mesh_test_setup(void)
void bt_mesh_device_setup(const struct bt_mesh_prov *prov, const struct bt_mesh_comp *comp)
{
	int err;

@@ -235,7 +218,29 @@ void bt_mesh_test_setup(void)

	LOG_INF("Bluetooth initialized");

	bt_enabled();
	err = bt_mesh_init(prov, comp);
	if (err) {
		FAIL("Initializing mesh failed (err %d)", err);
		return;
	}

	if (IS_ENABLED(CONFIG_BT_SETTINGS)) {
		LOG_INF("Loading stored settings");
		settings_load();
	}

	LOG_INF("Mesh initialized");
}

void bt_mesh_test_setup(void)
{
	static struct bt_mesh_prov prov;

	net_buf_simple_init(pub.msg, 0);
	net_buf_simple_init(vnd_pub.msg, 0);

	bt_mesh_device_setup(&prov, &comp);
	bt_mesh_device_provision_and_configure();
}

void bt_mesh_test_timeout(bs_time_t HW_device_time)
+2 −0
Original line number Diff line number Diff line
@@ -111,6 +111,8 @@ void bt_mesh_test_cfg_set(const struct bt_mesh_test_cfg *cfg, int wait_time);
void bt_mesh_test_setup(void);
void bt_mesh_test_timeout(bs_time_t HW_device_time);

void bt_mesh_device_setup(const struct bt_mesh_prov *prov, const struct bt_mesh_comp *comp);

int bt_mesh_test_recv(uint16_t len, uint16_t dst, k_timeout_t timeout);
int bt_mesh_test_recv_msg(struct bt_mesh_test_msg *msg, k_timeout_t timeout);
int bt_mesh_test_recv_clear(void);
+5 −24
Original line number Diff line number Diff line
@@ -86,25 +86,6 @@ static struct bt_mesh_prov prov = {
	.node_added = prov_node_added,
};

static void bt_mesh_device_setup(void)
{
	int err;

	err = bt_enable(NULL);
	if (err) {
		FAIL("Bluetooth init failed (err %d)", err);
		return;
	}

	LOG_INF("Bluetooth initialized");

	err = bt_mesh_init(&prov, &comp);
	if (err) {
		FAIL("Initializing mesh failed (err %d)", err);
		return;
	}
}

/** @brief Verify that this device pb-adv provision.
 */
static void test_device_pb_adv_no_oob(void)
@@ -113,7 +94,7 @@ static void test_device_pb_adv_no_oob(void)

	k_sem_init(&prov_sem, 0, 1);

	bt_mesh_device_setup();
	bt_mesh_device_setup(&prov, &comp);

	err = bt_mesh_prov_enable(BT_MESH_PROV_ADV);
	ASSERT_OK(err, "Device PB-ADV Enable failed (err %d)", err);
@@ -135,7 +116,7 @@ static void test_provisioner_pb_adv_no_oob(void)

	k_sem_init(&prov_sem, 0, 1);

	bt_mesh_device_setup();
	bt_mesh_device_setup(&prov, &comp);

	err = bt_mesh_cdb_create(test_net_key);
	ASSERT_OK(err, "Failed to create CDB (err %d)\n", err);
@@ -157,7 +138,7 @@ static void test_provisioner_pb_adv_multi(void)

	k_sem_init(&prov_sem, 0, 1);

	bt_mesh_device_setup();
	bt_mesh_device_setup(&prov, &comp);

	err = bt_mesh_cdb_create(test_net_key);
	ASSERT_OK(err, "Failed to create CDB (err %d)\n", err);
@@ -181,7 +162,7 @@ static void test_provisioner_iv_update_flag_zero(void)
	int err;
	uint8_t flags = 0x00;

	bt_mesh_device_setup();
	bt_mesh_device_setup(&prov, &comp);

	err = bt_mesh_provision(test_net_key, 0, flags, 0, 0x0001, dev_key);
	ASSERT_OK(err, "Provisioning failed (err %d)", err);
@@ -201,7 +182,7 @@ static void test_provisioner_iv_update_flag_one(void)
	int err;
	uint8_t flags = 0x02; /* IV Update flag bit set to 1 */

	bt_mesh_device_setup();
	bt_mesh_device_setup(&prov, &comp);

	err = bt_mesh_provision(test_net_key, 0, flags, 0, 0x0001, dev_key);
	ASSERT_OK(err, "Provisioning failed (err %d)", err);