X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fapi%2Ft15.c;h=b8a8171301168449f0886242ba906ca4e1837ea2;hb=03cd7d7f298324b3cc7185de7e9c65eab79c5048;hp=3d0c15e3b5d0d57c6c9385476aabcd32d339d0e8;hpb=8d79127b1f081818d59b1f6119d373d50468ab30;p=idzebra-moved-to-github.git diff --git a/test/api/t15.c b/test/api/t15.c index 3d0c15e..b8a8171 100644 --- a/test/api/t15.c +++ b/test/api/t15.c @@ -1,5 +1,5 @@ -/* $Id: t15.c,v 1.2 2006-04-05 02:03:33 adam Exp $ - Copyright (C) 2004-2005 +/* $Id: t15.c,v 1.12 2007-01-15 15:10:20 adam Exp $ + Copyright (C) 2004-2007 Index Data ApS This file is part of the Zebra server. @@ -15,18 +15,28 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#if HAVE_SYS_STAT_H +#include +#endif +#if HAVE_SYS_TYPES_H #include +#endif #if HAVE_UNISTD_H #include #endif #if HAVE_SYS_WAIT_H #include #endif +#if HAVE_SYS_UTSNAME_H +#include +#endif + +#include #include "testlib.h" @@ -37,7 +47,6 @@ static void update_process(ZebraService zs, int iter) { const char *rec = "some"; ZebraHandle zh = zebra_open(zs, 0); - // printf("update_record i=%d\n", i); zebra_add_record(zh, rec, strlen(rec)); if ((i % 30) == 0 || i == iter-1) zebra_commit(zh); @@ -59,8 +68,8 @@ static void search_process(ZebraService zs, int iter) YAZ_CHECK(hits >= hits_max); if (hits < hits_max) - printf("hits=%lld hits_max=%lld\n", hits, hits_max); - hits_max = hits; + printf("i=%d hits=%lld hits_max=%lld\n", i, hits, hits_max); + hits_max = hits; zebra_close(zh); } } @@ -80,12 +89,16 @@ static pid_t fork_service(ZebraService zs, int iter, static void tst(int argc, char **argv) { - ZebraService zs = tl_start_up("zebra15.cfg", argc, argv); - - ZebraHandle zh = zebra_open(zs, 0); + ZebraService zs; + ZebraHandle zh; + + mkdir("register", 0775); + mkdir("shadow", 0775); + zs = tl_start_up("zebra15.cfg", argc, argv); YAZ_CHECK(zs); + zh = zebra_open(zs, 0); YAZ_CHECK(zh); YAZ_CHECK(zebra_select_database(zh, "Default") == ZEBRA_OK); @@ -100,24 +113,45 @@ static void tst(int argc, char **argv) #if HAVE_SYS_WAIT_H #if HAVE_UNISTD_H +#if HAVE_SYS_UTSNAME_H + if (1) { + int tst_with_fork = 1; int status[3]; pid_t pids[3]; - - pids[0] = fork_service(zs, 200, search_process); - pids[1] = fork_service(zs, 20, update_process); - pids[2] = fork_service(zs, 20, update_process); - waitpid(pids[0], &status[0], 0); - YAZ_CHECK(status[0] == 0); - waitpid(pids[1], &status[1], 0); - YAZ_CHECK(status[1] == 0); - waitpid(pids[2], &status[2], 0); - YAZ_CHECK(status[2] == 0); + struct utsname s; + uname(&s); + if (!strcmp(s.sysname, "FreeBSD")) + tst_with_fork = 0; + + yaz_log(YLOG_LOG, "s.sysname=%s tst_with_fork=%d", s.sysname, + tst_with_fork); + if (tst_with_fork) + { + pids[0] = fork_service(zs, 200, search_process); + pids[1] = fork_service(zs, 20, update_process); + pids[2] = fork_service(zs, 20, update_process); + waitpid(pids[0], &status[0], 0); + YAZ_CHECK(status[0] == 0); + waitpid(pids[1], &status[1], 0); + YAZ_CHECK(status[1] == 0); + waitpid(pids[2], &status[2], 0); + YAZ_CHECK(status[2] == 0); + } } #endif #endif - +#endif + YAZ_CHECK(tl_close_down(0, zs)); } TL_MAIN +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +