summaryrefslogtreecommitdiff
path: root/test/riscv
diff options
context:
space:
mode:
authorAlasdair Armstrong2018-09-07 16:43:07 +0100
committerAlasdair Armstrong2018-09-07 16:43:07 +0100
commit7d0280d7ad08bbf9e33164c634c538effdd1340b (patch)
tree208c4c605e64e01fde3f9bb67a49f4f3d801464e /test/riscv
parenta8f2a0ba2b97a0aa2a83b32b44932de876e6b4be (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-xtest/riscv/run_tests.sh19
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