X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=ztest%2Fztest.c;h=77e2406feef41ca4bbaacd092bacb9b11c4eabc2;hb=451c575ae8c09aea34037ae2e7169337b38e89d0;hp=2574a8c763ff4a9e3409c8dbab9dad94ebececb9;hpb=4b3d1e197d75fcb2607be8d86d244f20c4180000;p=yaz-moved-to-github.git
diff --git a/ztest/ztest.c b/ztest/ztest.c
index 2574a8c..77e2406 100644
--- a/ztest/ztest.c
+++ b/ztest/ztest.c
@@ -1,8 +1,8 @@
/*
- * Copyright (c) 1995-2003, Index Data.
+ * Copyright (c) 1995-2004, Index Data.
* See the file LICENSE for details.
*
- * $Id: ztest.c,v 1.58 2003-09-02 12:12:13 adam Exp $
+ * $Id: ztest.c,v 1.65 2004-09-30 21:54:22 adam Exp $
*/
/*
@@ -34,6 +34,15 @@ int ztest_search (void *handle, bend_search_rr *rr)
rr->errcode = 23;
return 0;
}
+#if NMEM_DEBUG
+ /* if database is stop, stop this process.. For debugging only. */
+ if (!yaz_matchstr (rr->basenames[0], "stop"))
+ {
+ nmem_print_list_l(LOG_LOG);
+ exit(0);
+ }
+#endif
+ /* Throw Database unavailable if other than Default */
if (yaz_matchstr (rr->basenames[0], "Default"))
{
rr->errcode = 109;
@@ -413,7 +422,7 @@ int ztest_delete (void *handle, bend_delete_rr *rr)
int ztest_sort (void *handle, bend_sort_rr *rr)
{
rr->errcode = 0;
- rr->sort_status = Z_SortStatus_success;
+ rr->sort_status = Z_SortResponse_success;
return 0;
}
@@ -428,7 +437,7 @@ int ztest_present (void *handle, bend_present_rr *rr)
int ztest_fetch(void *handle, bend_fetch_rr *r)
{
char *cp;
- r->errstring = 0;
+
r->last_in_set = 0;
r->basename = "Default";
r->output_format = r->request_format;
@@ -480,12 +489,20 @@ int ztest_fetch(void *handle, bend_fetch_rr *r)
fread (r->record, size, 1, f);
fclose (f);
}
- else if (r->request_format == VAL_TEXT_XML &&
- (cp = dummy_xml_record (r->number, r->stream)))
+ else if (r->request_format == VAL_TEXT_XML)
{
- r->len = strlen(cp);
- r->record = cp;
- r->output_format = VAL_TEXT_XML;
+ if ((cp = dummy_xml_record (r->number, r->stream)))
+ {
+ r->len = strlen(cp);
+ r->record = cp;
+ r->output_format = VAL_TEXT_XML;
+ }
+ else
+ {
+ r->errcode = 14;
+ r->surrogate_flag = 1;
+ return 0;
+ }
}
else if ((cp = dummy_marc_record(r->number, r->stream)))
{
@@ -602,12 +619,15 @@ int ztest_scan(void *handle, bend_scan_rr *q)
static int ztest_explain(void *handle, bend_explain_rr *rr)
{
- rr->explain_buf = "\n"
- "\t\n"
- "\t\tlocalhost\n"
- "\t\t210\n"
- "\t\n"
- "\n";
+ if (rr->database && !strcmp(rr->database, "Default"))
+ {
+ rr->explain_buf = "\n"
+ "\t\n"
+ "\t\tlocalhost\n"
+ "\t\t210\n"
+ "\t\n"
+ "\n";
+ }
return 0;
}
@@ -629,6 +649,7 @@ bend_initresult *bend_init(bend_initrequest *q)
q->bend_fetch = ztest_fetch;
q->bend_scan = ztest_scan;
q->bend_explain = ztest_explain;
+
return r;
}