static int udp_ioqueue_test_imp(pj_bool_t allow_concur) { int status; int bufsize, sock_count; PJ_LOG(3,(THIS_FILE, "..testing with concurency=%d", allow_concur)); //goto pass1; PJ_LOG(3, (THIS_FILE, "...compliance test (%s)", pj_ioqueue_name())); if ((status=compliance_test(allow_concur)) != 0) { return status; } PJ_LOG(3, (THIS_FILE, "....compliance test ok")); PJ_LOG(3, (THIS_FILE, "...unregister test (%s)", pj_ioqueue_name())); if ((status=unregister_test(allow_concur)) != 0) { return status; } PJ_LOG(3, (THIS_FILE, "....unregister test ok")); if ((status=many_handles_test(allow_concur)) != 0) { return status; } //return 0; PJ_LOG(4, (THIS_FILE, "...benchmarking different buffer size:")); PJ_LOG(4, (THIS_FILE, "... note: buf=bytes sent, fds=# of fds, " "elapsed=in timer ticks")); //pass1: PJ_LOG(3, (THIS_FILE, "...Benchmarking poll times for %s:", pj_ioqueue_name())); PJ_LOG(3, (THIS_FILE, "...=====================================")); PJ_LOG(3, (THIS_FILE, "...Buf.size #inactive-socks Time/poll")); PJ_LOG(3, (THIS_FILE, "... (bytes) (nanosec)")); PJ_LOG(3, (THIS_FILE, "...=====================================")); //goto pass2; for (bufsize=BUF_MIN_SIZE; bufsize <= BUF_MAX_SIZE; bufsize *= 2) { if ((status=bench_test(allow_concur, bufsize, SOCK_INACTIVE_MIN)) != 0) return status; } //pass2: bufsize = 512; for (sock_count=SOCK_INACTIVE_MIN+2; sock_count<=SOCK_INACTIVE_MAX+2; sock_count *= 2) { //PJ_LOG(3,(THIS_FILE, "...testing with %d fds", sock_count)); if ((status=bench_test(allow_concur, bufsize, sock_count-2)) != 0) return status; } return 0; }
int main(int argc, const char*argv[]) { if (argc != 2) { fprintf(stderr, "USAGE: %s base|bench\n", argv[0]); return -1; } if (0 == strcmp(argv[1],"base")) { return base_test(); } return bench_test(); }