# HG changeset patch # User mas01cr # Date 1190107492 0 # Node ID a7aad4c50cb9dbe3e072faa8ad812b872f8f5013 # Parent 092648f9b532f5f1ffddbddd2c7e1efb9f56fb1f Factor out some common utilities and setup code into test-utils.sh, and source that file within each run-test file. diff -r 092648f9b532 -r a7aad4c50cb9 tests/0001/run-test.sh --- a/tests/0001/run-test.sh Mon Sep 17 16:12:12 2007 +0000 +++ b/tests/0001/run-test.sh Tue Sep 18 09:24:52 2007 +0000 @@ -1,6 +1,6 @@ #! /bin/sh -trap "exit 1" ERR +. ../test-utils.sh if [ -f testdb ]; then rm -f testdb; fi diff -r 092648f9b532 -r a7aad4c50cb9 tests/0002/run-test.sh --- a/tests/0002/run-test.sh Mon Sep 17 16:12:12 2007 +0000 +++ b/tests/0002/run-test.sh Tue Sep 18 09:24:52 2007 +0000 @@ -1,6 +1,6 @@ #! /bin/sh -trap "exit 1" ERR +. ../test-utils.sh if [ -f testdb ]; then rm -f testdb; fi diff -r 092648f9b532 -r a7aad4c50cb9 tests/0003/run-test.sh --- a/tests/0003/run-test.sh Mon Sep 17 16:12:12 2007 +0000 +++ b/tests/0003/run-test.sh Tue Sep 18 09:24:52 2007 +0000 @@ -1,6 +1,6 @@ #! /bin/sh -trap "exit 1" ERR +. ../test-utils.sh if [ -f testdb ]; then rm -f testdb; fi @@ -11,7 +11,8 @@ # handling. # FIXME: endianness! -printf "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x3f" > testfeature +intstring 1 > testfeature +floatstring 1 >> testfeature ${AUDIODB} -d testdb -I -f testfeature diff -r 092648f9b532 -r a7aad4c50cb9 tests/0004/run-test.sh --- a/tests/0004/run-test.sh Mon Sep 17 16:12:12 2007 +0000 +++ b/tests/0004/run-test.sh Tue Sep 18 09:24:52 2007 +0000 @@ -1,38 +1,20 @@ #! /bin/sh -floatstring() { - case $1 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(): $1" - exit 1;; - esac -} - -trap "exit 1" ERR +. ../test-utils.sh if [ -f testdb ]; then rm -f testdb; fi ${AUDIODB} -d testdb -N -# FIXME: endianness! -printf "\x02\x00\x00\x00" > testfeature -floatstring 0 >> testfeature -floatstring 1 >> testfeature -floatstring 1 >> testfeature -floatstring 0 >> testfeature +intstring 2 > testfeature +floatstring 0 1 >> testfeature +floatstring 1 0 >> testfeature ${AUDIODB} -d testdb -I -f testfeature echo "query point (0.0,0.5)" -printf "\x02\x00\x00\x00" > testquery -floatstring 0 >> testquery -floatstring 0.5 >> testquery +intstring 2 > testquery +floatstring 0 0.5 >> testquery ${AUDIODB} -d testdb -Q point -f testquery > testoutput wc -l testoutput | grep 2 @@ -40,9 +22,8 @@ wc -l testoutput | grep 1 echo "query point (0.5,0.0)" -printf "\x02\x00\x00\x00" > testquery -floatstring 0.5 >> testquery -floatstring 0 >> testquery +intstring 2 > testquery +floatstring 0.5 0 >> testquery ${AUDIODB} -d testdb -Q point -f testquery > testoutput wc -l testoutput | grep 2 diff -r 092648f9b532 -r a7aad4c50cb9 tests/test-utils.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-utils.sh Tue Sep 18 09:24:52 2007 +0000 @@ -0,0 +1,37 @@ +# 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). + +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}" +}