X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ft16.c;h=59b480740dfbe7d21fa1e8f82855d6c2a48215d5;hb=3731bdaf94aeba2550fc553aebe34831c203dc36;hp=cf8dd176d1d4a29a68d0dd3e05a6c58e40b788fc;hpb=724e70cf7629655ad7ef628f1b42ced08cc372f1;p=idzebra-moved-to-github.git diff --git a/test/api/t16.c b/test/api/t16.c index cf8dd17..59b4807 100644 --- a/test/api/t16.c +++ b/test/api/t16.c @@ -1,5 +1,5 @@ -/* $Id: t16.c,v 1.1 2006-11-16 12:48:28 adam Exp $ - Copyright (C) 1995-2006 +/* $Id: t16.c,v 1.14 2007-11-30 12:19:09 adam Exp $ + Copyright (C) 1995-2007 Index Data ApS This file is part of the Zebra server. @@ -30,77 +30,60 @@ const char *myrec[] = { "\n", 0}; -#define NUMBER_TO_FETCH_MAX 1000 - -static ZEBRA_RES fetch_first(ZebraHandle zh, const char *element_set, - oid_value format, ODR odr, - const char **rec_buf, size_t *rec_len) -{ - ZebraRetrievalRecord retrievalRecord[1]; - Z_RecordComposition *comp; - ZEBRA_RES res; - - retrievalRecord[0].position = 1; /* get from this position */ - - yaz_set_esn(&comp, element_set, odr->mem); - - res = zebra_records_retrieve(zh, odr, "default", comp, format, 1, - retrievalRecord); - if (res != ZEBRA_OK) - { - int code = zebra_errCode(zh); - yaz_log(YLOG_FATAL, "zebra_records_retrieve returned error %d", - code); - } - else - { - *rec_buf = retrievalRecord[0].buf; - *rec_len = retrievalRecord[0].len; - } - return res; -} - -static ZEBRA_RES fetch_first_compare(ZebraHandle zh, const char *element_set, - oid_value format, const char *cmp_rec) -{ - const char *rec_buf; - size_t rec_len; - ODR odr = odr_createmem(ODR_ENCODE); - ZEBRA_RES res = fetch_first(zh, element_set, format, odr, - &rec_buf, &rec_len); - if (res == ZEBRA_OK) - { - if (strlen(cmp_rec) != rec_len) - res = ZEBRA_FAIL; - else if (memcmp(cmp_rec, rec_buf, rec_len)) - res = ZEBRA_FAIL; - } - odr_destroy(odr); - return res; -} - - - static void tst(int argc, char **argv) { zint hits; ZEBRA_RES res; + const char * zebra_xml_sysno + = "\n"; + + const char * zebra_xml_meta + = "\n"; + + const char * zebra_xml_index_title_p + = "\n" +" my title\n" +"\n"; ZebraService zs = tl_start_up(0, argc, argv); ZebraHandle zh = zebra_open(zs, 0); YAZ_CHECK(tl_init_data(zh, myrec)); - res = zebra_search_PQF(zh, "@attr 1=4 my", "default", &hits); + res = zebra_search_PQF(zh, "@attr 1=4 my", "rsetname", &hits); YAZ_CHECK_EQ(res, ZEBRA_OK); YAZ_CHECK_EQ(hits, 1); - YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", VAL_TEXT_XML, - myrec[0]), ZEBRA_OK); - - YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", VAL_TEXT_XML, - "mismatch"), ZEBRA_FAIL); - + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::data", yaz_oid_recsyn_xml, + "mismatch"), ZEBRA_FAIL); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::data", yaz_oid_recsyn_sutrs, + myrec[0]), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::data", yaz_oid_recsyn_xml, + myrec[0]), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::meta::sysno", + yaz_oid_recsyn_sutrs, + "2"), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::meta::sysno", + yaz_oid_recsyn_xml, + zebra_xml_sysno), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::meta", yaz_oid_recsyn_xml, + zebra_xml_meta), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::index::title:p", + yaz_oid_recsyn_xml, + zebra_xml_index_title_p), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::nonexistent", + yaz_oid_recsyn_xml, ""), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_first_compare(zh, "zebra::index::nonexistent", + yaz_oid_recsyn_xml, ""), ZEBRA_OK); + YAZ_CHECK(tl_close_down(zh, zs)); }