X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ftest_sortidx.c;h=908fd8a78cc1c18b4df5b4d3150f43b3ec2acdb5;hb=250de4ed23a44f5eb3552db317eef0d0fbe3265c;hp=ebd03ca6117b72941b0d14a85aef3cf29b06004b;hpb=0ef68e6e54cfd7a91a28ee3b1f305924ac34e787;p=idzebra-moved-to-github.git diff --git a/test/api/test_sortidx.c b/test/api/test_sortidx.c index ebd03ca..908fd8a 100644 --- a/test/api/test_sortidx.c +++ b/test/api/test_sortidx.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 @@ -17,10 +17,23 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include "testlib.h" +static void sort_add_cstr(zebra_sort_index_t si, const char *str, + zint section_id) +{ + WRBUF w = wrbuf_alloc(); + wrbuf_puts(w, str); + wrbuf_putc(w, '\0'); + zebra_sort_add(si, section_id, w); + wrbuf_destroy(w); +} + static void tst1(zebra_sort_index_t si) { zint sysno = 12; /* just some sysno */ @@ -30,38 +43,38 @@ static void tst1(zebra_sort_index_t si) zebra_sort_type(si, my_type); zebra_sort_sysno(si, sysno); - YAZ_CHECK_EQ(zebra_sort_read(si, w), 0); + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w), 0); - zebra_sort_add(si, "abcde1", 6); + sort_add_cstr(si, "abcde1", 0); zebra_sort_sysno(si, sysno); - YAZ_CHECK_EQ(zebra_sort_read(si, w), 1); + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w), 1); YAZ_CHECK(!strcmp(wrbuf_cstr(w), "abcde1")); zebra_sort_sysno(si, sysno+1); - YAZ_CHECK_EQ(zebra_sort_read(si, w), 0); + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w), 0); zebra_sort_sysno(si, sysno-1); - YAZ_CHECK_EQ(zebra_sort_read(si, w), 0); + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w), 0); zebra_sort_sysno(si, sysno); - zebra_sort_delete(si); - YAZ_CHECK_EQ(zebra_sort_read(si, w), 0); + zebra_sort_delete(si, 0); + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w), 0); zebra_sort_type(si, my_type); zebra_sort_sysno(si, sysno); - YAZ_CHECK_EQ(zebra_sort_read(si, w), 0); + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w), 0); wrbuf_rewind(w); - zebra_sort_add(si, "abcde1", 6); + sort_add_cstr(si, "abcde1", 0); zebra_sort_sysno(si, sysno); - YAZ_CHECK_EQ(zebra_sort_read(si, w), 1); + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w), 1); YAZ_CHECK(!strcmp(wrbuf_cstr(w), "abcde1")); zebra_sort_sysno(si, sysno); - zebra_sort_delete(si); + zebra_sort_delete(si, 0); wrbuf_destroy(w); } @@ -76,22 +89,25 @@ static void tst2(zebra_sort_index_t si) for (sysno = 1; sysno < 50; sysno++) { + zint input_section_id = 12345; + zint output_section_id = 0; WRBUF w1 = wrbuf_alloc(); WRBUF w2 = wrbuf_alloc(); zebra_sort_sysno(si, sysno); - YAZ_CHECK_EQ(zebra_sort_read(si, w2), 0); - + YAZ_CHECK_EQ(zebra_sort_read(si, 0, w2), 0); + for (i = 0; i < 600; i++) /* 600 * 6 < max size =4K */ wrbuf_write(w1, "12345", 6); - - zebra_sort_add(si, wrbuf_buf(w1), wrbuf_len(w1)); - + + zebra_sort_add(si, input_section_id, w1); + zebra_sort_sysno(si, sysno); - - YAZ_CHECK_EQ(zebra_sort_read(si, w2), 1); - + + YAZ_CHECK_EQ(zebra_sort_read(si, &output_section_id, w2), 1); + YAZ_CHECK_EQ(wrbuf_len(w1), wrbuf_len(w2)); YAZ_CHECK(!memcmp(wrbuf_buf(w1), wrbuf_buf(w2), wrbuf_len(w2))); + YAZ_CHECK_EQ(input_section_id, output_section_id); wrbuf_destroy(w1); wrbuf_destroy(w2); } @@ -145,6 +161,7 @@ TL_MAIN /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab