#include #include #include #include #include #include #include #include #include #include #include #include "pthreadpool_pipe.h" #include "pthreadpool_tevent.h" static int test_init(void) { struct pthreadpool_pipe *p; int ret; ret = pthreadpool_pipe_init(1, &p); if (ret != 0) { fprintf(stderr, "pthreadpool_pipe_init failed: %s\n", strerror(ret)); return -1; } ret = pthreadpool_pipe_destroy(p); if (ret != 0) { fprintf(stderr, "pthreadpool_pipe_destroy failed: %s\n", strerror(ret)); return -1; } return 0; } static void test_sleep(void *ptr) { int *ptimeout = (int *)ptr; int ret; ret = poll(NULL, 0, *ptimeout); if (ret != 0) { fprintf(stderr, "poll returned %d (%s)\n", ret, strerror(errno)); } } static int test_jobs(int num_threads, int num_jobs) { char *finished; struct pthreadpool_pipe *p; int timeout = 1; int i, ret; finished = (char *)calloc(1, num_jobs); if (finished == NULL) { fprintf(stderr, "calloc failed\n"); return -1; } ret = pthreadpool_pipe_init(num_threads, &p); if (ret != 0) { fprintf(stderr, "pthreadpool_pipe_init failed: %s\n", strerror(ret)); free(finished); return -1; } for (i=0; i= num_jobs)) { fprintf(stderr, "invalid job number %d\n", jobid); free(finished); return -1; } finished[jobid] += 1; } for (i=0; i