[LTP] [PATCH v3] getpgid01: On Android, pgid(1) is 0 instead of 1

Edward Liaw edliaw@google.com
Fri Oct 27 21:00:29 CEST 2023


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()
+{
+	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();
-- 
2.42.0.820.g83a721a137-goog



More information about the ltp mailing list