X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=test%2Fxpath%2Fxpath4.c;h=47a28900809db424a83cdd53d5062416c34db250;hp=2ffefadc12de0d78950fb5655be184ecc11e3745;hb=6a0f9234f945bc4956e2bcef75f715661a9eba9a;hpb=a34c87ac6c08ec62534e4068a5bd1fac93df8abe diff --git a/test/xpath/xpath4.c b/test/xpath/xpath4.c index 2ffefad..47a2890 100644 --- a/test/xpath/xpath4.c +++ b/test/xpath/xpath4.c @@ -1,8 +1,5 @@ -/* $Id: xpath4.c,v 1.1 2004-12-02 14:05:04 adam Exp $ - Copyright (C) 2003,2004 - Index Data Aps - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1994-2009 Index Data 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 @@ -15,9 +12,9 @@ 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. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #include "../api/testlib.h" @@ -83,70 +80,79 @@ const char *myrec[] = { 0}; -int main(int argc, char **argv) +static void tst(int argc, char **argv) { - ZebraService zs = start_up("zebraxpath.cfg", argc, argv); - ZebraHandle zh = zebra_open(zs); + ZebraService zs = tl_start_up(0, argc, argv); + ZebraHandle zh = zebra_open(zs, 0); #if 0 yaz_log_init_level( yaz_log_mask_str_x("xpath4,rsbetween", LOG_DEFAULT_LEVEL)); #endif - init_data(zh, myrec); - -#define q(qry,hits) do_query(__LINE__,zh,qry,hits) + YAZ_CHECK(tl_init_data(zh, myrec)); - q("@attr 1=/record/title foo",4); - q("@attr 1=/record/title bar",2); - q("@attr 1=/record/title[@lang='da'] foo",1); - q("@attr 1=/record/title[@lang='en'] foo",1); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title foo",4)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title bar",2)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title[@lang='da'] foo",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title[@lang='en'] foo",1)); - q("@attr 1=/record/title[@lang='en'] english",1); - q("@attr 1=/record/title[@lang='da'] english",0); - q("@attr 1=/record/title[@lang='da'] danish",1); - q("@attr 1=/record/title[@lang='en'] danish",0); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title[@lang='en'] english",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title[@lang='da'] english",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title[@lang='da'] danish",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title[@lang='en'] danish",0)); - q("@attr 1=/record/title @and foo bar",2); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/title @and foo bar",2)); /* The previous one returns two hits, as the and applies to the whole record, so it matches foobar This might not have to be like that, but currently that is what zebra does. */ - q("@and @attr 1=/record/title foo @attr 1=/record/title bar ",2); + YAZ_CHECK(tl_query(zh, "@and @attr 1=/record/title foo @attr 1=/record/title bar ",2)); /* check we get all the occureences for 'grunt' */ /* this can only be seen in the log, with debugs on. bug #202 */ - q("@attr 1=/record/author grunt",3); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/author grunt",3)); /* check nested tags */ - q("@attr 1=/record/nested before",0); - q("@attr 1=/record/nested early",1); - q("@attr 1=/record/nested middle",1); - q("@attr 1=/record/nested late",1); - q("@attr 1=/record/nested after",0); - - q("@attr 1=/record/nested/nested before",0); - q("@attr 1=/record/nested/nested early",0); - q("@attr 1=/record/nested/nested middle",1); - q("@attr 1=/record/nested/nested late",0); - q("@attr 1=/record/nested/nested after",0); - - q("@attr 1=/record/nestattr[@level='outer'] before",0); - q("@attr 1=/record/nestattr[@level='outer'] early",1); - q("@attr 1=/record/nestattr[@level='outer'] middle",1); - q("@attr 1=/record/nestattr[@level='outer'] late",1); - q("@attr 1=/record/nestattr[@level='outer'] after",0); - - q("@attr 1=/record/nestattr[@level='inner'] before",0); - q("@attr 1=/record/nestattr[@level='inner'] early",0); - q("@attr 1=/record/nestattr[@level='inner'] middle",0); - q("@attr 1=/record/nestattr[@level='inner'] late",0); - q("@attr 1=/record/nestattr[@level='inner'] after",0); - - q("@attr 1=/record/nestattr/nestattr[@level='inner'] before",0); - q("@attr 1=/record/nestattr/nestattr[@level='inner'] early",0); - q("@attr 1=/record/nestattr/nestattr[@level='inner'] middle",1); - q("@attr 1=/record/nestattr/nestattr[@level='inner'] late",0); - q("@attr 1=/record/nestattr/nestattr[@level='inner'] after",0); - - return close_down(zh, zs, 0); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested before",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested early",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested middle",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested late",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested after",0)); + + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested/nested before",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested/nested early",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested/nested middle",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested/nested late",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nested/nested after",0)); + + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='outer'] before",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='outer'] early",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='outer'] middle",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='outer'] late",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='outer'] after",0)); + + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='inner'] before",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='inner'] early",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='inner'] middle",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='inner'] late",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr[@level='inner'] after",0)); + + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr/nestattr[@level='inner'] before",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr/nestattr[@level='inner'] early",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr/nestattr[@level='inner'] middle",1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr/nestattr[@level='inner'] late",0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/record/nestattr/nestattr[@level='inner'] after",0)); + + YAZ_CHECK(tl_close_down(zh, zs)); } + +TL_MAIN +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +