1 /*
2  * Copyright (c) 2023 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include "bs_bt_utils.h"
8 #include <zephyr/bluetooth/addr.h>
9 #include <zephyr/bluetooth/conn.h>
10 
11 #include <stdint.h>
12 
13 #include <zephyr/bluetooth/bluetooth.h>
14 
15 #include "babblekit/testcase.h"
16 #include "babblekit/flags.h"
17 
central(void)18 void central(void)
19 {
20 	bs_bt_utils_setup();
21 
22 	printk("== Bonding id a - global bondable mode ==\n");
23 	BUILD_ASSERT(CONFIG_BT_BONDABLE, "CONFIG_BT_BONDABLE must be enabled by default.");
24 	enable_bt_conn_set_bondable(false);
25 	scan_connect_to_first_result();
26 	wait_connected();
27 	set_security(BT_SECURITY_L2);
28 	TAKE_FLAG(flag_pairing_complete);
29 	TAKE_FLAG(flag_bonded);
30 	disconnect();
31 	wait_disconnected();
32 	unpair(BT_ID_DEFAULT);
33 	clear_g_conn();
34 
35 	printk("== Bonding id a - bond per-connection ==\n");
36 	enable_bt_conn_set_bondable(true);
37 	set_bondable(true);
38 	scan_connect_to_first_result();
39 	wait_connected();
40 	set_security(BT_SECURITY_L2);
41 	TAKE_FLAG(flag_pairing_complete);
42 	TAKE_FLAG(flag_bonded);
43 	disconnect();
44 	wait_disconnected();
45 	clear_g_conn();
46 
47 	printk("== Bonding id b - bond per-connection ==\n");
48 	scan_connect_to_first_result();
49 	wait_connected();
50 	set_security(BT_SECURITY_L2);
51 	TAKE_FLAG(flag_pairing_complete);
52 	TAKE_FLAG(flag_not_bonded);
53 	disconnect();
54 	wait_disconnected();
55 	clear_g_conn();
56 
57 	TEST_PASS("PASS");
58 }
59