Happy new year.
[idzebra-moved-to-github.git] / bfile / tstmfile1.c
1 /* This file is part of the Zebra server.
2    Copyright (C) 1994-2011 Index Data
3
4 Zebra is free software; you can redistribute it and/or modify it under
5 the terms of the GNU General Public License as published by the Free
6 Software Foundation; either version 2, or (at your option) any later
7 version.
8
9 Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
10 WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
18 */
19
20 #include <sys/stat.h>
21 #include <sys/types.h>
22 #include <errno.h>
23 #include <stdlib.h>
24 #include <string.h>
25 #include <yaz/test.h>
26 #include "mfile.h"
27
28 #define BLOCK_SIZE 16
29
30 void tst1(void)
31 {
32     MFile_area a = mf_init("main", 0 /* spec */, 0 /* base */, 0 /* only sh */);
33     YAZ_CHECK(a);
34     mf_destroy(a);
35 }
36
37 void tst2(void)
38 {
39     char buf[BLOCK_SIZE];
40     MFile_area a = mf_init("main", 0 /* spec */, 0 /* base */, 0 /* only sh */);
41     MFile f;
42
43     YAZ_CHECK(a);
44
45     mf_reset(a, 1);
46
47     f = mf_open(a, "mymfile", BLOCK_SIZE, 1);
48     YAZ_CHECK(f);
49
50     YAZ_CHECK_EQ(mf_read(f, 0, 0, 0, buf), 0);
51     
52     memset(buf, 'a', BLOCK_SIZE);
53     YAZ_CHECK_EQ(mf_write(f, 0, 0, 0, buf), 0);
54
55     YAZ_CHECK_EQ(mf_read(f, 0, 0, 0, buf), 1);
56
57     mf_close(f);
58
59     mf_destroy(a);
60 }
61
62 int main(int argc, char **argv)
63 {
64     YAZ_CHECK_INIT(argc, argv);
65     tst1();
66     tst2();
67     YAZ_CHECK_TERM;
68 }
69