Leonardo Sandoval | 9dfdd1b | 2020-08-06 17:08:11 -0500 | [diff] [blame] | 1 | #!/usr/bin/env bash |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 2 | # |
Saul Romero | 82bcfb0 | 2023-06-27 16:24:13 +0100 | [diff] [blame] | 3 | # Copyright (c) 2019-2023, Arm Limited. All rights reserved. |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 4 | # |
| 5 | # SPDX-License-Identifier: BSD-3-Clause |
| 6 | # |
| 7 | |
| 8 | set -e |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 9 | set -x |
| 10 | export COVERAGE_ON=$((echo "$RUN_CONFIG" | grep -v 'aarch32' | grep -qE 'bmcov' && echo 1) || |
| 11 | (echo "${TEST_GROUP}" | grep -v 'aarch32' | grep -qE 'code-coverage' && echo 1) || |
| 12 | echo 0) |
| 13 | echo "COVERAGE_ON=${COVERAGE_ON}" |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 14 | |
Zelalem | 917b43e | 2020-08-04 11:39:55 -0500 | [diff] [blame] | 15 | if [ $COVERAGE_ON -eq 1 ]; then |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 16 | # Load code coverage binary |
| 17 | echo "Code coverage for binaries enabled..." |
| 18 | export OUTDIR=${WORKSPACE}/html |
| 19 | mkdir -p $OUTDIR |
| 20 | source "$CI_ROOT/script/qa-code-coverage.sh" |
| 21 | fi |
| 22 | |
| 23 | |
| 24 | if [ $COVERAGE_ON -eq 1 ]; then |
| 25 | LIST_OF_BINARIES="" |
| 26 | OBJDUMP="$(which 'aarch64-none-elf-objdump')" |
| 27 | READELF="$(which 'aarch64-none-elf-readelf')" |
Saul Romero | fe2b9c1 | 2024-06-02 21:22:13 +0100 | [diff] [blame] | 28 | FALLBACK_PLUGIN_URL="${FALLBACK_PLUGIN_URL:-https://downloads.trustedfirmware.org/coverage-plugin/qa-tools/coverage-tool}" |
| 29 | FALLBACK_PLUGIN_URL_ALT="${FALLBACK_PLUGIN_URL_ALT:-https://artifactory.eu02.arm.com/artifactory/trustedfirmware.downloads/coverage-plugin}" |
| 30 | FALLBACK_FILES="${FALLBACK_FILES:-coverage_trace.so,coverage_trace.o,plugin_utils.o}" |
| 31 | FALLBACK_FILES_ALT="${FALLBACK_FILES_ALT:-CoverageTrace.so,CoverageTrace.o,PluginUtils.o}" |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 32 | |
| 33 | if [[ "$TEST_GROUP" == scp* ]]; then |
| 34 | PROJECT="SCP" |
| 35 | LIST_OF_BINARIES="scp_ram.elf scp_rom.elf mcp_rom.elf mcp_ram.elf" |
| 36 | OBJDUMP="$(which 'arm-none-eabi-objdump')" |
| 37 | READELF="$(which 'arm-none-eabi-readelf')" |
Saul Romero | fe2b9c1 | 2024-06-02 21:22:13 +0100 | [diff] [blame] | 38 | FALLBACK_PLUGIN_URL="${FALLBACK_PLUGIN_URL_ALT}" |
| 39 | FALLBACK_FILES="${FALLBACK_FILES_ALT}" |
Saul Romero | 82bcfb0 | 2023-06-27 16:24:13 +0100 | [diff] [blame] | 40 | elif [[ "$TEST_GROUP" == spm* ]];then |
| 41 | PROJECT="HAFNIUM" |
| 42 | LIST_OF_BINARIES="secure_hafnium.elf hafnium.elf" |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 43 | elif [[ "$TEST_GROUP" == tf* ]];then |
| 44 | PROJECT="TF-A" |
| 45 | LIST_OF_BINARIES="bl1.elf bl2.elf bl31.elf" |
Saul Romero | fe2b9c1 | 2024-06-02 21:22:13 +0100 | [diff] [blame] | 46 | FALLBACK_PLUGIN_URL="${FALLBACK_PLUGIN_URL_ALT}" |
| 47 | FALLBACK_FILES="${FALLBACK_FILES_ALT}" |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 48 | else |
| 49 | echo "No project assigned for $TEST_GROUP ..." |
| 50 | exit -1 |
| 51 | fi |
| 52 | # Plugin has to be built before running model |
| 53 | build_tool |
Zelalem | 917b43e | 2020-08-04 11:39:55 -0500 | [diff] [blame] | 54 | fi |
| 55 | |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 56 | "$CI_ROOT/script/build_package.sh" |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 57 | if [ "$skip_runs" ]; then |
| 58 | exit 0 |
| 59 | fi |
| 60 | |
| 61 | # Execute test locally for FVP configs |
| 62 | if [ "$RUN_CONFIG" != "nil" ] && echo "$RUN_CONFIG" | grep -iq '^fvp'; then |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 63 | export BIN_MODE=debug |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 64 | "$CI_ROOT/script/run_package.sh" |
Zelalem | 917b43e | 2020-08-04 11:39:55 -0500 | [diff] [blame] | 65 | |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 66 | if [ $COVERAGE_ON -eq 1 ]; then |
Zelalem | 917b43e | 2020-08-04 11:39:55 -0500 | [diff] [blame] | 67 | sync |
Saul Romero | cacda17 | 2023-03-10 14:23:41 +0000 | [diff] [blame] | 68 | sleep 5 # wait for trace files to be written |
| 69 | ELF_FOLDER=$artefacts/$BIN_MODE |
| 70 | TRACE_FOLDER=$artefacts/$BIN_MODE |
| 71 | echo "Toolchain:$OBJDUMP" |
| 72 | create_intermediate_layer "${TRACE_FOLDER}" "${ELF_FOLDER}" "${LIST_OF_BINARIES}" |
| 73 | create_coverage_report |
Zelalem | 917b43e | 2020-08-04 11:39:55 -0500 | [diff] [blame] | 74 | fi |
Fathi Boudra | 422bf77 | 2019-12-02 11:10:16 +0200 | [diff] [blame] | 75 | fi |