TCPD libs only used in libyaz's LIBADD
[yaz-moved-to-github.git] / test / test_wrbuf.c
1 /* This file is part of the YAZ toolkit.
2  * Copyright (C) 1995-2010 Index Data
3  * See the file LICENSE for details.
4  */
5
6 #include <stdlib.h>
7 #include <stdio.h>
8
9 #include <yaz/wrbuf.h>
10 #include <yaz/test.h>
11
12 static void tstwrbuf(void)
13 {
14     int step;
15     WRBUF wr;
16
17     wr = 0;
18     wrbuf_destroy(wr);
19
20     wr = wrbuf_alloc();
21     YAZ_CHECK(wr);
22     wrbuf_destroy(wr);
23
24     wr = wrbuf_alloc();
25
26     YAZ_CHECK(wr);
27
28     for (step = 1; step < 65; step++)
29     {
30         int i, j, k;
31         int len;
32         char buf[64];
33         char *cp;
34         for (j = 1; j<step; j++)
35         {
36             for (i = 0; i<j; i++)
37                 buf[i] = i+1;
38             buf[i] = '\0';
39             wrbuf_puts(wr, buf);
40         }
41         
42         cp = wrbuf_buf(wr);
43         len = wrbuf_len(wr);
44         YAZ_CHECK(len == step * (step-1) / 2);
45         k = 0;
46         for (j = 1; j<step; j++)
47             for (i = 0; i<j; i++)
48             {
49                 YAZ_CHECK(cp[k] == i+1);
50                 k++;
51             }
52         wrbuf_rewind(wr);
53     }
54     wrbuf_destroy(wr);
55 }
56
57 int main (int argc, char **argv)
58 {
59     YAZ_CHECK_INIT(argc, argv);
60     tstwrbuf();
61     YAZ_CHECK_TERM;
62 }
63
64 /*
65  * Local variables:
66  * c-basic-offset: 4
67  * c-file-style: "Stroustrup"
68  * indent-tabs-mode: nil
69  * End:
70  * vim: shiftwidth=4 tabstop=8 expandtab
71  */
72