-/* $Id: testlib.c,v 1.6 2004-11-29 21:55:28 adam Exp $
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
- Index Data Aps
+/* $Id: testlib.c,v 1.11 2005-01-15 19:38:35 adam Exp $
+ Copyright (C) 1995-2005
+ Index Data ApS
This file is part of the Zebra server.
/** testlib - utilities for the api tests */
#include <assert.h>
+#include <yaz/log.h>
#include <yaz/pquery.h>
#include <idzebra/api.h>
#include "testlib.h"
return start_service(cfgname);
}
+/**
+ * get_srcdir: return env srcdir or . (if does does not exist)
+ */
+const char *get_srcdir()
+{
+ const char *srcdir = getenv("srcdir");
+ if (!srcdir || ! *srcdir)
+ srcdir=".";
+ return srcdir;
+
+}
/** start_service - do a zebra_start with a decent config name */
ZebraService start_service(char *cfgname)
{
char cfg[256];
- char *srcdir = getenv("srcdir");
+ const char *srcdir = get_srcdir();
ZebraService zs;
- if (!srcdir || ! *srcdir)
- srcdir=".";
if (!cfgname || ! *cfgname )
cfgname="zebra.cfg";
- sprintf(cfg, "%.200s/%s",srcdir, cfgname);
+ sprintf(cfg, "%.200s/%.50s", srcdir, cfgname);
zs=zebra_start(cfg);
if (!zs)
{
const char *setname="rsetname";
zint *positions = (zint *) malloc(1 + (exphits * sizeof(zint)));
int hits;
- int rc;
int i;
hits = do_query(lineno, zh, query, exphits);
if (!meta)
{
- printf("Error: retrieve returned %d \n%s\n",rc,query);
+ printf("Error: retrieve returned error\n%s\n", query);
exit (1);
}
free(positions);
}
+struct finfo {
+ const char *name;
+ int occurred;
+};
+
+static void filter_cb(void *cd, const char *name)
+{
+ struct finfo *f = (struct finfo*) cd;
+ if (!strcmp(f->name, name))
+ f->occurred = 1;
+}
+
+void check_filter(ZebraService zs, const char *name)
+{
+ struct finfo f;
+
+ f.name = name;
+ f.occurred = 0;
+ zebra_filter_info(zs, &f, filter_cb);
+ if (!f.occurred)
+ {
+ yaz_log(YLOG_WARN, "Filter %s does not exist.", name);
+ exit(0);
+ }
+}
+
+
+
+