[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