<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 1, 2022 at 6:59 PM Avinesh Kumar <<a href="mailto:akumar@suse.de">akumar@suse.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Li,<br>
<br>
On Wednesday, August 31, 2022 12:10:44 PM IST Li Wang wrote:<br>
> On Tue, Aug 30, 2022 at 6:54 PM Avinesh Kumar <<a href="mailto:akumar@suse.de" target="_blank">akumar@suse.de</a>> wrote:<br>
> <br>
> > Signed-off-by: Avinesh Kumar <<a href="mailto:akumar@suse.de" target="_blank">akumar@suse.de</a>><br>
> > ---<br>
> >  testcases/kernel/syscalls/getsid/getsid02.c | 83 +++++----------------<br>
> >  1 file changed, 17 insertions(+), 66 deletions(-)<br>
> ><br>
> > diff --git a/testcases/kernel/syscalls/getsid/getsid02.c<br>
> > b/testcases/kernel/syscalls/getsid/getsid02.c<br>
> > index b5ab339e2..c235af362 100644<br>
> > --- a/testcases/kernel/syscalls/getsid/getsid02.c<br>
> > +++ b/testcases/kernel/syscalls/getsid/getsid02.c<br>
> > @@ -1,81 +1,32 @@<br>
> > +// SPDX-License-Identifier: GPL-2.0-or-later<br>
> >  /*<br>
> > - *<br>
> >   *   Copyright (c) International Business Machines  Corp., 2001<br>
> >   *   Copyright (c) 2012 Cyril Hrubis <<a href="mailto:chrubis@suse.cz" target="_blank">chrubis@suse.cz</a>><br>
> > - *<br>
> > - *   This program is free software;  you can redistribute it and/or modify<br>
> > - *   it under the terms of the GNU General Public License as published by<br>
> > - *   the Free Software Foundation; either version 2 of the License, or<br>
> > - *   (at your option) any later version.<br>
> > - *<br>
> > - *   This program is distributed in the hope that it will be useful,<br>
> > - *   but WITHOUT ANY WARRANTY;  without even the implied warranty of<br>
> > - *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See<br>
> > - *   the GNU General Public License for more details.<br>
> > - *<br>
> > - *   You should have received a copy of the GNU General Public License<br>
> > - *   along with this program;  if not, write to the Free Software<br>
> > - *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA<br>
> > 02110-1301 USA<br>
> > + *   Copyright (c) 2022 SUSE LLC Avinesh Kumar <<a href="mailto:avinesh.kumar@suse.com" target="_blank">avinesh.kumar@suse.com</a>><br>
> >   */<br>
> ><br>
> > -#define _GNU_SOURCE 1<br>
> > -<br>
> > -#include "test.h"<br>
> > -<br>
> > -#include <errno.h><br>
> > +/*\<br>
> > + * [Description]<br>
> > + *<br>
> > + * Verify that getsid(2) fails with ESRCH errno when there is no<br>
> > + * process found with process ID pid.<br>
> > + */<br>
> ><br>
> > -char *TCID = "getsid02";<br>
> > -int TST_TOTAL = 1;<br>
> > +#include "tst_test.h"<br>
> ><br>
> >  static pid_t unused_pid;<br>
> ><br>
> > -static void cleanup(void);<br>
> > -static void setup(void);<br>
> > -<br>
> > -int main(int ac, char **av)<br>
> > +static void setup(void)<br>
> >  {<br>
> > -       int lc;<br>
> > -<br>
> > -       tst_parse_opts(ac, av, NULL, NULL);<br>
> > -<br>
> > -       setup();<br>
> > -<br>
> > -       for (lc = 0; TEST_LOOPING(lc); lc++) {<br>
> > -               tst_count = 0;<br>
> > -<br>
> > -               TEST(getsid(unused_pid));<br>
> > -<br>
> > -               if (TEST_RETURN == 0) {<br>
> > -                       tst_resm(TFAIL, "call succeed when failure<br>
> > expected");<br>
> > -                       continue;<br>
> > -               }<br>
> > -<br>
> > -               switch (TEST_ERRNO) {<br>
> > -               case ESRCH:<br>
> > -                       tst_resm(TPASS, "expected failure - errno = %d -<br>
> > %s",<br>
> > -                                TEST_ERRNO, strerror(TEST_ERRNO));<br>
> > -                       break;<br>
> > -               default:<br>
> > -                       tst_resm(TFAIL, "call failed to produce "<br>
> > -                                "expected error - errno = %d - %s",<br>
> > -                                TEST_ERRNO, strerror(TEST_ERRNO));<br>
> > -                       break;<br>
> > -               }<br>
> > -       }<br>
> > -<br>
> > -       cleanup();<br>
> > -       tst_exit();<br>
> > +       unused_pid = tst_get_unused_pid();<br>
> ><br>
> <br>
> We can simply move this to the main function to avoid unused PID<br>
> reusing again if people perform test with '-i N'.<br>
> <br>
> How about this below:<br>
> <br>
> #include "tst_test.h"<br>
> <br>
> static void run(void)<br>
> {<br>
>     pid_t unused_pid;<br>
>     unused_pid = tst_get_unused_pid();<br>
> <br>
>     TST_EXP_FAIL(getsid(unused_pid), ESRCH);<br>
> }<br>
> <br>
> static struct tst_test test = {<br>
>     .test_all = run<br>
> };<br>
> <br>
> <br>
Yes, I agree to your suggestion. But while testing '-i N' with this code<br>
also I am getting the same unused_pid which is equal to <br>
/proc/sys/kernel/pid_max in my env.<br></blockquote><div><br></div><div class="gmail_default" style="font-size:small">Ah, right. I additionally checked the "Linux Programming Interface Handbook",</div><div class="gmail_default" style="font-size:small">it says the maximum PID number that can be used is 'pid_max - 1'. So I realized</div><div class="gmail_default" style="font-size:small">that why the tst_unused_pid() just read the value of '/proc/sys/kernel/pid_max'.</div></div><div><br></div><div><div class="gmail_default" style="font-size:small">Anyway, I modified the patch as I commented above and pushed it.</div><div class="gmail_default" style="font-size:small">(that will be more easiler with removing setup() function)</div><br></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>