Signed-off-by: Yuan Sun <sunyu...@huawei.com>
---
 testcases/kernel/containers/userns/userns02.c | 14 +-----------
 testcases/kernel/containers/userns/userns03.c | 24 ++-------------------
 testcases/kernel/containers/userns/userns04.c | 31 ++++-----------------------
 3 files changed, 7 insertions(+), 62 deletions(-)

diff --git a/testcases/kernel/containers/userns/userns02.c 
b/testcases/kernel/containers/userns/userns02.c
index e1677b6..32db7bc 100644
--- a/testcases/kernel/containers/userns/userns02.c
+++ b/testcases/kernel/containers/userns/userns02.c
@@ -68,7 +68,6 @@ static void setup(void)
 
 int main(int argc, char *argv[])
 {
-       int status;
        int lc;
        int childpid;
        int parentuid;
@@ -111,19 +110,8 @@ int main(int argc, char *argv[])
 
                TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
 
-               if (waitpid(childpid, &status, 0) < 0)
-                       tst_brkm(TBROK | TERRNO, cleanup, "waitpid failed");
-
-               if (WIFSIGNALED(status)) {
-                       tst_resm(TFAIL, "child was killed with signal = %d",
-                               WTERMSIG(status));
-               } else if (WIFEXITED(status) && WEXITSTATUS(status) != 0)
-                       tst_resm(TFAIL, "child exited abnormally");
-               else
-                       tst_resm(TPASS, "the uid and the gid are right inside "
-                               "the container");
+               tst_record_childstatus(cleanup, childpid);
        }
        cleanup();
        tst_exit();
 }
-
diff --git a/testcases/kernel/containers/userns/userns03.c 
b/testcases/kernel/containers/userns/userns03.c
index 9b8ede5..6e3cedd 100644
--- a/testcases/kernel/containers/userns/userns03.c
+++ b/testcases/kernel/containers/userns/userns03.c
@@ -166,7 +166,6 @@ int main(int argc, char *argv[])
 {
        pid_t cpid2;
        char path[BUFSIZ];
-       int cpid1status, cpid2status;
        int lc;
        int fd;
 
@@ -211,27 +210,8 @@ int main(int argc, char *argv[])
 
                TST_SAFE_CHECKPOINT_WAKE_AND_WAIT(cleanup, 1);
 
-               if ((waitpid(cpid1, &cpid1status, 0) < 0) ||
-                       (waitpid(cpid2, &cpid2status, 0) < 0))
-                               tst_brkm(TBROK | TERRNO, cleanup,
-                               "parent: waitpid failed.");
-
-               if (WIFSIGNALED(cpid1status)) {
-                       tst_resm(TFAIL, "child1 was killed with signal = %d",
-                               WTERMSIG(cpid1status));
-               } else if (WIFEXITED(cpid1status) &&
-                       WEXITSTATUS(cpid1status) != 0) {
-                       tst_resm(TFAIL, "child1 exited abnormally");
-               }
-
-               if (WIFSIGNALED(cpid2status)) {
-                       tst_resm(TFAIL, "child2 was killed with signal = %d",
-                               WTERMSIG(cpid2status));
-               } else if (WIFEXITED(cpid2status) &&
-                       WEXITSTATUS(cpid2status) != 0) {
-                       tst_resm(TFAIL, "child2 exited abnormally");
-               } else
-                       tst_resm(TPASS, "test pass");
+               tst_record_childstatus(cleanup, cpid1);
+               tst_record_childstatus(cleanup, cpid2);
        }
        cleanup();
        tst_exit();
diff --git a/testcases/kernel/containers/userns/userns04.c 
b/testcases/kernel/containers/userns/userns04.c
index 9836fd9..4d38891 100644
--- a/testcases/kernel/containers/userns/userns04.c
+++ b/testcases/kernel/containers/userns/userns04.c
@@ -70,29 +70,11 @@ static int child_fn2(void *arg)
        return exit_val;
 }
 
-static int wait4child(pid_t pid, const char *msg)
-{
-       int status;
-
-       if (waitpid(pid, &status, 0) == -1) {
-               tst_brkm(TBROK | TERRNO, cleanup, "waitpid");
-       } else if (WIFSIGNALED(status)) {
-               tst_resm(TFAIL, "%s: child was killed with signal = %d",
-                       msg, WTERMSIG(status));
-               return WTERMSIG(status);
-       } else if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
-               tst_resm(TFAIL, "%s: child returns %d", msg, status);
-               return WEXITSTATUS(status);
-       }
-
-       return 0;
-}
-
 static void test_cap_sys_admin(void)
 {
        pid_t cpid1, cpid2, cpid3;
        char path[BUFSIZ];
-       int fd, status;
+       int fd;
 
        /* child 1 */
        cpid1 = ltp_clone_quick(CLONE_NEWUSER | SIGCHLD,
@@ -124,14 +106,9 @@ static void test_cap_sys_admin(void)
        TST_SAFE_CHECKPOINT_WAKE(cleanup, 0);
        TST_SAFE_CHECKPOINT_WAKE(cleanup, 1);
 
-       status = 0;
-       status |= wait4child(cpid1, "child1");
-       status |= wait4child(cpid2, "child2");
-       status |= wait4child(cpid3, "child3");
-       if (status == 0)
-               tst_resm(TPASS, "The setns function works well.");
-       else
-               tst_resm(TFAIL, "Some child reported failure.");
+       tst_record_childstatus(cleanup, cpid1);
+       tst_record_childstatus(cleanup, cpid2);
+       tst_record_childstatus(cleanup, cpid3);
 
        SAFE_CLOSE(cleanup, fd);
 
-- 
1.9.1


------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to