diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2018-12-18 12:58:31 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-18 12:58:31 -0800 |
commit | ec94c67ade19af2a1d2b34d87f7537303af4e4b8 (patch) | |
tree | 18ea967c0bae59bfc02c38f9f925c938ccc82573 /scripts | |
parent | 0585e67d09b2343bd3ae89615adab92aaa8b5450 (diff) | |
parent | eef7e8aac587dd7bd710dca82b60f9190520334a (diff) |
Merge pull request #121 from sifive/rtl-regression
Add a very simple regression script
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/coreip-rtl-regression.bash | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/scripts/coreip-rtl-regression.bash b/scripts/coreip-rtl-regression.bash new file mode 100755 index 0000000..2c313dd --- /dev/null +++ b/scripts/coreip-rtl-regression.bash @@ -0,0 +1,43 @@ +#!/bin/bash + +set -e +set -o pipefail +set -x + +boards=() +boards+=("coreip-e31") +boards+=("coreip-s51") + +programs=() +programs+=("hello") + +for board in "${boards[@]}" +do + # This avoids a multidimmensional associtave array, which bash doesn't + # appear to enjoy. + releases=() + case "$board" + in + "coreip-e31") releases=("sifive_coreip_E31_AHB_rtl_full_v3p0_rc1") ;; + "coreip-s51") releases=("sifive_coreip_E51_TL_rtl_full_v3p0_rc0") ;; + *) echo "$0: unknown board $board"; exit 1;; + esac + + for release in "${releases}" + do + coreip_wdir="$(echo "$release" | cut -d_ -f1-6)" + coreip_tdir="$(echo "$release" | cut -d_ -f1-7)" + coreip_tar="/work/coreplex/${coreip_wdir}/${release}/${coreip_tdir}.tar.gz" + + for program in "${programs[@]}" + do + make BSP=mee BOARD="${board}" PROGRAM="${program}" clean + make BSP=mee BOARD="${board}" PROGRAM="${program}" software + rm -rf "${coreip_dir}" + tar -xvzpf "${coreip_tar}" + mkdir -p "${coreip_tdir}"/tests/"${program}" + cp software/"${program}"/"${program}".hex "${coreip_tdir}"/tests/"${program}"/program.hex + make -C "${coreip_tdir}" "${program}".out + done + done +done |