#!/bin/bash # Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. # For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md root_dir="$(realpath $(dirname $(realpath $0))/..)" build_dir="${root_dir}/build-linux-Debug" run_logs=${build_dir}/ut_run_logs function help() { cat <<- EOF Usage: $0 tests_list EOF } trim() { local var="$*" # remove leading whitespace characters var="${var#"${var%%[![:space:]]*}"}" # remove trailing whitespace characters var="${var%"${var##*[![:space:]]}"}" printf '%s' "$var" } if [[ $# -ne 1 ]]; then help exit 1 fi source ${root_dir}/config/common_scripsts_lib TESTS_FILE=$1 if [[ ! -r ${TESTS_FILE} ]]; then echo "Cannot read: \"${TESTS_FILE}\"" exit 2 fi TEMP_SOURCE=$(mktemp) sed -e '/^[[:space:]]*#.*/d' ${TESTS_FILE} > $TEMP_SOURCE source ${TEMP_SOURCE} pushd ${build_dir} for TEST_BINARY in catch2-* do echo "= ${TEST_BINARY} =" readarray -d\; -t TESTS < <(echo ${TESTS_LIST["${TEST_BINARY}"]} | tr "\n" " " ) I=0 while [[ $I -lt ${#TESTS[@]} ]] do CUR_TEST=$( trim ${TESTS[$I]}) if [[ -n "${CUR_TEST}" ]]; then echo -en "${TEST_BINARY} \"${CUR_TEST}\":" ./${TEST_BINARY} "${CUR_TEST}" --use-colour=yes > ${run_logs} RESULT=$? if [[ ${RESULT} -eq 0 ]]; then echo -e "${OK}" else echo -e "${ERROR}" cat ${run_logs} exit 1 fi CHK_IF_RUN=`cat ${run_logs} | grep "No tests ran" || true` echo "---$CHK_IF_RUN---" if [[ -n "${CHK_IF_RUN}" ]]; then echo "no such test: ${TEST_BINARY} ${CUR_TEST}" exit 1 fi fi I=$(( $I + 1 )) done done popd