[LTP] [PATCH v3] getpgid01: On Android, pgid(1) is 0 instead of 1
Petr Vorel
pvorel@suse.cz
Mon Oct 30 08:40:45 CET 2023
Hi Edward,
> Android's init does not call setpgid(0, 0) so it does not have pgid=1.
> In either case, the pgid should match /proc/1/stat, so compare
> getpgid(1) against that.
> Signed-off-by: Edward Liaw <edliaw@google.com>
> ---
> testcases/kernel/syscalls/getpgid/getpgid01.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
> diff --git a/testcases/kernel/syscalls/getpgid/getpgid01.c b/testcases/kernel/syscalls/getpgid/getpgid01.c
> index 479fe5dcb..de05a434b 100644
> --- a/testcases/kernel/syscalls/getpgid/getpgid01.c
> +++ b/testcases/kernel/syscalls/getpgid/getpgid01.c
> @@ -13,6 +13,14 @@
> #include "tst_test.h"
> +static int get_init_pgid()
static int get_init_pgid(void)
We still use -std=gnu99, thus we need that otherwise compiler complains
warning: old-style function definition [-Wold-style-definition].
It can be fixed during merge.
Kind regards,
Petr
> +{
> + int pgid;
> +
> + SAFE_FILE_SCANF("/proc/1/stat", "%*d %*s %*c %*d %d", &pgid);
> + return pgid;
> +}
> +
> static void run(void)
> {
> pid_t pid_1, child_pid, pgid;
> @@ -37,7 +45,7 @@ static void run(void)
> TST_EXP_EQ_LI(TST_RET, pgid);
> TST_EXP_PID(getpgid(1));
> - TST_EXP_EQ_LI(TST_RET, 1);
> + TST_EXP_EQ_LI(TST_RET, get_init_pgid());
> }
> tst_reap_children();
More information about the ltp
mailing list