From: <ro...@us...> - 2003-01-17 21:06:43
|
Update of /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/msgctl In directory sc8-pr-cvs1:/tmp/cvs-serv15967 Modified Files: msgctl08.c msgctl09.c Log Message: Added additional code to get the current number if used message queues, subtract this from the maximum allowed, then use this number as the max....whew!! Index: msgctl08.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl08.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- msgctl08.c 17 Jan 2003 19:40:55 -0000 1.7 +++ msgctl08.c 17 Jan 2003 21:06:36 -0000 1.8 @@ -391,7 +391,10 @@ #define BUFSIZE 512 FILE* f; char buff[BUFSIZE]; - + int used_queues; + + tst_tmpdir(); + /* You will want to enable some signal handling so you can capture * unexpected signals like SIGSEGV. */ @@ -414,6 +417,19 @@ fgets(buff, BUFSIZE, f); fclose(f); MSGMNI = atoi(buff); + if (system("ipcs -q | wc -l > used")==-1){ + tst_resm(TBROK,"Could not calculate used message queues"); + tst_exit(); + } + f = fopen("used","r"); + fgets(buff, BUFSIZE, f); + used_queues = atoi(buff); + MSGMNI = MSGMNI - (used_queues - 4); + fclose(f); + if (MSGMNI <= 0){ + tst_resm(TBROK,"Max number of message queues already used, cannot create more."); + cleanup(); + } } @@ -446,7 +462,7 @@ * print errno log if that option was specified. */ TEST_CLEANUP; - + tst_rmdir(); /* exit with return code appropriate for results */ tst_exit(); } Index: msgctl09.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl09.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- msgctl09.c 17 Jan 2003 19:40:56 -0000 1.4 +++ msgctl09.c 17 Jan 2003 21:06:38 -0000 1.5 @@ -554,7 +554,9 @@ #define BUFSIZE 512 FILE* f; char buff[BUFSIZE]; + int used_queues; + tst_tmpdir(); /* You will want to enable some signal handling so you can capture * unexpected signals like SIGSEGV. */ @@ -577,6 +579,20 @@ fgets(buff, BUFSIZE, f); fclose(f); MSGMNI = atoi(buff); + if (system("ipcs -q | wc -l > used")==-1){ + tst_resm(TBROK,"Could not calculate used message queues"); + tst_exit(); + } + f = fopen("used","r"); + fgets(buff, BUFSIZE, f); + used_queues = atoi(buff); + MSGMNI = MSGMNI - (used_queues - 4); + fclose(f); + if (MSGMNI <= 0){ + tst_resm(TBROK,"Max number of message queues already used, cannot create more."); + cleanup(); + } + } @@ -610,7 +626,7 @@ } fflush (stdout); - + tst_rmdir(); /* exit with return code appropriate for results */ tst_exit(); } |