Only enable ALVIS if Libxml2 2.6.15 or later is in use.
[idzebra-moved-to-github.git] / test / api / t6.c
1 /* $Id: t6.c,v 1.14 2006-08-14 10:40:22 adam Exp $
2    Copyright (C) 1995-2006
3    Index Data ApS
4
5 This file is part of the Zebra server.
6
7 Zebra is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
10 version.
11
12 Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20
21 */
22
23 /** t6.c Insert a number of randomly generated words */
24
25 #include "testlib.h"
26
27 static void tst(int argc, char **argv)
28 {
29     int i;
30     ZebraService zs = tl_start_up("zebra6.cfg", argc, argv);
31     ZebraHandle zh = zebra_open(zs, 0);
32
33     srand(17);
34     
35     YAZ_CHECK(zebra_select_database(zh, "Default") == ZEBRA_OK);
36     zebra_init(zh);
37     zebra_close(zh);
38
39     for (i = 0; i<10; i++)
40     {
41         int l;
42
43         zh = zebra_open (zs, 0);
44         YAZ_CHECK(zh);
45
46         YAZ_CHECK(zebra_select_database(zh, "Default") == ZEBRA_OK);
47         
48         YAZ_CHECK(zebra_begin_trans (zh, 1) == ZEBRA_OK);
49
50         for (l = 0; l<100; l++)
51         {
52             char rec_buf[5120];
53             int j;
54             *rec_buf = '\0';
55             strcat(rec_buf, "<gils><title>");
56             if (i == 0)
57             {
58                 sprintf(rec_buf + strlen(rec_buf), "aaa");
59             }
60             else
61             {
62                 j = (rand() & 15) + 1;
63                 while (--j >= 0)
64                 {
65                     int c = 65 + (rand() & 15);
66                     sprintf(rec_buf + strlen(rec_buf), "%c", c);
67                 }
68             }
69             strcat(rec_buf, "</title><Control-Identifier>");
70             j = rand() & 31;
71             sprintf(rec_buf + strlen(rec_buf), "%d", j);
72             strcat(rec_buf, "</Control-Identifier></gils>");
73             zebra_add_record (zh, rec_buf, strlen(rec_buf));
74         }
75         YAZ_CHECK(zebra_end_trans(zh) == ZEBRA_OK);
76         zebra_close(zh);
77     }
78     zh = zebra_open(zs, 0);
79     YAZ_CHECK(zh);
80
81     YAZ_CHECK(zebra_select_database(zh, "Default") == ZEBRA_OK);
82
83     zebra_set_resource(zh, "trunclimit", "2");
84
85     /* check massive truncation: bug #281 */
86     YAZ_CHECK(tl_query(zh, "@attr 1=4 @attr 2=1 z", -1));
87
88     YAZ_CHECK(tl_close_down(zh, zs));
89 }
90
91 TL_MAIN
92 /*
93  * Local variables:
94  * c-basic-offset: 4
95  * indent-tabs-mode: nil
96  * End:
97  * vim: shiftwidth=4 tabstop=8 expandtab
98  */
99