X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fvsys_conctest.c;h=daca83058050f2f91e35bfc1145555dcda0cf4ca;hb=65f0b4dd113321ced69ea976a64f6f06fb4e3660;hp=b1a17faae0ba16e74ccb056af665d32f7d27db4b;hpb=feb3a0e05faaa506931030b599042a83bf1f7ca8;p=vsys.git diff --git a/tests/vsys_conctest.c b/tests/vsys_conctest.c index b1a17fa..daca830 100644 --- a/tests/vsys_conctest.c +++ b/tests/vsys_conctest.c @@ -11,42 +11,55 @@ int main() { FILE *fp = NULL, *fp_in = NULL; FILE *out_fp = NULL, *diff_fp = NULL; - const char* topcmd = "/vsys/vtop.out"; - const char* top_in_file = "/vsys/vtop.in"; + const char* topcmd = "frontend/test.out"; + const char* top_in_file = "frontend/test.in"; char buf[4096]; int fd_in = -1, fd_out; int res; - int flag; + int flag,flag2; int count = 1; struct timeval tv={.tv_sec=5,.tv_usec=0}; - while (count < 100000) { + while (count < 1000000) { fd_set readSet; int res; int nlines=0; + //usleep(200); printf("(%d)", count);fflush(stdout); - if ((fd_out = open(topcmd, O_RDONLY | O_NONBLOCK)) < 0) { fprintf(stderr, "error executing top\n"); exit(-1); } - if ((fd_in = open(top_in_file, O_WRONLY)) < 0) { - fprintf(stderr, "error opening %s\n", top_in_file); - exit(-1); + //printf("((0))");fflush(stdout); + while ((fd_in = open(top_in_file, O_WRONLY| O_NONBLOCK)) < 0) { + fprintf(stderr, "Waiting for %s (%s)\n", top_in_file,strerror(errno)); + usleep (50); } + //printf("(1)"); if ((flag = fcntl(fd_out, F_GETFL)) == -1) { printf("fcntl get failed\n"); exit(-1); } + //printf("(2)"); + + //printf("(3)"); + if ((flag2 = fcntl(fd_in, F_GETFL)) == -1) { + printf("fcntl get failed\n"); + exit(-1); + } + //printf("(4)"); + while (1) { FD_ZERO(&readSet); FD_SET(fd_out, &readSet); + //printf("(5)"); res = select(fd_out + 1, &readSet, NULL, NULL, NULL); + //printf("(6)"); if (res < 0) { if (errno == EINTR || errno == EAGAIN) { printf("."); @@ -58,21 +71,43 @@ int main() break; /* we're done */ } + //printf("(7)"); if (fcntl(fd_out, F_SETFL, flag & ~O_NONBLOCK) == -1) { printf("fcntl set failed\n"); exit(-1); } + //printf("(8)"); + //printf("(9)"); if ((flag = fcntl(fd_out, F_GETFL)) == -1) { printf("fcntl get failed\n"); exit(-1); } + //printf("(10)"); + + + //printf("(11)"); + if (fcntl(fd_in, F_SETFL, flag2 & ~O_NONBLOCK) == -1) { + printf("fcntl set failed\n"); + exit(-1); + } + + //printf("(11)"); + if ((flag2 = fcntl(fd_in, F_GETFL)) == -1) { + printf("fcntl get failed\n"); + exit(-1); + } + //printf("(12)"); if (flag & O_NONBLOCK == 0) { printf("fd_out still nonblocking\n"); exit(-1); } + if (flag & O_NONBLOCK == 0) { + printf("fd_in still nonblocking\n"); + exit(-1); + } if ((fp = fdopen(fd_out, "r")) == NULL) { printf("fdopen failed\n"); exit(-1);