| /* |
| * Copyright (c) 2023 Nordic Semiconductor ASA |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| |
| |
| /* test_conn_impl is separated into its own file specifically in order to test that |
| * CONN_MGR_CONN_DECLARE_PUBLIC functions as expected. |
| */ |
| |
| |
| #ifndef ZEPHYR_INCLUDE_TEST_CONN_IMPL_H_ |
| #define ZEPHYR_INCLUDE_TEST_CONN_IMPL_H_ |
| |
| #include <zephyr/net/conn_mgr_connectivity.h> |
| #include <zephyr/net/net_if.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define TEST_CONN_OPT_X 0 |
| #define TEST_CONN_OPT_Y 1 |
| #define TEST_CONN_DATA_LEN 50 |
| |
| struct test_conn_data { |
| /* The number of times an A-implementation API func has been called (other than init) */ |
| int call_cnt_a; |
| |
| /* The number of times a B-implementation API func has been called (other than init) */ |
| int call_cnt_b; |
| |
| /* Increases on each connect call, decreases on each disconnect call */ |
| int conn_bal; |
| |
| /* The number of times A-implementation init was called (should always be 1) */ |
| int init_calls_a; |
| |
| /* The number of times B-implementation init was called (should always be 1) */ |
| int init_calls_b; |
| |
| /* If nonzero, an error code the APIs should return. */ |
| int api_err; |
| |
| /* If true, the implementation should time out on connect. */ |
| bool timeout; |
| |
| /* If nonzero, the implementation should fail to connect and raise this fatal error. */ |
| int fatal_error; |
| |
| /* Places to store data from set_opt calls */ |
| char data_x[TEST_CONN_DATA_LEN + 1]; |
| char data_y[TEST_CONN_DATA_LEN + 1]; |
| }; |
| |
| /* Create test L2 connectivity implementations A and B |
| * |
| * A and B share generic connect/disconnect implementations that differ only in which call counter |
| * they increment. |
| * |
| * Additionally, A has conn_opt callbacks, whereas B does not. |
| */ |
| #define TEST_L2_CONN_IMPL_A_CTX_TYPE struct test_conn_data |
| CONN_MGR_CONN_DECLARE_PUBLIC(TEST_L2_CONN_IMPL_A); |
| |
| #define TEST_L2_CONN_IMPL_B_CTX_TYPE struct test_conn_data |
| CONN_MGR_CONN_DECLARE_PUBLIC(TEST_L2_CONN_IMPL_B); |
| |
| /* Create an invalid L2 connectivity implementation with NULL API */ |
| #define TEST_L2_CONN_IMPL_N_CTX_TYPE struct test_conn_data |
| CONN_MGR_CONN_DECLARE_PUBLIC(TEST_L2_CONN_IMPL_N); |
| |
| /* Create an L2 connectivity implementation without the optional init */ |
| #define TEST_L2_CONN_IMPL_NI_CTX_TYPE struct test_conn_data |
| CONN_MGR_CONN_DECLARE_PUBLIC(TEST_L2_CONN_IMPL_NI); |
| |
| #define SIMULATED_EVENT_DELAY_SECONDS 5 |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* ZEPHYR_INCLUDE_TEST_CONN_IMPL_H_ */ |