test/trap/run 633 B raw
1
#!/bin/sh
2
# Execute the production trap boundary with a deterministic nested timer.
3
set -eu
4
emulator=${RAD_EMULATOR:-emulator}
5
work=$(mktemp -d)
6
trap 'rm -rf "$work"' EXIT HUP INT TERM
7
for fixture in machine reservations; do
8
    cat "test/trap/$fixture.ras" kernel/kernel/trap.ras > "$work/trap.ras"
9
    "$emulator" -run bin/sync.build.rv64 -- "$work/trap.ras" "$work/trap.rv64"
10
    "$emulator" -machine -max-steps=1000000 -run "$work/trap.rv64"
11
done
12
printf 'trap contexts: machine/user registers, nested timer, illegal instruction, and stacks passed\n'
13
printf 'trap reservations: entry, resume, and user context isolation passed\n'