Message ID | 20231027190029.3820505-1-edliaw@google.com |
---|---|
State | Accepted |
Headers | show |
Series | [v3] getpgid01: On Android, pgid(1) is 0 instead of 1 | expand |
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();
Hi! > > +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. With that fixed: Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
> Hi! > > > +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. > With that fixed: > Reviewed-by: Cyril Hrubis <chrubis@suse.cz> Great, merged. Kind regards, Petr
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() +{ + 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();
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(-)