sim: m32c: add a basic testsuite

This commit is contained in:
Mike Frysinger 2015-11-09 01:16:01 -05:00
parent 9bea4d16a6
commit 1bd1b71421
5 changed files with 92 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2015-11-14 Mike Frysinger <vapier@gentoo.org>
* allinsn.exp: New file.
* fail.s, pass.s: New tests.
* testutils.inc: New test helper logic.
2015-11-09 Mike Frysinger <vapier@gentoo.org>
* blinky.s: Moved from ../../../m32c/.

View File

@ -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
}
}

View File

@ -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

View File

@ -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

View File

@ -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