[LTP] [PATCH v2 2/2] setpgid03: Add test for PGID in different session
Li Wang
liwang@redhat.com
Fri Apr 21 09:47:05 CEST 2023
On Fri, Apr 21, 2023 at 12:09 AM Teo Couprie Diaz <teo.coupriediaz@arm.com>
wrote:
> The current test in setpgid03 generates EPERM because the child is
> a session leader, as it has called setsid().
> EPERM can also happen by trying to change to a PGID in another session.
> This was previously done in setpgid02, but it could fail on some systems.
>
> setpgid03 provides a guaranteed way to generate this error by forking and
> setsid() in the child, so add a test for it here.
>
> Update the description to reflect this understanding.
>
> Signed-off-by: Teo Couprie Diaz <teo.coupriediaz@arm.com>
>
Reviewed-by: Li Wang <liwang@redhat.com>
---
> testcases/kernel/syscalls/setpgid/setpgid03.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/testcases/kernel/syscalls/setpgid/setpgid03.c
> b/testcases/kernel/syscalls/setpgid/setpgid03.c
> index b23d662e9..9ce2603d8 100644
> --- a/testcases/kernel/syscalls/setpgid/setpgid03.c
> +++ b/testcases/kernel/syscalls/setpgid/setpgid03.c
> @@ -11,6 +11,8 @@
> *
> * Tests setpgid(2) errors:
> *
> + * - EPERM The process specified by pid must not be a session leader.
> + *
> * - EPERM The calling process, process specified by pid and the target
> * process group must be in the same session.
> *
> @@ -43,6 +45,8 @@ static void run(void)
> TST_CHECKPOINT_WAIT(0);
>
> TST_EXP_FAIL(setpgid(child_pid, getppid()), EPERM);
> + /* Child did setsid(), so its PGID is set to its PID. */
> + TST_EXP_FAIL(setpgid(0, child_pid), EPERM);
>
> TST_CHECKPOINT_WAKE(0);
>
> --
> 2.34.1
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
>
--
Regards,
Li Wang
More information about the ltp
mailing list