Mercurial > hg > audiodb
view tests/test-utils.sh @ 78:06922d637752 audiodb-debian
Merge trunk changes -r52:93 onto audiodb-debian branch
author | mas01cr |
---|---|
date | Mon, 01 Oct 2007 14:40:08 +0000 |
parents | |
children | 1521d46bc1ac |
line wrap: on
line source
# no shebang line: this file should be sourced by run-test.sh files trap "exit 1" ERR if [ -z ${AUDIODB} ]; then AUDIODB=../../audioDB fi # FIXME: maybe generalize to multiple arguments? Also, implement it # properly, rather than just for a few floats that we know how to # encode. This might involve writing some C code, as Bash doesn't do # Floating Point. (scanf() is probably enough). expect_clean_error_exit() { trap - ERR "$@" exit_code=$? trap "exit 1" ERR if [ $exit_code -eq 0 ]; then exit 1 elif [ $exit_code -ge 126 ]; then exit 1 fi } floatstring() { for arg in "$@"; do case ${arg} in 0) printf "\x00\x00\x00\x00\x00\x00\x00\x00";; 0.5) printf "\x00\x00\x00\x00\x00\x00\xe0\x3f";; 1) printf "\x00\x00\x00\x00\x00\x00\xf0\x3f";; *) echo "bad arg to floatstring(): ${arg}" exit 1;; esac done } # FIXME: likewise. And endianness issues (which are a reflection of # the endianness of audioDB as of 2007-09-18, unfortunately). intstring() { # works up to 9 for now if [ $1 -ge 10 ]; then echo "intstring() arg too large: ${1}"; exit 1; fi printf "%b\x00\x00\x00" "\\x${1}" }