changeset 332:a0493f861531

Added new tests for indexed query over WS. Fixed potential NULL string dereference in audioDB.cpp
author mas01mc
date Sun, 31 Aug 2008 08:45:22 +0000
parents 0c908093082f
children cc3f9d1ca2cd
files audioDB.cpp tests/0040/run-test.sh tests/0040/short-description tests/0050/run-test.sh tests/0050/short-description
diffstat 5 files changed, 99 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/audioDB.cpp	Sat Aug 30 23:35:13 2008 +0000
+++ b/audioDB.cpp	Sun Aug 31 08:45:22 2008 +0000
@@ -58,11 +58,11 @@
   else if(O2_ACTION(COM_QUERY))
     if(isClient){
       if(query_from_key){
-	VERB_LOG(1, "Calling web services query %s on database %s, query=%s\n", radius>0?"(Radius)":"(NN)", dbName, strlen(key)?key:inFile);
+	VERB_LOG(1, "Calling web services query %s on database %s, query=%s\n", radius>0?"(Radius)":"(NN)", dbName, (key&&strlen(key))?key:inFile);
 	ws_query_by_key(dbName, key, inFile, (char*)hostport);	
       }
       else{
-	VERB_LOG(1, "Calling web services query on database %s, query=%s\n", dbName, strlen(key)?key:inFile);
+	VERB_LOG(1, "Calling web services query on database %s, query=%s\n", dbName, (key&&strlen(key))?key:inFile);
 	ws_query(dbName, inFile, (char*)hostport);
       }
     }
--- a/tests/0040/run-test.sh	Sat Aug 30 23:35:13 2008 +0000
+++ b/tests/0040/run-test.sh	Sun Aug 31 08:45:22 2008 +0000
@@ -41,6 +41,7 @@
 ${AUDIODB} -d testdb -X -l 1 -R 1
 
 # Query using the index
+
 ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -R 1 > testoutput
 echo testfeature 1 > test-expected-output
 cmp testoutput test-expected-output
@@ -49,11 +50,18 @@
 echo testfeature 1 > test-expected-output
 cmp testoutput test-expected-output
 
-
 ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -p 1 -R 1 > testoutput
 echo testfeature 1 > test-expected-output
 cmp testoutput test-expected-output
 
+${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -e -R 1 > testoutput
+echo testfeature 3 > test-expected-output
+cmp testoutput test-expected-output
+
+${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -e -R 1 --lsh_exact > testoutput
+echo testfeature 3 > test-expected-output
+cmp testoutput test-expected-output
+
 # make index, sequenceLength=2
 ${AUDIODB} -d testdb -X -l 2 -R 1
 
--- a/tests/0040/short-description	Sat Aug 30 23:35:13 2008 +0000
+++ b/tests/0040/short-description	Sun Aug 31 08:45:22 2008 +0000
@@ -1,1 +1,1 @@
-0030 using INDEX and LSH query
+0030 using LSH INDEX and LSH query
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/0050/run-test.sh	Sun Aug 31 08:45:22 2008 +0000
@@ -0,0 +1,86 @@
+#! /bin/bash
+
+. ../test-utils.sh
+
+if [ -f testdb ]; then rm -f testdb; fi
+
+${AUDIODB} -d testdb -N
+
+intstring 2 > testfeature
+floatstring 0 1 >> testfeature
+floatstring 1 0 >> testfeature
+floatstring 1 0 >> testfeature
+floatstring 0 1 >> testfeature
+
+intstring 1 > testpower
+floatstring -0.5 >> testpower
+floatstring -1 >> testpower
+floatstring -1 >> testpower
+floatstring -0.5 >> testpower
+
+expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature -w testpower
+${AUDIODB} -d testdb -P
+expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature
+${AUDIODB} -d testdb -I -f testfeature -w testpower
+
+# sequence queries require L2NORM
+${AUDIODB} -d testdb -L
+
+echo "query points (0.0,0.5),(0.0,0.5),(0.5,0.0)"
+intstring 2 > testquery
+floatstring 0 0.5 >> testquery
+floatstring 0 0.5 >> testquery
+floatstring 0.5 0 >> testquery
+
+# LSH Indexing tests
+
+# Indexing requires a radius (-R)
+expect_clean_error_exit ${AUDIODB} -d testdb -X -l 1
+
+# Index with default LSH params
+${AUDIODB} -d testdb -X -l 1 -R 1
+
+WSPORT=10020
+start_server ${AUDIODB} ${WSPORT}
+
+# WS Query using the index
+
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 1 -f testquery -w testpower -R 1 > testoutput
+echo testfeature 1 0 0 > test-expected-output
+cmp testoutput test-expected-output
+
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 1 -f testquery -w testpower -p 0 -R 1 > testoutput
+echo testfeature 1 0 0 > test-expected-output
+cmp testoutput test-expected-output
+
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 1 -f testquery -w testpower -p 1 -R 1 > testoutput
+echo testfeature 1 1 0 > test-expected-output
+cmp testoutput test-expected-output
+
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 1 -f testquery -w testpower -e -R 1 > testoutput
+echo testfeature 1 0 0 > test-expected-output
+cmp testoutput test-expected-output
+
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 1 -f testquery -w testpower -e -R 1 --lsh_exact > testoutput
+echo testfeature 1 0 0 > test-expected-output
+cmp testoutput test-expected-output
+
+# make index, sequenceLength=2
+${AUDIODB} -d testdb -X -l 2 -R 1
+
+# query, sequenceLength=2
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 2 -f testquery -w testpower -p 0 -R 1 > testoutput
+echo testfeature 1.33333 0 0 > test-expected-output
+cmp testoutput test-expected-output
+
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 2 -f testquery -w testpower -p 1 -R 1 > testoutput
+echo testfeature 1 1 0 > test-expected-output
+cmp testoutput test-expected-output
+
+${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 2 -f testquery -w testpower -p 0 -R 1 --lsh_exact > testoutput
+echo testfeature 1.33333 0 0 > test-expected-output
+cmp testoutput test-expected-output
+
+stop_server $!
+
+exit 104
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/0050/short-description	Sun Aug 31 08:45:22 2008 +0000
@@ -0,0 +1,1 @@
+0040 using WS