diff options
| author | Alasdair Armstrong | 2018-09-07 16:43:07 +0100 |
|---|---|---|
| committer | Alasdair Armstrong | 2018-09-07 16:43:07 +0100 |
| commit | 7d0280d7ad08bbf9e33164c634c538effdd1340b (patch) | |
| tree | 208c4c605e64e01fde3f9bb67a49f4f3d801464e /test/riscv | |
| parent | a8f2a0ba2b97a0aa2a83b32b44932de876e6b4be (diff) | |
RISCV: Run RISC-V tests using version compiled to C
Current pass rate is 170 out of 181. Looks like there are some issues
with rv64ua-p-lrsc.elf, rv64ua-v-lrsc.elf, and rv64uc-p-rvc.elf which
I think are caused by me not implementing parts of the RISC-V platform
correctly in C. Some of the div and mod tests also fail, which is
probably an issue with using the correct rounding.
Diffstat (limited to 'test/riscv')
| -rwxr-xr-x | test/riscv/run_tests.sh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/riscv/run_tests.sh b/test/riscv/run_tests.sh index 006ed425..d73fa287 100755 --- a/test/riscv/run_tests.sh +++ b/test/riscv/run_tests.sh @@ -69,5 +69,24 @@ done finish_suite "RISCV tests" +if make -C $SAILDIR/riscv riscv_c; +then + green "Building RISCV specification to C" "ok" +else + red "Building RISCV specification to C" "fail" +fi + +for test in $DIR/tests/*.elf; do + sail -elf $test -o ${test%.elf}.bin 2> /dev/null; + if timeout 5 $SAILDIR/riscv/riscv_c --binary=0x1000,reset_vec.bin --image=${test%.elf}.bin > ${test%.elf}.cout 2>&1 && grep -q SUCCESS ${test%.elf}.cout + then + green "$(basename $test)" "ok" + else + red "$(basename $test)" "fail" + fi +done + +finish_suite "RISCV C tests" + printf "</testsuites>\n" >> $DIR/tests.xml |
