On Mon, Aug 16, 2010 at 7:21 AM, Subrata Modak
<[email protected]> wrote:
> On Mon, 2010-08-16 at 17:05 +0530, Harsh Prateek Bora wrote:
>> Current testcase for setrlimit resource RLIMIT_FSIZE
>> is using a global integer variable to communicate the number of
>> bytes from child to parent which is incorrect. This
>> has been corrected by introducing a pipe to transfer
>> this information from child to parent process.
>>
>> Signed-off-by: Harsh Prateek Bora <[email protected]>
>> ---
>>  testcases/kernel/syscalls/setrlimit/setrlimit01.c |   15 +++++++++++++++
>>  1 files changed, 15 insertions(+), 0 deletions(-)
>>
>> diff --git a/testcases/kernel/syscalls/setrlimit/setrlimit01.c 
>> b/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>> index 6952eb3..2bb1e9d 100644
>> --- a/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>> +++ b/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>> @@ -156,7 +156,11 @@ void test2()
>>        * an wired value!  So, it is essential to fflush the parent's
>>        * write buffer HERE
>>        */
>> +     int pipefd[2];
>>       fflush(stdout);
>> +     if (pipe(pipefd) == -1) {
>> +             tst_brkm(TBROK | TERRNO, NULL, "pipe creation failed");
>> +     }
>>
>>       /*
>>        * Spawn a child process, and reduce the filesize to
>> @@ -170,6 +174,7 @@ void test2()
>>       }
>>
>>       if (pid == 0) {
>> +             close(pipefd[0]); /* close unused read end */
>>               rlim.rlim_cur = 10;
>>               rlim.rlim_max = 10;
>>               if ((setrlimit(RLIMIT_FSIZE, &rlim)) == -1) {
>> @@ -181,6 +186,11 @@ void test2()
>>               }
>>
>>               if ((bytes = write(fd, buf, 26)) != 10) {
>> +                     if (write(pipefd[1], &bytes, sizeof(bytes))
>> +                             < sizeof(bytes)) {
>> +                             perror("child: write to pipe failed");
>
> You still uses perror() here. Use tst_resm() instead.

This patch is actually ok. If you look at the test in context (as
Harsh pointed out), the perror(3) call was within a forked process,
and that's fine. It's the other areas that need to be tst_resm(3)
calls because they're in the parent process and actually affect the
final outcome of the test, and provide a uniform means of reporting.

Thanks,
-Garrett

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to