X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fxpath%2Fxpath1.c;h=b582e74dda70be65bff84d8cb3c0bfd7b692ee61;hb=85ad68ab178a261dc548284ee68aae9107cbfaaf;hp=ea428ede49e58cbee44fc5d22ce412ea86ee7d9d;hpb=cf7ec53452a6180dad6592df0458ac56a3b7963b;p=idzebra-moved-to-github.git diff --git a/test/xpath/xpath1.c b/test/xpath/xpath1.c index ea428ed..b582e74 100644 --- a/test/xpath/xpath1.c +++ b/test/xpath/xpath1.c @@ -1,8 +1,5 @@ -/* $Id: xpath1.c,v 1.2 2004-12-15 13:07:07 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-2011 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,43 +12,73 @@ 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 + */ +#if HAVE_CONFIG_H +#include +#endif #include "../api/testlib.h" /** xpath1.c - index a simple sgml record and search in it */ -int main(int argc, char **argv) +static void tst(int argc, char **argv) { ZebraService zs; ZebraHandle zh; const char *myrec[] = { " \n" " before \n" - " \n" - " inside \n" + " \n" + " inside it\n" " \n" " after \n" " \n", 0}; - zs = start_up(0, argc, argv); - zh = zebra_open(zs); - init_data(zh, myrec); + zs = tl_start_up(0, argc, argv); + zh = zebra_open(zs, 0); + YAZ_CHECK(tl_init_data(zh, myrec)); + + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag before", 0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag inside", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag {inside it}", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag after", 0)); + + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/none after", 0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/none inside", 0)); - do_query(__LINE__,zh, "@attr 1=/sgml/tag before", 0); - do_query(__LINE__,zh, "@attr 1=/sgml/tag inside", 1); - do_query(__LINE__,zh, "@attr 1=/sgml/tag after", 0); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml before", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml inside", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml after", 1)); - do_query(__LINE__,zh, "@attr 1=/sgml/none after", 0); - do_query(__LINE__,zh, "@attr 1=/sgml/none inside", 0); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag/@x v", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag/@x no", 0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag/@y v", 0)); - do_query(__LINE__,zh, "@attr 1=/sgml before", 1); - do_query(__LINE__,zh, "@attr 1=/sgml inside", 1); - do_query(__LINE__,zh, "@attr 1=/sgml after", 1); + YAZ_CHECK(tl_query(zh, "@attr 1=_XPATH_BEGIN @attr 4=3 tag/sgml/", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=_XPATH_BEGIN @attr 4=3 sgml/", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=_XPATH_BEGIN @attr 4=3 tag/", 0)); - return close_down(zh, zs, 0); + /* bug #617 */ + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag @attr 2=103 dummy", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml @attr 2=103 dummy", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/tag @attr 2=103 dummy", 0)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag/@x @attr 2=103 dummy", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=/sgml/tag/@y @attr 2=103 dummy", 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 + */ +