From: Mike Frysinger Date: Sun, 5 Apr 2015 06:28:44 +0000 (-0400) Subject: sim: iq2000: add a basic testsuite X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;ds=sidebyside;h=eed64ce67576be638408a051e6df1057612a7f8e;p=binutils-gdb.git sim: iq2000: add a basic testsuite --- diff --git a/sim/testsuite/sim/iq2000/ChangeLog b/sim/testsuite/sim/iq2000/ChangeLog new file mode 100644 index 00000000000..d3f8b9dffcf --- /dev/null +++ b/sim/testsuite/sim/iq2000/ChangeLog @@ -0,0 +1,3 @@ +2015-04-05 Mike Frysinger + + * pass.s, allinsn.exp, testutils.inc: New files. diff --git a/sim/testsuite/sim/iq2000/allinsn.exp b/sim/testsuite/sim/iq2000/allinsn.exp new file mode 100644 index 00000000000..38eee9b277f --- /dev/null +++ b/sim/testsuite/sim/iq2000/allinsn.exp @@ -0,0 +1,15 @@ +# iq2000 simulator testsuite + +if [istarget iq2000-*] { + # all machines + set all_machs "iq2000" + + foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.s]] { + # If we're only testing specific files and this isn't one of them, + # skip it. + if ![runtest_file_p $runtests $src] { + continue + } + run_sim_test $src $all_machs + } +} diff --git a/sim/testsuite/sim/iq2000/pass.s b/sim/testsuite/sim/iq2000/pass.s new file mode 100644 index 00000000000..4bb07cb4485 --- /dev/null +++ b/sim/testsuite/sim/iq2000/pass.s @@ -0,0 +1,7 @@ +# check that the sim doesn't die immediately. +# mach: iq2000 + +.include "testutils.inc" + + start + pass diff --git a/sim/testsuite/sim/iq2000/testutils.inc b/sim/testsuite/sim/iq2000/testutils.inc new file mode 100644 index 00000000000..0e0dabd2616 --- /dev/null +++ b/sim/testsuite/sim/iq2000/testutils.inc @@ -0,0 +1,53 @@ +# MACRO: exit + .macro exit nr + ori r5, r0, \nr; + # Trap function 1: exit(). + ori r4, r0, 1; + syscall; + .endm + +# MACRO: pass +# Write 'pass' to stdout and quit + .macro pass + # Trap function 5: write(). + ori r4, r0, 5; + # Use stdout. + ori r5, r0, 1; + # Point to the string. + lui r6, %hi(1f); + ori r6, r6, %lo(1f); + # Number of bytes to write. + ori r7, r0, 5; + # Trigger OS trap. + syscall; + exit 0 + .data + 1: .asciz "pass\n" + .endm + +# MACRO: fail +# Write 'fail' to stdout and quit + .macro fail + # Trap function 5: write(). + ori r4, r0, 5; + # Use stdout. + ori r5, r0, 1; + # Point to the string. + lui r6, %hi(1f); + ori r6, r6, %lo(1f); + # Number of bytes to write. + ori r7, r0, 5; + # Trigger OS trap. + syscall; + exit 0 + .data + 1: .asciz "fail\n" + .endm + +# MACRO: start +# All assembler tests should start with a call to "start" + .macro start + .text +.global _start +_start: + .endm