/*
 * Copyright (c) 2021 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* Runs tests for HCI_LE_Set_Connection_CTE_Transmit_Parameters command */
void run_set_conn_cte_tx_params_tests(void);
