X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ft7.c;h=d5ce6eace8002d45ba365135771758b7138d8142;hb=6ba9698e88c0283e40fa5980a1a6b551fff2d597;hp=8d9406579cf350604be5e02e561095c57381c6c0;hpb=8f35d180d9b19f5e8fc97de3831c0bb802c3e60c;p=idzebra-moved-to-github.git diff --git a/test/api/t7.c b/test/api/t7.c index 8d94065..d5ce6ea 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.12 2006-05-10 08:13:35 adam Exp $ + Copyright (C) 1995-2005 + Index Data ApS This file is part of the Zebra server. @@ -20,79 +20,72 @@ 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}; + +static void tst(int argc, char **argv) +{ + const char *setname1 = "set1"; + const char *setname2 = "set2"; + const char *setname3 = "set3"; int status; - int rc; + ZebraService zs = tl_start_up(0, argc, argv); + ZebraHandle zh = zebra_open (zs, 0); 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; - - yaz_log_init_file("t7.log"); - - nmem_init (); - - zs = start_service(); - zh = zebra_open (zs); - zebra_select_database(zh, "Default"); - zebra_init(zh); - - zebra_begin_trans (zh, 1); - zebra_add_record (zh, myrec, strlen(myrec)); - zebra_end_trans (zh); - - zebra_begin_trans (zh, 0); + 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_CHECK(tl_init_data(zh, recs)); + + YAZ_CHECK(zebra_begin_trans(zh, 0) == ZEBRA_OK); - zebra_search_RPN (zh, odr_input, query, setname1, &hits); + YAZ_CHECK(zebra_search_RPN(zh, odr_input, query, setname1, &hits) == + ZEBRA_OK); + + YAZ_CHECK(zebra_sort(zh, odr_output, 1, &setname1, setname2, spec, + &status) + == ZEBRA_OK); + YAZ_CHECK(zebra_sort(zh, odr_output, 1, &setname2, setname3, spec, + &status) == ZEBRA_OK); + + spec = yaz_sort_spec(odr_output, "1=5 <"); /* invalid sort spec */ - 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);} + YAZ_CHECK(zebra_sort(zh, odr_output, 1, &setname1, setname2, spec, + &status) == ZEBRA_FAIL); + + YAZ_CHECK(zebra_end_trans(zh) == ZEBRA_OK); - 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); + YAZ_CHECK(tl_close_down(zh, zs)); } + +TL_MAIN +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +