From: <ro...@us...> - 2004-01-05 20:12:24
|
Update of /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/msgctl In directory sc8-pr-cvs1:/tmp/cvs-serv32561 Modified Files: msgctl08.c msgctl09.c Log Message: Applied patch from Erik Andersen: ================================= While testing uClibc we noticed that msgctl08 and msgctl09 reported a FAIL with too many processes exiting. After checking things out carefully, we have determined that these ltp tests are buggy. In both tests a popen() call is followed by a call to fclose(). This is a bug. Fortunately, these tests were later counting the number of processes that exited using wait(), which reaped then process spawned by popen(), and caused the tests to count one extra exiting process. The fix is trivial, popen() calls should be followed by a call to pclose(), not fclose(). A patch fixing these bugs is attached. ================================= Index: msgctl08.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl08.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- msgctl08.c 1 Apr 2003 16:41:47 -0000 1.9 +++ msgctl08.c 5 Jan 2004 20:12:20 -0000 1.10 @@ -399,7 +399,7 @@ /* FIXME: Start at -4 because ipcs prints four lines of header */ for (used_queues = -4; fgets(buff, BUFSIZE, f); used_queues++) ; - fclose(f); + pclose(f); if (used_queues < 0) { tst_resm(TBROK,"Could not read output of 'ipcs' to calculate used message queues"); tst_exit(); Index: msgctl09.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl09.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- msgctl09.c 1 Apr 2003 16:41:48 -0000 1.6 +++ msgctl09.c 5 Jan 2004 20:12:21 -0000 1.7 @@ -563,7 +563,7 @@ /* FIXME: Start at -4 because ipcs prints four lines of header */ for (used_queues = -4; fgets(buff, BUFSIZE, f); used_queues++) ; - fclose(f); + pclose(f); if (used_queues < 0) { tst_resm(TBROK,"Could not read output of 'ipcs' to calculate used message queues"); tst_exit(); |