summaryrefslogtreecommitdiff
path: root/scripts/coreip-rtl-regression.bash
blob: 2c313ddc26698065c3c537c95a4a23846c5fd34a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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