summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPalmer Dabbelt <palmer@sifive.com>2018-12-17 18:43:22 -0800
committerPalmer Dabbelt <palmer@sifive.com>2018-12-17 18:43:22 -0800
commiteef7e8aac587dd7bd710dca82b60f9190520334a (patch)
tree18ea967c0bae59bfc02c38f9f925c938ccc82573
parent0585e67d09b2343bd3ae89615adab92aaa8b5450 (diff)
Add a very simple regression script
This runs all our examples (ie, "hello") on all our targets (ie, e31 and s51). It's very simple, but it should at least ensure we can avoid screwing anything up for now. Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
-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