From 1bd1b714219e1c8324cc2fb5feb4496e80b6adfd Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 9 Nov 2015 01:16:01 -0500 Subject: [PATCH] sim: m32c: add a basic testsuite --- sim/testsuite/sim/m32c/ChangeLog | 6 ++++ sim/testsuite/sim/m32c/allinsn.exp | 16 +++++++++++ sim/testsuite/sim/m32c/fail.s | 9 ++++++ sim/testsuite/sim/m32c/pass.s | 8 ++++++ sim/testsuite/sim/m32c/testutils.inc | 53 ++++++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 sim/testsuite/sim/m32c/allinsn.exp create mode 100644 sim/testsuite/sim/m32c/fail.s create mode 100644 sim/testsuite/sim/m32c/pass.s create mode 100644 sim/testsuite/sim/m32c/testutils.inc diff --git a/sim/testsuite/sim/m32c/ChangeLog b/sim/testsuite/sim/m32c/ChangeLog index 2c28054..8437919 100644 --- a/sim/testsuite/sim/m32c/ChangeLog +++ b/sim/testsuite/sim/m32c/ChangeLog @@ -1,3 +1,9 @@ +2015-11-14 Mike Frysinger + + * allinsn.exp: New file. + * fail.s, pass.s: New tests. + * testutils.inc: New test helper logic. + 2015-11-09 Mike Frysinger * blinky.s: Moved from ../../../m32c/. diff --git a/sim/testsuite/sim/m32c/allinsn.exp b/sim/testsuite/sim/m32c/allinsn.exp new file mode 100644 index 0000000..fb5ccca --- /dev/null +++ b/sim/testsuite/sim/m32c/allinsn.exp @@ -0,0 +1,16 @@ +# M32C simulator testsuite. +# TODO: Add support for .c tests. + +if [istarget m32c*-*-*] { + # all machines + set all_machs "m32c" + + 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/m32c/fail.s b/sim/testsuite/sim/m32c/fail.s new file mode 100644 index 0000000..5066bce --- /dev/null +++ b/sim/testsuite/sim/m32c/fail.s @@ -0,0 +1,9 @@ +# check that the sim doesn't die immediately. +# mach: m32c +# ld: -T$srcdir/$subdir/sample.ld +# xerror: + +.include "testutils.inc" + + start + fail diff --git a/sim/testsuite/sim/m32c/pass.s b/sim/testsuite/sim/m32c/pass.s new file mode 100644 index 0000000..9f39ac0 --- /dev/null +++ b/sim/testsuite/sim/m32c/pass.s @@ -0,0 +1,8 @@ +# check that the sim doesn't die immediately. +# mach: m32c +# ld: -T$srcdir/$subdir/sample.ld + +.include "testutils.inc" + + start + pass diff --git a/sim/testsuite/sim/m32c/testutils.inc b/sim/testsuite/sim/m32c/testutils.inc new file mode 100644 index 0000000..fa6f5a9 --- /dev/null +++ b/sim/testsuite/sim/m32c/testutils.inc @@ -0,0 +1,53 @@ +# MACRO: exit + .macro exit nr + mov.w \nr, r1; + # Trap function 1: exit(). + mov.b #1, r0l; + ste.b r0l, 0x400; + .endm + +# MACRO: pass +# Write 'pass' to stdout and quit + .macro pass + # Use stdout. + mov.w #1, r1; + # Point to the string. + mov.w #1f, r2; + # Number of bytes to write; push onto stack. + push.w #5; + # Adjust as the sim expects 3 byte offset. (!?) + add.w #-3, sp; + # Trap function 5: write(). + mov.b #5, r0l; + ste.b r0l, 0x400; + exit #0 + .data + 1: .asciz "pass\n" + .endm + +# MACRO: fail +# Write 'fail' to stdout and quit + .macro fail + # Use stdout. + mov.w #1, r1; + # Point to the string. + mov.w #1f, r2; + # Number of bytes to write; push onto stack. + push.w #5; + # Adjust as the sim expects 3 byte offset. (!?) + add.w #-3, sp; + # Trap function 5: write(). + mov.b #5, r0l; + ste.b r0l, 0x400; + exit #1 + .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 -- 2.7.4