aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/cpu_trap/Makefile5
-rwxr-xr-xtests/cpu_trap/test.sh14
-rw-r--r--tests/cpu_trap/trap.S8
-rwxr-xr-xtests/machine-unit-tests/test.sh2
-rw-r--r--tests/test.sh3
5 files changed, 30 insertions, 2 deletions
diff --git a/tests/cpu_trap/Makefile b/tests/cpu_trap/Makefile
new file mode 100644
index 0000000..920fa45
--- /dev/null
+++ b/tests/cpu_trap/Makefile
@@ -0,0 +1,5 @@
+include ../test.mk
+
+SRC_cpu_trap = trap.S
+
+$(eval $(call MIPS_ELF,cpu_trap))
diff --git a/tests/cpu_trap/test.sh b/tests/cpu_trap/test.sh
new file mode 100755
index 0000000..430af14
--- /dev/null
+++ b/tests/cpu_trap/test.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+TEST_NAME="cpu_trap"
+
+# Load common test shell functions
+. "$(dirname "$0")/../test.sh"
+
+# Build cli binary
+qtmips_make sub-qtmips_cli
+
+# Compile mips binary
+mips_make_test
+
+# Run test
+qtmips_run qtmips_cli/qtmips_cli --fail-match O "$TEST_DIR/cpu_trap"
diff --git a/tests/cpu_trap/trap.S b/tests/cpu_trap/trap.S
new file mode 100644
index 0000000..9581f7e
--- /dev/null
+++ b/tests/cpu_trap/trap.S
@@ -0,0 +1,8 @@
+.text
+.globl _start
+
+_start:
+ addi $1, $0, 1
+loop:
+ add $1, $1, $1
+ j loop
diff --git a/tests/machine-unit-tests/test.sh b/tests/machine-unit-tests/test.sh
index 8378eff..4e5eae0 100755
--- a/tests/machine-unit-tests/test.sh
+++ b/tests/machine-unit-tests/test.sh
@@ -12,4 +12,4 @@ mips_make_test
cd "$TEST_DIR"
# Run unit tests
-qtmips_run qtmips_machine/tests/tst_machine || echo_fail "Test $TEST_NAME failed!"
+qtmips_run qtmips_machine/tests/tst_machine
diff --git a/tests/test.sh b/tests/test.sh
index 7f83246..36b6b77 100644
--- a/tests/test.sh
+++ b/tests/test.sh
@@ -109,7 +109,8 @@ qtmips_make() {
qtmips_run() {
local BIN="$BUILD_DIR/$1"
shift
- LD_LIBRARY_PATH="$BUILD_DIR/qtmips_machine" "$BIN" "$@"
+ LD_LIBRARY_PATH="$BUILD_DIR/qtmips_machine" "$BIN" "$@" || \
+ echo_fail "QtMips execution exited with non-zero code ($?): $@"
}
## Mips elf binary compilation ##################################################