X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=bfile%2Ftstbfile2.c;h=06a182406a59848000587b8497e7afe762eac239;hp=0b221c907087c22e32906461ec4ce37b8a0c63c4;hb=c00bfddbf0f3608340d61298acc61dafb167f9b2;hpb=c8816fc1830fcfa92a58c82506fa665eeac8713c diff --git a/bfile/tstbfile2.c b/bfile/tstbfile2.c index 0b221c9..06a1824 100644 --- a/bfile/tstbfile2.c +++ b/bfile/tstbfile2.c @@ -1,8 +1,5 @@ -/* $Id: tstbfile2.c,v 1.1 2006-11-08 12:59:27 adam Exp $ - Copyright (C) 1995-2006 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 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 @@ -20,6 +17,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include @@ -42,7 +42,7 @@ void tst(void) return; YAZ_CHECK(max_block * block_size < 4 * 1000000); /* 4M */ - + r = mkdir("register", 0777); YAZ_CHECK(r == 0 || (r == -1 && errno == EEXIST)); @@ -67,12 +67,26 @@ void tst(void) bf_reset(bfs); +#if 1 + /* we have to destroy bfs after reset. Unfortunately! */ + bfs_destroy(bfs); + + bfs = bfs_create("register:4M", 0 /* base: current dir */); + YAZ_CHECK(bfs); + if (!bfs) + return; + + r = bf_cache(bfs, "shadow:4M"); + YAZ_CHECK_EQ(r, ZEBRA_OK); +#endif + + yaz_log(YLOG_LOG, "writing file 1"); bf = bf_open(bfs, "file", block_size, 1); YAZ_CHECK(bf); if (bf) { zint bno[2]; - memset(buf, '\0', block_size); + memset(buf, ' ', block_size); bno[0] = 0; bno[1] = 1; @@ -89,6 +103,7 @@ void tst(void) bf_close(bf); } + yaz_log(YLOG_LOG, "reading file 1"); bf = bf_open(bfs, "file", block_size, 0); YAZ_CHECK(bf); if (bf) @@ -100,7 +115,7 @@ void tst(void) while (bno[0] < max_block) { zint next = bno[0] + bno[1]; - memset(buf, '\0', block_size); + memset(buf, ' ', block_size); YAZ_CHECK_EQ(bf_read(bf, bno[0], 0, 0, buf), 1); YAZ_CHECK_EQ(atoi(buf), bno[0]); @@ -112,6 +127,7 @@ void tst(void) } #if 1 + yaz_log(YLOG_LOG, "writing file 2"); bf = bf_open(bfs, "file", block_size, 1); YAZ_CHECK(bf); if (bf) @@ -119,7 +135,7 @@ void tst(void) zint bno = 0; while (bno < max_block) { - memset(buf, '\0', block_size); + memset(buf, ' ', block_size); sprintf(buf, ZINT_FORMAT, bno); YAZ_CHECK_EQ(bf_write(bf, bno, 0, 0, buf), 0); @@ -129,19 +145,22 @@ void tst(void) bf_close(bf); } + yaz_log(YLOG_LOG, "reading file 2"); bf = bf_open(bfs, "file", block_size, 0); YAZ_CHECK(bf); if (bf) { zint bno = 0; + int step = max_block / 50; + while (bno < max_block) { - memset(buf, '\0', block_size); + memset(buf, ' ', block_size); YAZ_CHECK_EQ(bf_read(bf, bno, 0, 0, buf), 1); YAZ_CHECK_EQ(atoi(buf), bno); - bno = bno + 2; + bno = bno + 2*step; } bf_close(bf); } @@ -153,6 +172,7 @@ void tst(void) int main(int argc, char **argv) { YAZ_CHECK_INIT(argc, argv); + YAZ_CHECK_LOG(); tst(); YAZ_CHECK_TERM; }