X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=ztest%2Fztest.c;h=bbbb402c871f817a0e8cd83f5eae7c1625782abc;hp=6d806b273d194dc076990414a1d008ec285ea85f;hb=4e627aa761e0b91b240f703173eeb82462ee8409;hpb=f3027244f210c7014b46dc564e868bbdf10560e2 diff --git a/ztest/ztest.c b/ztest/ztest.c index 6d806b2..bbbb402 100644 --- a/ztest/ztest.c +++ b/ztest/ztest.c @@ -11,9 +11,19 @@ #include #include #include + +#if HAVE_SYS_TIME_H +#include +#endif #if HAVE_UNISTD_H #include #endif +#if HAVE_SYS_SELECT_H +#include +#endif +#ifdef WIN32 +#include +#endif #include #include @@ -188,18 +198,27 @@ static int parse_delay(struct delay *delayp, const char *value) return 0; } +static void ztest_sleep(double d) +{ +#ifdef WIN32 + Sleep( (DWORD) (d * 1000)); +#else + struct timeval tv; + tv.tv_sec = floor(d); + tv.tv_usec = (d - floor(d)) * 1000000; + select(0, 0, 0, 0, &tv); +#endif +} + static void do_delay(const struct delay *delayp) { double d = delayp->d1; if (d > 0.0) { - struct timeval tv; if (delayp->d2 > d) d += (rand()) * (delayp->d2 - d) / RAND_MAX; - tv.tv_sec = floor(d); - tv.tv_usec = (d - floor(d)) * 1000000; - select(0, 0, 0, 0, &tv); + ztest_sleep(d); } } @@ -268,7 +287,7 @@ int ztest_search(void *handle, bend_search_rr *rr) const char *name = names[i]; const char *value = values[i]; if (!strcmp(name, "seed")) - srandom(atoi(value)); + srand(atoi(value)); else if (!strcmp(name, "search-delay")) parse_delay(&new_set->search_delay, value); else if (!strcmp(name, "present-delay"))