blob: 2008028f4cee2913537463b8dbb9a133ca17b0e4 [file] [log] [blame]
#!/usr/bin/env bash
#
# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
# Generate a YAML file in order to dispatch Juno TFTF runs on LAVA. Note that
# this script would produce a meaningful output when run via. Jenkins.
#
# $bin_mode must be set. This script outputs to STDOUT
ci_root="$(readlink -f "$(dirname "$0")/..")"
source "$ci_root/utils.sh"
get_recovery_image_url() {
local build_job="tf-build"
local bin_mode="${bin_mode:?}"
if upon "$jenkins_run"; then
echo "$jenkins_url/job/$JOB_NAME/$BUILD_NUMBER/artifact/artefacts/$bin_mode/juno_recovery.zip"
else
echo "file://$workspace/artefacts/$bin_mode/juno_recovery.zip"
fi
}
recovery_img_url="${recovery_img_url:-$(get_recovery_image_url)}"
# Allow running juno tests on specific revision(r0/r1/r2).
juno_revision="${juno_revision:-}"
if [ ! -z "$juno_revision" ]; then
tags="tags:"
juno_revision="- ${juno_revision}"
else
tags=""
fi
cat <<EOF
device_type: juno
job_name: tf-juno
$tags
$juno_revision
timeouts:
# Global timeout value for the whole job.
job:
minutes: 45
actions:
lava-test-monitor:
seconds: 120
connections:
lava-test-monitor:
seconds: 120
priority: medium
visibility: public
actions:
- deploy:
timeout:
minutes: 10
to: vemsd
recovery_image:
url: $recovery_img_url
compression: zip
- boot:
method: minimal
- test:
# Timeout for all the TFTF tests to complete.
timeout:
minutes: 30
monitors:
- name: TFTF
# LAVA looks for a testsuite start string...
start: 'Booting trusted firmware test framework'
# ...and a testsuite end string.
end: 'Exiting tests.'
# For each test case, LAVA looks for a string which includes the testcase
# name and result.
pattern: "(?s)> Executing '(?P<test_case_id>.+?(?='))'(.*) TEST COMPLETE\\\s+(?P<result>(Skipped|Passed|Failed|Crashed))"
# Teach to LAVA how to interpret the TFTF Tests results.
fixupdict:
Passed: pass
Failed: fail
Crashed: fail
Skipped: skip
EOF