1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-21 00:18:06 +11:00
collapseos/tools/tests/zasm/errtests.sh
Virgil Dupras 22e990ed89 Parametrize zasm linux bin's include CFS file
... instead of embedding it in the binary itself. Additionally, add a
"zasm.sh" wrapper to faciliate zasm calls on a linux machine.
2019-06-02 15:50:59 -04:00

60 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# no "set -e" because we test errors
ZASM=../../zasm.sh
chkerr() {
echo "Check that '$1' results in error $2"
${ZASM} <<< $1 > /dev/null
local res=$?
if [[ $res == $2 ]]; then
echo "Good!"
else
echo "$res != $2"
exit 1
fi
}
chkoom() {
echo "Trying OOM error..."
local s=""
# 300 x 27-29 bytes > 8192 bytes. Large enough to smash the pool.
for i in {1..300}; do
s+=".equ abcdefghijklmnopqrstuvwxyz$i 42"
s+=$'\n'
done
${ZASM} <<< "$s" > /dev/null
local res=$?
if [[ $res == 7 ]]; then
echo "Good!"
else
echo "$res != 7"
exit 1
fi
}
chkerr "foo" 1
chkerr "ld a, foo" 2
chkerr "ld a, hl" 2
chkerr ".db foo" 2
chkerr ".dw foo" 2
chkerr ".equ foo bar" 2
chkerr ".org foo" 2
chkerr ".fill foo" 2
chkerr "ld a," 3
chkerr "ld a, 'A" 3
chkerr ".db 0x42," 3
chkerr ".dw 0x4242," 3
chkerr ".equ" 3
chkerr ".equ foo" 3
chkerr ".org" 3
chkerr ".fill" 3
chkerr "#inc" 3
chkerr "#inc foo" 3
chkerr "ld a, 0x100" 4
chkerr ".db 0x100" 4
chkerr "#inc \"doesnotexist\"" 5
chkerr ".equ foo 42 \\ .equ foo 42" 6
chkoom