collapseos/tools/tests/unit/test_lib_parse.asm

86 lines
976 B
NASM
Raw Normal View History

jp test
.inc "core.asm"
.inc "lib/util.asm"
.inc "lib/parse.asm"
zasmGetPC:
ret
testNum: .db 1
test:
2019-12-30 13:05:09 +11:00
ld sp, 0xffff
2019-11-09 02:18:54 +11:00
call testParseHex
call testParseHexadecimal
2019-11-09 02:18:54 +11:00
; success
xor a
halt
testParseHex:
ld a, '8'
call parseHex
jp c, fail
cp 8
jp nz, fail
call nexttest
ld a, 'e'
call parseHex
jp c, fail
cp 0xe
jp nz, fail
call nexttest
ld a, 'x'
call parseHex
jp nc, fail
call nexttest
2019-11-09 02:18:54 +11:00
ret
testParseHexadecimal:
2019-11-09 02:18:54 +11:00
ld hl, .s99
call parseHexadecimal
jp nz, fail
ld a, e
cp 0x99
jp nz, fail
call nexttest
2019-11-09 02:18:54 +11:00
ld hl, .saB
call parseHexadecimal
jp nz, fail
ld a, e
cp 0xab
jp nz, fail
call nexttest
; The string "Foo" will not cause a failure. We will parse up to "o"
; and then stop.
2019-11-09 02:18:54 +11:00
ld hl, .sFoo
call parseHexadecimal
jp nz, fail
ld a, e
cp 0xf
call nexttest
2019-11-09 02:18:54 +11:00
ret
2019-11-09 02:18:54 +11:00
.sFoo: .db "Foo", 0
.saB: .db "aB", 0
.s99: .db "99", 0
nexttest:
ld a, (testNum)
inc a
ld (testNum), a
ret
fail:
ld a, (testNum)
halt
2019-11-09 02:18:54 +11:00
; used as RAM
sandbox: