#!/usr/bin/env bash
#
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0

SIMULATION_ID="cap_unicast_ac_5"
VERBOSITY_LEVEL=2
EXECUTE_TIMEOUT=60

source ${ZEPHYR_BASE}/tests/bsim/sh_common.source

cd ${BSIM_OUT_PATH}/bin


function Execute_AC_5() {
    printf "\n\n======== Running CAP AC_5 with %s =========\n\n" $1

    Execute ./bs_${BOARD}_tests_bsim_bluetooth_audio_prj_conf \
        -v=${VERBOSITY_LEVEL} -s=${SIMULATION_ID} -d=0 -testid=cap_initiator_ac_5 \
        -RealEncryption=1 -rs=23 -argstest sink_preset $1 source_preset $2

    Execute ./bs_${BOARD}_tests_bsim_bluetooth_audio_prj_conf \
        -v=${VERBOSITY_LEVEL} -s=${SIMULATION_ID} -d=1 -testid=cap_acceptor_unicast \
        -RealEncryption=1 -rs=46

    # Simulation time should be larger than the WAIT_TIME in common.h
    Execute ./bs_2G4_phy_v1 -v=${VERBOSITY_LEVEL} -s=${SIMULATION_ID} \
        -D=2 -sim_length=60e6 ${@:3}

    wait_for_background_jobs
}

Execute_AC_5 8_1_1 8_1_1
Execute_AC_5 8_2_1 8_2_1
Execute_AC_5 16_1_1 16_1_1
Execute_AC_5 16_2_1 16_2_1
Execute_AC_5 24_1_1 24_1_1
Execute_AC_5 24_2_1 24_2_1
Execute_AC_5 32_1_1 32_1_1
Execute_AC_5 32_2_1 32_2_1
# Execute_AC_5 441_1_1 441_1_1 # ASSERTION FAIL [iso_interval_us >= cig->c_sdu_interval]
# Execute_AC_5 441_2_1 441_2_1 # ASSERTION FAIL [iso_interval_us >= cig->c_sdu_interval]
Execute_AC_5 48_1_1 48_1_1
Execute_AC_5 48_2_1 48_2_1
Execute_AC_5 48_3_1 48_3_1
Execute_AC_5 48_4_1 48_4_1
Execute_AC_5 48_5_1 48_5_1
# Execute_AC_5 48_6_1 48_6_1 # ASSERTION FAIL [c_latency <= cig->c_latency]
