From 02c7eb0161c100a825d95176905423301ea693e3 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Tue, 23 Jul 2019 09:28:39 -0400 Subject: [PATCH] zasm: clarify strlen's API --- apps/zasm/util.asm | 1 + tools/tests/unit/runtests.sh | 17 +++++++++++++---- tools/tests/unit/test_util_z.asm | 7 +++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/apps/zasm/util.asm b/apps/zasm/util.asm index a6f7179..86caa4b 100644 --- a/apps/zasm/util.asm +++ b/apps/zasm/util.asm @@ -25,6 +25,7 @@ subDEFromHL: ret ; Returns length of string at (HL) in A. +; Doesn't include null termination. strlen: push bc push hl diff --git a/tools/tests/unit/runtests.sh b/tools/tests/unit/runtests.sh index 2174d76..835af11 100755 --- a/tools/tests/unit/runtests.sh +++ b/tools/tests/unit/runtests.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash set -e @@ -9,12 +9,21 @@ RUNBIN="${TOOLS}/emul/runbin/runbin" KERNEL="${BASE}/kernel" APPS="${BASE}/apps" -for fn in *.asm; do - echo "Running test ${fn}" - if ! ${ZASM} "${KERNEL}" "${APPS}" < ${fn} | ${RUNBIN}; then +chk() { + echo "Running test $1" + if ! ${ZASM} "${KERNEL}" "${APPS}" < $1 | ${RUNBIN}; then echo "failed with code ${PIPESTATUS[1]}" exit 1 fi +} + +if [[ ! -z $1 ]]; then + chk $1 + exit 0 +fi + +for fn in *.asm; do + chk "${fn}" done echo "All tests passed!" diff --git a/tools/tests/unit/test_util_z.asm b/tools/tests/unit/test_util_z.asm index 8839d07..3aaad9b 100644 --- a/tools/tests/unit/test_util_z.asm +++ b/tools/tests/unit/test_util_z.asm @@ -5,6 +5,7 @@ jp test #include "zasm/util.asm" testNum: .db 1 +sFoo: .db "foo", 0 test: ld hl, 0xffff @@ -18,6 +19,12 @@ test: jp nz, fail call nexttest + ld hl, sFoo + call strlen + cp 3 + jp nz, fail + call nexttest + ; success xor a halt