X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ft7.c;h=0c4d308d899d48b8b842ba58ec479bb2cfccce75;hb=6cb032fd2ece4742e3516e0941507143f677e5cd;hp=8d9406579cf350604be5e02e561095c57381c6c0;hpb=8f35d180d9b19f5e8fc97de3831c0bb802c3e60c;p=idzebra-moved-to-github.git diff --git a/test/api/t7.c b/test/api/t7.c index 8d94065..0c4d308 100644 --- a/test/api/t7.c +++ b/test/api/t7.c @@ -1,6 +1,6 @@ -/* $Id: t7.c,v 1.2 2004-10-01 09:13:06 heikki Exp $ - Copyright (C) 2004 - Index Data Aps +/* $Id: t7.c,v 1.9 2005-05-11 12:39:38 adam Exp $ + Copyright (C) 1995-2005 + Index Data ApS This file is part of the Zebra server. @@ -20,79 +20,84 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include -#include +/** t7.c sorting */ + +#include "testlib.h" #include -#include -/* read zebra.cfg from env var srcdir if it exists; otherwise current dir */ -static ZebraService start_service() -{ - char cfg[256]; - char *srcdir = getenv("srcdir"); - sprintf(cfg, "%.200s%szebra.cfg", srcdir ? srcdir : "", srcdir ? "/" : ""); - return zebra_start(cfg); -} - -int main(int argc, char **argv) -{ - ZebraService zs; - ZebraHandle zh; - const char *myrec = +const char *recs[] = { "\n" " My title\n" - "\n"; - const char *setname1="set1"; - const char *setname2="set2"; - const char *setname3="set3"; + "\n", + 0}; + + +int main(int argc, char **argv) +{ + const char *setname1 = "set1"; + const char *setname2 = "set2"; + const char *setname3 = "set3"; int status; - int rc; + ZEBRA_RES ret; + ZebraService zs = start_up(0, argc, argv); + ZebraHandle zh = zebra_open (zs); ODR odr_input = odr_createmem (ODR_DECODE); ODR odr_output = odr_createmem (ODR_ENCODE); YAZ_PQF_Parser parser = yaz_pqf_create(); - Z_RPNQuery *query = yaz_pqf_parse(parser, odr_input, - "@attr 1=4 my"); - Z_SortKeySpecList *spec = - yaz_sort_spec (odr_output, "@attr 1=4 id"); - int hits; + Z_RPNQuery *query = yaz_pqf_parse(parser, odr_input, "@attr 1=4 my"); + Z_SortKeySpecList *spec = yaz_sort_spec (odr_output, "1=4 <"); + zint hits; - yaz_log_init_file("t7.log"); - - nmem_init (); - - zs = start_service(); - zh = zebra_open (zs); - zebra_select_database(zh, "Default"); - zebra_init(zh); + init_data(zh, recs); - zebra_begin_trans (zh, 1); - zebra_add_record (zh, myrec, strlen(myrec)); - zebra_end_trans (zh); - - zebra_begin_trans (zh, 0); + zebra_begin_trans(zh, 0); - zebra_search_RPN (zh, odr_input, query, setname1, &hits); + ret = zebra_search_RPN(zh, odr_input, query, setname1, &hits); + if (ret == ZEBRA_FAIL) + { + int code = zebra_errCode(zh); + printf("search returned ERROR, OK was expected ret=%d " + "code=%d\n", ret, code); + } + + ret = zebra_sort(zh, odr_output, 1, &setname1, setname2, spec, &status); + if (ret == ZEBRA_FAIL) + { + int code = zebra_errCode(zh); + printf("sort A returned ERROR, OK was expected ret=%d status=%d " + "code=%d\n", ret, status, code); + exit(1); + } + + ret = zebra_sort(zh, odr_output, 1, &setname2, setname3, spec, &status); + if (ret == ZEBRA_FAIL) + { + int code = zebra_errCode(zh); + printf("sort B returned ERROR, OK was expected ret=%d status=%d " + "code=%d\n", ret, status, code); + exit(1); + } - rc=zebra_sort(zh, odr_output, 1, &setname1, setname2, spec, &status); - if (rc) { printf("sort A returned %d %d \n",rc,status); exit(1);} - rc=zebra_sort(zh, odr_output, 1, &setname2, setname3, spec, &status); - if (rc) { printf("sort B returned %d %d \n",rc,status); exit(1);} + spec = yaz_sort_spec(odr_output, "1=5 <"); /* invalid sort spec */ - zebra_end_trans (zh); + ret = zebra_sort(zh, odr_output, 1, &setname1, setname2, spec, &status); + if (ret == ZEBRA_OK) + { + printf("sort C returned OK, ERROR was expected ret=%d status=%d\n", + ret, status); + exit(1); + } + zebra_end_trans(zh); yaz_pqf_destroy(parser); /* - zebra_deleleResultSet(zh, Z_DeleteRequest_list, + zebra_deleteResultSet(zh, Z_DeleteRequest_list, 1, &setnamep, &status); - */ - odr_destroy (odr_input); - odr_destroy (odr_output); + */ + odr_destroy(odr_input); + odr_destroy(odr_output); - zebra_commit (zh); - zebra_close (zh); - zebra_stop (zs); + zebra_commit(zh); - nmem_exit (); - xmalloc_trav ("x"); - exit (0); + return close_down(zh, zs, 0); }