annotate tests/0017/run-test.sh @ 277:abfb26e08d9c audiodb-debian

Merge trunk changes -r326:386 into audiodb-debian branch. Plus new debian/changelog version. (Should have used an epoch really, but couldn't be bothered; TODO: work out a sane version numbering policy).
author mas01cr
date Tue, 01 Jul 2008 09:12:40 +0000
parents 1521d46bc1ac
children
rev   line source
mas01cr@277 1 #! /bin/bash
mas01cr@107 2
mas01cr@107 3 . ../test-utils.sh
mas01cr@107 4
mas01cr@107 5 if [ -f testdb ]; then rm -f testdb; fi
mas01cr@107 6
mas01cr@107 7 ${AUDIODB} -d testdb -N
mas01cr@107 8
mas01cr@107 9 # tests that the lack of -l when the query sequence is shorter doesn't
mas01cr@107 10 # segfault.
mas01cr@107 11
mas01cr@107 12 intstring 2 > testfeature
mas01cr@107 13 floatstring 0 1 >> testfeature
mas01cr@107 14 floatstring 1 0 >> testfeature
mas01cr@107 15
mas01cr@107 16 ${AUDIODB} -d testdb -I -f testfeature
mas01cr@107 17
mas01cr@107 18 # sequence queries require L2NORM
mas01cr@107 19 ${AUDIODB} -d testdb -L
mas01cr@107 20
mas01cr@107 21 start_server ${AUDIODB} 10017
mas01cr@107 22
mas01cr@107 23 echo "query point (0.0,0.5)"
mas01cr@107 24 intstring 2 > testquery
mas01cr@107 25 floatstring 0 0.5 >> testquery
mas01cr@107 26
mas01cr@107 27 # FIXME: this actually revealed a horrible failure mode of the server:
mas01cr@107 28 # since we were throwing exceptions from the constructor, the
mas01cr@107 29 # destructor wasn't getting called and so we were retaining 2Gb of
mas01cr@107 30 # address space, leading to immediate out of memory errors for the
mas01cr@107 31 # /second/ call. We fix that by being a bit more careful about our
mas01cr@107 32 # exception handling and cleanup discipline, but how to test...?
mas01cr@107 33
mas01cr@107 34 expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery
mas01cr@107 35 expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery -n 1
mas01cr@107 36
mas01cr@107 37 check_server $!
mas01cr@107 38
mas01cr@107 39 echo "query point (0.5,0.0)"
mas01cr@107 40 intstring 2 > testquery
mas01cr@107 41 floatstring 0.5 0 >> testquery
mas01cr@107 42
mas01cr@107 43 expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery
mas01cr@107 44 expect_client_failure ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -f testquery -n 1
mas01cr@107 45
mas01cr@107 46 check_server $!
mas01cr@107 47
mas01cr@107 48 # see if the server can actually produce any output at this point
mas01cr@107 49 ${AUDIODB} -c localhost:10017 -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput
mas01cr@107 50 echo testfeature 0 0 1 > test-expected-output
mas01cr@107 51 cmp testoutput test-expected-output
mas01cr@107 52
mas01cr@107 53 stop_server $!
mas01cr@107 54
mas01cr@107 55 exit 104