From 3f98e1f5f48b3aaaa496ac92127dff0ff3fe48cc Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Sat, 4 Dec 2004 01:08:33 +0000 Subject: [PATCH] Test uses api rather than server&client --- test/sort2/Makefile.am | 29 +++++++++++++++---- test/sort2/t1.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ test/sort2/test1.sh | 34 ----------------------- test/sort2/zebra.cfg | 4 +-- 4 files changed, 97 insertions(+), 42 deletions(-) create mode 100644 test/sort2/t1.c delete mode 100755 test/sort2/test1.sh diff --git a/test/sort2/Makefile.am b/test/sort2/Makefile.am index c6a9dae..d34d7ae 100644 --- a/test/sort2/Makefile.am +++ b/test/sort2/Makefile.am @@ -1,10 +1,29 @@ -# $Id: Makefile.am,v 1.2 2004-09-16 14:02:46 adam Exp $ +# $Id: Makefile.am,v 1.3 2004-12-04 01:08:33 adam Exp $ -check_SCRIPTS = test1.sh +check_PROGRAMS = t1 -TESTS = $(check_SCRIPTS) +TESTS = $(check_PROGRAMS) EXTRA_DIST = zebra.cfg default.idx \ - rec1.xml rec2.xml rec3.xml rec4.xml zebra.cfg my.abs sort.chr \ - $(check_SCRIPTS) + rec1.xml rec2.xml rec3.xml rec4.xml zebra.cfg my.abs sort.chr + +t1_SOURCES = t1.c + +AM_CPPFLAGS = -I$(top_srcdir)/include $(YAZINC) + +zebralibs = \ + ../../index/libidzebra-api.la \ + ../../rset/libidzebra-rset.la \ + ../../recctrl/libidzebra-recctrl.la \ + ../../dict/libidzebra-dict.la \ + ../../isams/libidzebra-isams.la \ + ../../isamc/libidzebra-isamc.la \ + ../../isamb/libidzebra-isamb.la \ + ../../data1/libidzebra-data1.la \ + ../../bfile/libidzebra-bfile.la \ + ../../dfa/libidzebra-dfa.la \ + ../../util/libidzebra-util.la + +LDADD = ../api/libtestlib.a $(zebralibs) $(YAZLALIB) + diff --git a/test/sort2/t1.c b/test/sort2/t1.c new file mode 100644 index 0000000..126123e --- /dev/null +++ b/test/sort2/t1.c @@ -0,0 +1,72 @@ +/* $Id: t1.c,v 1.1 2004-12-04 01:08:33 adam Exp $ + Copyright (C) 2003,2004 + 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 "../api/testlib.h" + +int main(int argc, char **argv) +{ + ZebraService zs = start_up(0, argc, argv); + ZebraHandle zh = zebra_open(zs); + ZebraMetaRecord *recs; + char path[256]; + int i, errs = 0; + + zebra_select_database(zh, "Default"); + + zebra_init(zh); + + zebra_begin_trans(zh, 1); + for (i = 1; i <= 4; i++) + { + sprintf(path, "%.200s/rec%d.xml", get_srcdir(), i); + zebra_repository_update(zh, path); + } + zebra_end_trans(zh); + zebra_commit(zh); + + do_query(__LINE__, zh, "@or computer @attr 7=1 @attr 1=4 0", 4); + + recs = zebra_meta_records_create_range (zh, "rsetname", 1, 4); + if (!recs) + { + fprintf(stderr, "recs==0\n"); + exit(1); + } + if (recs[0].sysno != 2) + errs++; + if (recs[1].sysno != 5) + errs++; + if (recs[2].sysno != 3) + errs++; + if (recs[3].sysno != 4) + errs++; + + zebra_meta_records_destroy (zh, recs, 4); + + if (errs) + { + fprintf(stderr, "%d sysnos did not match\n", errs); + exit(1); + } + + return close_down(zh, zs, 0); +} diff --git a/test/sort2/test1.sh b/test/sort2/test1.sh deleted file mode 100755 index 805e0a1..0000000 --- a/test/sort2/test1.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# $Id: test1.sh,v 1.1 2004-09-14 14:35:52 quinn Exp $ - -pp=${srcdir:-"."} - -ulimit -c 10000 -LOG=test1.log -rm -f $LOG -rm -fr lock -mkdir lock -rm -fr reg -mkdir reg -rm -fr recs -mkdir recs -cp $pp/rec*.xml recs -../../index/zebraidx -c $pp/zebra.cfg -l $LOG update recs || exit 1 -../../index/zebrasrv -c $pp/zebra.cfg -l $LOG unix:socket & -sleep 1 -test -f lock/zebrasrv.pid || exit 2 -../api/testclient -n4 unix:socket '@or computer @attr 7=1 @attr 1=4 0' >tmp1 - -kill `cat lock/zebrasrv.pid` - -echo 'Result count: 4 -my: - title: first computer -my: - title: the fourth computer -my: - title: second computer -my: - title: A third computer' >tmp2 - -diff tmp1 tmp2 diff --git a/test/sort2/zebra.cfg b/test/sort2/zebra.cfg index 1ae545d..b0143ad 100644 --- a/test/sort2/zebra.cfg +++ b/test/sort2/zebra.cfg @@ -1,5 +1,5 @@ # Simple Zebra configuration file -# $Id: zebra.cfg,v 1.1 2004-09-14 14:35:52 quinn Exp $ +# $Id: zebra.cfg,v 1.2 2004-12-04 01:08:33 adam Exp $ # # Where the schema files, attribute files, etc are located. profilePath: ${srcdir:-.}:${srcdir:-.}/../../tab @@ -9,6 +9,4 @@ attset: bib1.att attset: explain.att recordtype.xml: grs.sgml -lockdir: lock -register: reg:20M isam: b -- 1.7.10.4