tests: Add setgroups to test_fork_exec
authorAndreas Schneider <asn@cryptomilk.org>
Wed, 19 Jul 2017 14:22:39 +0000 (16:22 +0200)
committerAndreas Schneider <asn@samba.org>
Fri, 21 Jul 2017 15:19:42 +0000 (17:19 +0200)
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
tests/test_fork_exec.c

index 36077c4b70b68ee3bd54fda01737b066dbd6ab10..177f32141b7ac3be0e13cc273defca9aa4f8a5f3 100644 (file)
@@ -6,12 +6,15 @@
 #include <cmocka.h>
 
 #include <errno.h>
+#include <grp.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
 
+#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
+
 #define TEST_MOCK_EXECUTABLE "mock_exec_uid"
 
 static void test_uwrap_fork_exec(void **state)
@@ -19,6 +22,7 @@ static void test_uwrap_fork_exec(void **state)
        pid_t pid;
        int rc;
        uid_t cp_ruid, cp_euid, cp_suid;
+       gid_t glist[] = {0, 10000, 20000, 40000, 100000};
 
        (void)state; /* unused */
 
@@ -34,6 +38,9 @@ static void test_uwrap_fork_exec(void **state)
        rc = setgid(5000);
        assert_return_code(rc, errno);
 
+       rc = setgroups(ARRAY_SIZE(glist), glist);
+       assert_return_code(rc, errno);
+
        pid = fork();
        assert_return_code(pid, errno);