Mercurial > hg > audiodb
changeset 96:8f7d0ae0ede4
Web services version of short query (shorter than -l) handling.
This was originally just a straight copy of 0007, but in fact that
fails in an interesting way: we throw an exception from the constructor,
so the destructor is never called and so we don't release address space.
Fix forthcoming.
author | mas01cr |
---|---|
date | Wed, 03 Oct 2007 15:15:03 +0000 |
parents | 6066d75a6d39 |
children | 69424e77621f |
files | tests/0017/run-test.sh tests/0017/short-description |
diffstat | 2 files changed, 56 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/0017/run-test.sh Wed Oct 03 15:15:03 2007 +0000 @@ -0,0 +1,55 @@ +#! /bin/sh + +. ../test-utils.sh + +if [ -f testdb ]; then rm -f testdb; fi + +${AUDIODB} -d testdb -N + +# tests that the lack of -l when the query sequence is shorter doesn't +# segfault. + +intstring 2 > testfeature +floatstring 0 1 >> testfeature +floatstring 1 0 >> testfeature + +${AUDIODB} -d testdb -I -f testfeature + +# sequence queries require L2NORM +${AUDIODB} -d testdb -L + +start_server ${AUDIODB} 10017 + +echo "query point (0.0,0.5)" +intstring 2 > testquery +floatstring 0 0.5 >> testquery + +# FIXME: this actually revealed a horrible failure mode of the server: +# since we were throwing exceptions from the constructor, the +# destructor wasn't getting called and so we were retaining 2Gb of +# address space, leading to immediate out of memory errors for the +# /second/ call. We fix that by being a bit more careful about our +# exception handling and cleanup discipline, but how to test...? + +expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery +expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery -n 1 + +check_server $! + +echo "query point (0.5,0.0)" +intstring 2 > testquery +floatstring 0.5 0 >> testquery + +expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery +expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery -n 1 + +check_server $! + +# see if the server can actually produce any output at this point +${AUDIODB} -c localhost:10017 -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +echo testfeature 0 0 1 > test-expected-output +cmp testoutput test-expected-output + +stop_server $! + +exit 104