Added test for adding XML content as buffer - not file.
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 28 Apr 2005 12:34:45 +0000 (12:34 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 28 Apr 2005 12:34:45 +0000 (12:34 +0000)
test/xslt/Makefile.am
test/xslt/xslt2.c [new file with mode: 0644]

index 606ca28..9427f73 100644 (file)
@@ -1,11 +1,12 @@
-# $Id: Makefile.am,v 1.1 2005-04-28 08:20:41 adam Exp $
+# $Id: Makefile.am,v 1.2 2005-04-28 12:34:45 adam Exp $
 
 
-check_PROGRAMS = xslt1
+check_PROGRAMS = xslt1 xslt2
 TESTS = $(check_PROGRAMS)
 
 EXTRA_DIST=zebra.cfg marc-col.xml marc1.xsl
 
 xslt1_SOURCES = xslt1.c
 TESTS = $(check_PROGRAMS)
 
 EXTRA_DIST=zebra.cfg marc-col.xml marc1.xsl
 
 xslt1_SOURCES = xslt1.c
+xslt2_SOURCES = xslt2.c
 
 AM_CPPFLAGS = -I$(srcdir)/../api -I$(top_srcdir)/include $(YAZINC)
 
 
 AM_CPPFLAGS = -I$(srcdir)/../api -I$(top_srcdir)/include $(YAZINC)
 
diff --git a/test/xslt/xslt2.c b/test/xslt/xslt2.c
new file mode 100644 (file)
index 0000000..1d69c8a
--- /dev/null
@@ -0,0 +1,68 @@
+/* $Id: xslt2.c,v 1.1 2005-04-28 12:34:45 adam Exp $
+   Copyright (C) 1995-2005
+   Index Data ApS
+
+This file is part of the Zebra server.
+
+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
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Zebra; see the file LICENSE.zebra.  If not, write to the
+Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+*/
+
+#include <stdio.h>
+#include "testlib.h"
+
+int main(int argc, char **argv)
+{
+    char path[256];
+    char record_buf[20000];
+    const char *records_array[] = {
+       record_buf, 0
+    };
+    FILE *f;
+    size_t r;
+
+    ZebraService zs = start_up(0, argc, argv);
+    ZebraHandle  zh = zebra_open(zs);
+
+    check_filter(zs, "xslt");
+
+    sprintf(path, "%.200s/marc-col.xml", get_srcdir());
+    f = fopen(path, "rb");
+    if (!f)
+    {
+       yaz_log(YLOG_FATAL|YLOG_ERRNO, "Cannot open %s", path);
+       exit(1);
+    }
+    r = fread(record_buf, 1, sizeof(record_buf)-1, f);
+    if (r < 2 || r == sizeof(record_buf)-1)
+    {
+       yaz_log(YLOG_FATAL, "Bad size of %s", path);
+       exit(1);
+    }
+    fclose(f);
+
+    record_buf[r] = '\0';
+
+    /* for now only the first of the records in the collection is
+       indexed. That can be seen as a bug */
+    init_data(zh, records_array);
+
+    /* only get hits from first record .. */
+    do_query(__LINE__, zh, "@attr 1=title computer", 1);
+    do_query(__LINE__, zh, "@attr 1=control 11224466", 1);
+    do_query_x(__LINE__, zh, "@attr 1=titl computer", 0, 121);
+    
+    return close_down(zh, zs, 0);
+}