| # Copyright 2021 Nordic Semiconductor |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| process_ids=(); exit_code=0 |
| |
| trap ctrl_c INT |
| |
| function ctrl_c() { |
| echo "Aborted by CTRL-C" |
| conf=${conf:-prj_conf} |
| |
| for process_id in ${process_ids[@]}; do |
| kill -15 $process_id |
| done |
| } |
| |
| function Execute(){ |
| if [ ! -f $1 ]; then |
| echo -e " \e[91m`pwd`/`basename $1` cannot be found (did you forget to\ |
| compile it?)\e[39m" |
| exit 1 |
| fi |
| timeout 300 $@ & process_ids+=( $! ) |
| } |
| |
| function Skip(){ |
| for i in "${SKIP[@]}" ; do |
| if [ "$i" == "$1" ] ; then |
| return 0 |
| fi |
| done |
| |
| return 1 |
| } |
| |
| function RunTest(){ |
| verbosity_level=${verbosity_level:-2} |
| extra_devs=${EXTRA_DEVS:-0} |
| |
| cd ${BSIM_OUT_PATH}/bin |
| |
| idx=0 |
| |
| s_id=$1 |
| shift 1 |
| |
| testids=() |
| for testid in $@ ; do |
| if [ "$testid" == "--" ]; then |
| shift 1 |
| break |
| fi |
| |
| testids+=( $testid ) |
| shift 1 |
| done |
| |
| test_options=$@ |
| |
| for testid in ${testids[@]} ; do |
| if Skip $testid; then |
| echo "Skipping $testid (device #$idx)" |
| let idx=idx+1 |
| continue |
| fi |
| |
| echo "Starting $testid as device #$idx" |
| conf=${conf:-prj_conf} |
| Execute \ |
| ./bs_${BOARD}_tests_bluetooth_bsim_bt_bsim_test_mesh_${conf} \ |
| -v=${verbosity_level} -s=$s_id -d=$idx -RealEncryption=1 \ |
| -testid=$testid ${test_options} |
| let idx=idx+1 |
| done |
| |
| count=$(expr $idx + $extra_devs) |
| |
| echo "Starting phy with $count devices" |
| |
| Execute ./bs_2G4_phy_v1 -v=${verbosity_level} -s=$s_id -D=$count |
| |
| for process_id in ${process_ids[@]}; do |
| wait $process_id || let "exit_code=$?" |
| done |
| |
| if [ "$exit_code" != "0" ] ; then |
| exit $exit_code #the last exit code != 0 |
| fi |
| } |
| |
| : "${BSIM_OUT_PATH:?BSIM_OUT_PATH must be defined}" |
| |
| #Give a default value to BOARD if it does not have one yet: |
| BOARD="${BOARD:-nrf52_bsim}" |