1 /**
2  * Common functions and helpers for unregister connection callback tests
3  *
4  * Copyright (c) 2024 NXP
5  * Copyright (c) 2022 Nordic Semiconductor ASA
6  *
7  * SPDX-License-Identifier: Apache-2.0
8  */
9 
10 #include <zephyr/kernel.h>
11 
12 #include "bs_types.h"
13 #include "bs_tracing.h"
14 #include "time_machine.h"
15 #include "bstests.h"
16 
17 #include <zephyr/types.h>
18 #include <stddef.h>
19 #include <errno.h>
20 
21 #include <zephyr/bluetooth/bluetooth.h>
22 #include <zephyr/bluetooth/hci.h>
23 #include <zephyr/bluetooth/conn.h>
24 
25 extern enum bst_result_t bst_result;
26 
27 #define WAIT_SECONDS (30) /*seconds*/
28 #define WAIT_TIME (WAIT_SECONDS * USEC_PER_SEC) /*microseconds*/
29 
30 #define CREATE_FLAG(flag) static atomic_t flag = (atomic_t) false
31 #define SET_FLAG(flag)    (void)atomic_set(&flag, (atomic_t) true)
32 #define UNSET_FLAG(flag)  (void)atomic_set(&flag, (atomic_t) false)
33 #define WAIT_FOR_FLAG(flag)                                                                        \
34 	while (!(bool)atomic_get(&flag)) {                                                         \
35 		(void)k_sleep(K_MSEC(1));                                                          \
36 	}
37 #define WAIT_FOR_FLAG_UNSET(flag)                                                                  \
38 	while ((bool)atomic_get(&flag)) {                                                          \
39 		(void)k_sleep(K_MSEC(1));                                                          \
40 	}
41 
42 #define FAIL(...)                                                                                  \
43 	do {                                                                                       \
44 		bst_result = Failed;                                                               \
45 		bs_trace_error_time_line(__VA_ARGS__);                                             \
46 	} while (0)
47 
48 #define PASS(...)                                                                                  \
49 	do {                                                                                       \
50 		bst_result = Passed;                                                               \
51 		bs_trace_info_time(1, __VA_ARGS__);                                                \
52 	} while (0)
53 
54 void test_tick(bs_time_t HW_device_time);
55 void test_init(void);
56