X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ftest_safari.c;h=85a79f46bc7d65ad275aca11ffe2f5fc08e8461f;hb=250de4ed23a44f5eb3552db317eef0d0fbe3265c;hp=1f38486ec5b7db76294a4fdb7000ad3eb44279c9;hpb=4b25ee9a2fbd9a641095362fc424c1f7b7c0ca2c;p=idzebra-moved-to-github.git diff --git a/test/api/test_safari.c b/test/api/test_safari.c index 1f38486..85a79f4 100644 --- a/test/api/test_safari.c +++ b/test/api/test_safari.c @@ -1,5 +1,5 @@ /* This file is part of the Zebra server. - Copyright (C) 1995-2008 Index Data + Copyright (C) 2004-2013 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 @@ -21,37 +21,45 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA \brief test safari filter */ +#if HAVE_CONFIG_H +#include +#endif #include "testlib.h" -const char *myrec[] = +const char *myrec[] = { "1234\n" /* ID first record */ /* chunk owner seq idx term */ "00024338 125060 0 1 any the\n" "00024338 125060 0 2 any art\n" "00024338 125060 0 3 any mand\n" + "s 00024338 125060 0 3 ti a b c\n" , "5678\n" /* other record - same owner id */ "00024339 125060 0 1 any den\n" "00024339 125060 0 2 any gamle\n" "00024339 125060 0 3 any mand\n" + "s 00024339 125060 0 3 ti d e f\n" , "5678\n" /* same record chunk id as before .. */ "00024339 125060 0 1 any the\n" "00024339 125060 0 2 any gamle\n" "00024339 125060 0 3 any mand\n" + "s 00024339 125060 0 3 ti g h i\n" , "1000\n" /* separate record */ "00024339 125061 0 1 any the\n" "00024339 125061 0 2 any gamle\n" "00024339 125061 0 3 any mand\n" "w 00024339 125661 0 4 any Hello\n" /* index type given */ + "s 00024339 125061 0 3 ti j k l\n" , "1001\n" /* separate record */ "00024340 125062 0 1 any the\n" "00024340 125062 0 1 any the\n" /* DUP KEY, bug #432 */ "00024340 125062 0 2 any old\n" "00024340 125062 0 3 any mand\n" + "s 00024340 125062 0 3 ti m n o\n" , "1002\n" /* segment testing record */ "00024341 125062 0 1 title a\n" @@ -75,7 +83,7 @@ static void tst(int argc, char **argv) zint ids[3]; zint limits[3]; ZebraService zs = tl_start_up("test_safari.cfg", argc, argv); - + ZebraHandle zh = zebra_open(zs, 0); YAZ_CHECK(tl_init_data(zh, myrec)); @@ -87,6 +95,12 @@ static void tst(int argc, char **argv) YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and the gamle", 1)); YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and the of", 0)); + YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @prox 0 3 1 2 k 2 the gamle", 1)); + YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @prox 0 3 1 2 k 2 den gamle", 0)); + YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @prox 0 3 1 2 k 2 the art", 1)); + YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @prox 0 3 1 2 k 2 den gamle", 0)); + YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @prox 0 3 1 2 k 2 old mand", 1)); + YAZ_CHECK(tl_query(zh, "@attr 1=any hello", 1)); /* verify that we get these records exactly */ @@ -101,7 +115,7 @@ static void tst(int argc, char **argv) myrec[2]), ZEBRA_OK); YAZ_CHECK_EQ(tl_fetch_compare(zh, 3, "R", yaz_oid_recsyn_sutrs, myrec[4]), ZEBRA_OK); - YAZ_CHECK_EQ(tl_fetch_compare(zh, 1, "zebra::facet::any:0", + YAZ_CHECK_EQ(tl_fetch_compare(zh, 1, "zebra::facet::any:0", yaz_oid_recsyn_xml, "\n" " \n" @@ -112,7 +126,7 @@ static void tst(int argc, char **argv) " old\n" " \n" "\n"), ZEBRA_OK); - YAZ_CHECK_EQ(tl_fetch_compare(zh, 1, "zebra::facet::any:0:2", + YAZ_CHECK_EQ(tl_fetch_compare(zh, 1, "zebra::facet::any:0:2", yaz_oid_recsyn_xml, "\n" " \n" @@ -121,6 +135,17 @@ static void tst(int argc, char **argv) " \n" "\n"), ZEBRA_OK); + + YAZ_CHECK_EQ(tl_fetch_compare(zh, 1, "zebra::facet::ti:s", + yaz_oid_recsyn_xml, + "\n" + " \n" + " a b c\n" + " j k l\n" + " m n o\n" + " \n" + "\n"), ZEBRA_OK); + /* limit to 125061 */ limits[0] = 125061; limits[1] = 0; @@ -157,7 +182,7 @@ static void tst(int argc, char **argv) YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and a b", 1)); YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and a c", 1)); - + YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and c d", 1)); YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and b f", 1)); YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and f g", 0)); @@ -174,6 +199,7 @@ TL_MAIN /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab