X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ft16.c;h=d7d03a0749f1cc48807d6a98934b96d51fd57304;hb=4717561b3bc0bcd508b5d017079bd99b3a27dd84;hp=563b267e768ae83cb4bda4add0dbdc6d5bd370ed;hpb=c266dcc8a54593cc8d511074cce43a35729a9e1f;p=idzebra-moved-to-github.git diff --git a/test/api/t16.c b/test/api/t16.c index 563b267..d7d03a0 100644 --- a/test/api/t16.c +++ b/test/api/t16.c @@ -1,8 +1,5 @@ -/* $Id: t16.c,v 1.2 2006-11-16 20:44:28 marc Exp $ - Copyright (C) 1995-2006 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1995-2008 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -30,63 +27,15 @@ 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"; + = "\n"; + + const char * zebra_xml_meta + = "\n"; const char * zebra_xml_index_title_p = "\n" @@ -98,29 +47,40 @@ static void tst(int argc, char **argv) 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, - "mismatch"), ZEBRA_FAIL); - - YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", VAL_SUTRS, - myrec[0]), ZEBRA_OK); - - YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", VAL_TEXT_XML, - myrec[0]), ZEBRA_OK); - - YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::meta::sysno", VAL_SUTRS, - "2"), ZEBRA_OK); - - YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::meta::sysno", VAL_TEXT_XML, - zebra_xml_sysno), ZEBRA_OK); - - /* YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data::index:title:p", - VAL_TEXT_XML, - zebra_xml_index_title_p), ZEBRA_OK); - */ + 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)); }