From: "Salvatore CRO'" <salvatore.cro@st.com>
To: Caspar Zhang <caspar@casparzhang.com>
Cc: ltp-list@lists.sourceforge.net
Subject: Re: [LTP] [PATCH] setrlimit01: wait for all children to exit in test3
Date: Wed, 21 Mar 2012 12:10:44 +0100 [thread overview]
Message-ID: <4F69B734.1070504@st.com> (raw)
In-Reply-To: <4F69A35A.7060109@casparzhang.com>
On 3/21/2012 10:46 AM, Caspar Zhang wrote:
> On 03/21/2012 05:41 PM, ZhoupingLiu wrote:
>> On 03/20/2012 11:39 PM, Salvatore CRO' wrote:
>>> In test3, parent just wait for one child to exit but it
>>> actually has 10.
>> hi, Salvatore
>>
>> yes, you are right, but your patch didn't resolve the issue completely.
>> comments in-line.
>>
>>> As it could happen there may be other children around that
>>> didn't get yet the chance to exit, they will get signaled
>>> by ltp-pan (SIGTERM) and pollute the output of subsequent
>>> test (setrlimit02).
>>> Parent definitely needs to wait for all children to exit.
>>>
>>> Signed-off-by: Salvatore Cro<salvatore.cro@st.com>
>>> ---
>>> testcases/kernel/syscalls/setrlimit/setrlimit01.c | 2 +-
>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/testcases/kernel/syscalls/setrlimit/setrlimit01.c b/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>>> index ac32450..430835c 100644
>>> --- a/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>>> +++ b/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>>> @@ -267,7 +267,7 @@ void test3()
>>> exit(0);
>>> }
>>> }
>>> - waitpid(pid,&status, 0);
>>> + while(wait(&status)> 0) { /* no-op */ ; }
>>> if (WEXITSTATUS(status) != 0) {
>>> tst_resm(TFAIL, "RLIMIT_NPROC functionality is not correct");
>>> } else {
>> if one child exit unexpectedly, e.g: exit(9);
>> the case can't catch it. how about this patch set:
Question is, do we care about prematurely ended child?
We could just test for this condition ( if may use WIFEXITED in this case)
and emit a TWARN.
>> diff --git a/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>> b/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>> index ac32450..ec3e54e 100644
>> --- a/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>> +++ b/testcases/kernel/syscalls/setrlimit/setrlimit01.c
>> @@ -226,6 +226,8 @@ void test2()
>> */
>> void test3()
>> {
>> + int flag = 0;
>> +
>> if (getrlimit(RLIMIT_NPROC,&save_rlim)< 0) {
>> tst_brkm(TBROK, cleanup, "getrlimit failed, errno: %d",
>> errno);
>> }
>> @@ -267,12 +269,16 @@ void test3()
>> exit(0);
>> }
>> }
>> - waitpid(pid,&status, 0);
>> - if (WEXITSTATUS(status) != 0) {
>> - tst_resm(TFAIL, "RLIMIT_NPROC functionality is not
>> correct");
>> - } else {
>> - tst_resm(TPASS, "RLIMIT_NPROC functionality is correct");
>> + while (wait(&status)> 0) {
>> + if (WEXITSTATUS(status) != 0) {
>> + tst_resm(TFAIL,
>> + "RLIMIT_NPROC functionality is not correct");
>> + flag = 1;
>> + }
>> }
>> +
>> + if (flag == 0)
>> + tst_resm(TPASS, "RLIMIT_NPROC functionality is correct");
> flag is not necessary. no TFAIL means TPASS. Rest looks good for your patch.
Anyhow, in my opinion, this condition is not suitable to decide for test
pass/fail.
Test is supposed to fail when the fork from 11th child on does not fail
or fail with
an errno != EAGAIN.
If so, the test logic wasn't actually accurate independently of my patch.
BR,
Salvo.
> Thanks,
> Caspar
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next prev parent reply other threads:[~2012-03-21 11:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-20 15:39 [LTP] [PATCH] setrlimit01: wait for all children to exit in test3 Salvatore CRO'
2012-03-21 8:15 ` Carmelo AMOROSO
2012-03-21 9:41 ` ZhoupingLiu
2012-03-21 9:46 ` Caspar Zhang
2012-03-21 11:10 ` Salvatore CRO' [this message]
2012-03-23 7:13 ` Salvatore CRO'
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F69B734.1070504@st.com \
--to=salvatore.cro@st.com \
--cc=caspar@casparzhang.com \
--cc=ltp-list@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.