idmapped-mounts: add missing ownership comparisons to setgid tests
[xfstests-dev.git] / src / idmapped-mounts / idmapped-mounts.c
index c53e194207bfd1f89d4c56905e0439664e47d653..a5c0a983e6e012ef41da14c5d60edc38d81b8388 100644 (file)
@@ -7863,6 +7863,12 @@ static int setgid_create(void)
                if (!is_setgid(t_dir1_fd, DIR1, 0))
                        die("failure: is_setgid");
 
+               if (!expected_uid_gid(t_dir1_fd, FILE1, 0, 0, 0))
+                       die("failure: check ownership");
+
+               if (!expected_uid_gid(t_dir1_fd, DIR1, 0, 0, 0))
+                       die("failure: check ownership");
+
                if (unlinkat(t_dir1_fd, FILE1, 0))
                        die("failure: delete");
 
@@ -7911,6 +7917,22 @@ static int setgid_create(void)
                                die("failure: is_setgid");
                }
 
+               /*
+                * In setgid directories newly created files always inherit the
+                * gid from the parent directory. Verify that the file is owned
+                * by gid 0, not by gid 10000.
+                */
+               if (!expected_uid_gid(t_dir1_fd, FILE1, 0, 0, 0))
+                       die("failure: check ownership");
+
+               /*
+                * In setgid directories newly created directories always
+                * inherit the gid from the parent directory. Verify that the
+                * directory is owned by gid 0, not by gid 10000.
+                */
+               if (!expected_uid_gid(t_dir1_fd, DIR1, 0, 0, 0))
+                       die("failure: check ownership");
+
                exit(EXIT_SUCCESS);
        }
        if (wait_for_pid(pid))
@@ -8013,6 +8035,22 @@ static int setgid_create_idmapped(void)
                                die("failure: is_setgid");
                }
 
+               /*
+                * In setgid directories newly created files always inherit the
+                * gid from the parent directory. Verify that the file is owned
+                * by gid 10000, not by gid 11000.
+                */
+               if (!expected_uid_gid(open_tree_fd, FILE1, 0, 10000, 10000))
+                       die("failure: check ownership");
+
+               /*
+                * In setgid directories newly created directories always
+                * inherit the gid from the parent directory. Verify that the
+                * directory is owned by gid 10000, not by gid 11000.
+                */
+               if (!expected_uid_gid(open_tree_fd, DIR1, 0, 10000, 10000))
+                       die("failure: check ownership");
+
                exit(EXIT_SUCCESS);
        }
        if (wait_for_pid(pid))