Omit CVS Id. Update copyright year.
[idzebra-moved-to-github.git] / test / api / t16.c
index cf8dd17..d7d03a0 100644 (file)
@@ -1,8 +1,5 @@
-/* $Id: t16.c,v 1.1 2006-11-16 12:48:28 adam 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,77 +27,60 @@ const char *myrec[] = {
         "</gils>\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 
+        = "<record xmlns=\"http://www.indexdata.com/zebra/\" sysno=\"2\"/>\n";
+
+    const char * zebra_xml_meta 
+        = "<record xmlns=\"http://www.indexdata.com/zebra/\" sysno=\"2\" base=\"Default\" type=\"grs.sgml\" rank=\"0\" size=\"41\" set=\"zebra::meta\"/>\n";
+
+    const char * zebra_xml_index_title_p
+        = "<record xmlns=\"http://www.indexdata.com/zebra/\" sysno=\"2\" set=\"zebra::index::title:p/\">\n"
+"  <index name=\"title\" type=\"p\" seq=\"4\">my title</index>\n"
+"</record>\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));
 }