summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorPalmer Dabbelt <palmer@dabbelt.com>2018-12-18 12:58:31 -0800
committerGitHub <noreply@github.com>2018-12-18 12:58:31 -0800
commitec94c67ade19af2a1d2b34d87f7537303af4e4b8 (patch)
tree18ea967c0bae59bfc02c38f9f925c938ccc82573 /scripts
parent0585e67d09b2343bd3ae89615adab92aaa8b5450 (diff)
parenteef7e8aac587dd7bd710dca82b60f9190520334a (diff)
Merge pull request #121 from sifive/rtl-regression
Add a very simple regression script
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/coreip-rtl-regression.bash43
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