-/* $Id: testlib.c,v 1.6 2004-11-29 21:55:28 adam Exp $
+/* $Id: testlib.c,v 1.9 2004-12-14 11:23:15 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
/** 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)
{
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);
+ }
+}
+
+
+
+