X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=test%2Fapi%2Ftest_sort3.c;h=48e9d0172bb84a4f863143365441c7965cb4f260;hp=934bfdc2edeeaf3a7aa0b9c84c48142bfd3b8ab3;hb=6a0f9234f945bc4956e2bcef75f715661a9eba9a;hpb=03eeca8eff513ddca5eb61e591898a4cbf740fb9 diff --git a/test/api/test_sort3.c b/test/api/test_sort3.c index 934bfdc..48e9d01 100644 --- a/test/api/test_sort3.c +++ b/test/api/test_sort3.c @@ -1,5 +1,5 @@ /* This file is part of the Zebra server. - Copyright (C) 1995-2008 Index Data + 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 @@ -18,40 +18,94 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /** \file - \brief test sortindex + \brief sort using various sortindex types */ #include #include "testlib.h" const char *myrec[] = { - "\nMy title\n\n", - "\nMy x title\n\n", - "\nMy title x\n\n" , - 0} ; + /* 2 */ + "\n" + " My title\n" + " X\n" + "\n", + + /* 3 */ + "\n" + " My x title\n" + " B\n" + "\n", + + /* 4 */ + "\n" + " My title x\n" + " A\n" + "\n" , + 0} ; -static void tst(int argc, char **argv) +static void tst_sortindex(int argc, char **argv, const char *type) { zint ids[5]; + Res res = res_open(0, 0); + + ZebraService zs = tl_start_up("test_sort3.cfg", argc, argv); + ZebraHandle zh; + + res_set(res, "sortindex", type); - ZebraService zs = tl_start_up("test_sortindex.cfg", argc, argv); - ZebraHandle zh = zebra_open(zs, 0); + zh = zebra_open(zs, res); YAZ_CHECK(tl_init_data(zh, myrec)); - ids[0] = 2; - ids[1] = 4; - ids[2] = 3; + if (strcmp(type, "m")) + { + /* i, f only takes first title into consideration */ + ids[0] = 2; + ids[1] = 4; + ids[2] = 3; + } + else + { + /* m takes all titles into consideration */ + ids[0] = 4; + ids[1] = 3; + ids[2] = 2; + } YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 title @attr 7=1 @attr 1=4 0", 3, ids)); + if (strcmp(type, "m")) + { + /* i, f only takes first title into consideration */ + ids[0] = 3; + ids[1] = 4; + ids[2] = 2; + } + else + { + /* m takes all titles into consideration */ + ids[0] = 2; + ids[1] = 3; + ids[2] = 4; + } + YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 title @attr 7=2 @attr 1=4 0", 3, ids)); + YAZ_CHECK(tl_close_down(zh, zs)); } +static void tst(int argc, char **argv) +{ + tst_sortindex(argc, argv, "i"); + tst_sortindex(argc, argv, "f"); + tst_sortindex(argc, argv, "m"); +} + TL_MAIN /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab