X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=ztest%2Fztest.c;h=ba85739d4d911aaa7dbae7bb98e0a24e38593160;hp=bb816bb42eafab2ebd45464fffe5d872c2089115;hb=b24d2d58cd28380a1969780e5e2d7c4f0719f81c;hpb=7057699040b614f56be178f3672b4a2b95301d5f diff --git a/ztest/ztest.c b/ztest/ztest.c index bb816bb..ba85739 100644 --- a/ztest/ztest.c +++ b/ztest/ztest.c @@ -6,7 +6,17 @@ * Chas Woodfield, Fretwell Downing Datasystems. * * $Log: ztest.c,v $ - * Revision 1.42 2001-04-06 12:26:46 adam + * Revision 1.45 2001-10-29 09:17:19 adam + * New function marc_display_exl - used by YAZ client. Server returns + * bad record on position 98 (for testing). + * + * Revision 1.44 2001/07/19 19:51:42 adam + * Added typecasts to make C++ happy. + * + * Revision 1.43 2001/06/28 09:27:25 adam + * Number of Extended Services Requests logged. + * + * Revision 1.42 2001/04/06 12:26:46 adam * Optional CCL module. Moved atoi_n to marcdisp.h from yaz-util.h. * * Revision 1.41 2001/04/05 13:08:48 adam @@ -173,11 +183,20 @@ int ztest_present (void *handle, bend_present_rr *rr) int ztest_esrequest (void *handle, bend_esrequest_rr *rr) { - yaz_log(LOG_LOG, "function: %d", *rr->esr->function); + /* user-defined handle - created in bend_init */ + int *counter = (int*) handle; + + yaz_log(LOG_LOG, "ESRequest no %d", *counter); + + (*counter)++; + if (rr->esr->packageName) yaz_log(LOG_LOG, "packagename: %s", rr->esr->packageName); yaz_log(LOG_LOG, "Waitaction: %d", *rr->esr->waitAction); + + yaz_log(LOG_LOG, "function: %d", *rr->esr->function); + if (!rr->esr->taskSpecificParameters) { yaz_log (LOG_WARN, "No task specific parameters"); @@ -354,12 +373,14 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) } if (toKeep) { - Z_External *ext = odr_malloc (rr->stream, sizeof(*ext)); - Z_IUOriginPartToKeep *keep = - odr_malloc (rr->stream, sizeof(*keep)); - Z_IUTargetPart *targetPart = + Z_External *ext = (Z_External *) + odr_malloc (rr->stream, sizeof(*ext)); + Z_IUOriginPartToKeep *keep = (Z_IUOriginPartToKeep *) + odr_malloc (rr->stream, sizeof(*keep)); + Z_IUTargetPart *targetPart = (Z_IUTargetPart *) odr_malloc (rr->stream, sizeof(*targetPart)); - rr->taskPackage = odr_malloc (rr->stream, sizeof(*rr->taskPackage)); + rr->taskPackage = (Z_TaskPackage *) + odr_malloc (rr->stream, sizeof(*rr->taskPackage)); rr->taskPackage->packageType = odr_oiddup (rr->stream, rr->esr->packageType); rr->taskPackage->packageName = 0; @@ -370,10 +391,10 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) rr->taskPackage->targetReference = (Odr_oct *) odr_malloc (rr->stream, sizeof(Odr_oct)); rr->taskPackage->targetReference->buf = - odr_strdup (rr->stream, "123"); + (unsigned char *) odr_strdup (rr->stream, "123"); rr->taskPackage->targetReference->len = rr->taskPackage->targetReference->size = - strlen(rr->taskPackage->targetReference->buf); + strlen((char *) (rr->taskPackage->targetReference->buf)); rr->taskPackage->creationDateTime = 0; rr->taskPackage->taskStatus = odr_intdup(rr->stream, 0); rr->taskPackage->packageDiagnostics = 0; @@ -392,7 +413,7 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) ext->u.update->u.taskPackage->originPart = keep; ext->u.update->u.taskPackage->targetPart = targetPart; - keep->action = odr_malloc (rr->stream, sizeof(int)); + keep->action = (int *) odr_malloc (rr->stream, sizeof(int)); *keep->action = *toKeep->action; keep->databaseName = odr_strdup (rr->stream, toKeep->databaseName); @@ -402,9 +423,10 @@ int ztest_esrequest (void *handle, bend_esrequest_rr *rr) targetPart->updateStatus = odr_intdup (rr->stream, 1); targetPart->num_globalDiagnostics = 0; - targetPart->globalDiagnostics = odr_nullval(); + targetPart->globalDiagnostics = (Z_DiagRec **) odr_nullval(); targetPart->num_taskPackageRecords = 0; - targetPart->taskPackageRecords = odr_nullval(); + targetPart->taskPackageRecords = + (Z_IUTaskPackageRecordStructure **) odr_nullval(); } if (notToKeep) { @@ -515,23 +537,23 @@ static char *dummy_database_record (int num, ODR odr) if (!inf) return NULL; - while (--num >= 0) + if (num == 98) + { /* this will generate a very bad MARC record (testing only) */ + buf = (char*) odr_malloc(odr, 2101); + memset(buf, '7', 2100); + buf[2100] = '\0'; + } + else { - if (num == 98) - { - buf = (char*) odr_malloc(odr, 2101); - memset(buf, 'A', 2100); - buf[2100] = '\0'; - break; - } - else - buf = marc_read (inf, odr); - if (!num || !buf) - break; + /* OK, try to get proper MARC records from the file */ + while (--num >= 0) + { + buf = marc_read (inf, odr); + if (!buf) + break; + } } fclose(inf); - if (num < 0) - return 0; return buf; } @@ -705,11 +727,12 @@ int ztest_scan(void *handle, bend_scan_rr *q) bend_initresult *bend_init(bend_initrequest *q) { bend_initresult *r = (bend_initresult *) odr_malloc (q->stream, sizeof(*r)); - static char *dummy = "Hej fister"; + int *counter = (int *) xmalloc (sizeof(int)); + *counter = 0; r->errcode = 0; r->errstring = 0; - r->handle = dummy; + r->handle = counter; /* user handle, in this case a simple int */ q->bend_sort = ztest_sort; /* register sort handler */ q->bend_search = ztest_search; /* register search handler */ q->bend_present = ztest_present; /* register present handle */ @@ -722,6 +745,7 @@ bend_initresult *bend_init(bend_initrequest *q) void bend_close(void *handle) { + xfree (handle); /* release our user-defined handle */ return; }