Author: jhb
Date: Thu Jan 25 00:08:13 2018
New Revision: 328384
URL: https://svnweb.freebsd.org/changeset/base/328384

Log:
  MFC 287600,287602: Fixes for fork following tests.
  
  287600:
  Properly size the children[] arrays in the follow fork tests.
  
  287602:
  Use _exit() instead of exit() in child processes created during tests.

Modified:
  stable/10/tests/sys/kern/ptrace_test.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/tests/sys/kern/ptrace_test.c
==============================================================================
--- stable/10/tests/sys/kern/ptrace_test.c      Wed Jan 24 23:57:40 2018        
(r328383)
+++ stable/10/tests/sys/kern/ptrace_test.c      Thu Jan 25 00:08:13 2018        
(r328384)
@@ -143,7 +143,7 @@ ATF_TC_BODY(ptrace__parent_wait_after_trace_me, tc)
                /* Child process. */
                trace_me();
 
-               exit(1);
+               _exit(1);
        }
 
        /* Parent process. */
@@ -189,7 +189,7 @@ ATF_TC_BODY(ptrace__parent_wait_after_attach, tc)
                /* Wait for the parent to attach. */
                CHILD_REQUIRE(read(cpipe[1], &c, sizeof(c)) == 0);
 
-               exit(1);
+               _exit(1);
        }
        close(cpipe[1]);
 
@@ -237,7 +237,7 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_child_debug
                /* Wait for parent to be ready. */
                CHILD_REQUIRE(read(cpipe[1], &c, sizeof(c)) == sizeof(c));
 
-               exit(1);
+               _exit(1);
        }
        close(cpipe[1]);
 
@@ -268,7 +268,7 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_child_debug
                CHILD_REQUIRE(WIFEXITED(status));
                CHILD_REQUIRE(WEXITSTATUS(status) == 1);
 
-               exit(0);
+               _exit(0);
        }
        close(dpipe[1]);
 
@@ -331,7 +331,7 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_unrelated_d
                /* Wait for parent to be ready. */
                CHILD_REQUIRE(read(cpipe[1], &c, sizeof(c)) == sizeof(c));
 
-               exit(1);
+               _exit(1);
        }
        close(cpipe[1]);
 
@@ -347,7 +347,7 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_unrelated_d
                 */
                CHILD_REQUIRE((fpid = fork()) != -1);
                if (fpid != 0)
-                       exit(2);
+                       _exit(2);
 
                /* Debugger process. */
                close(dpipe[0]);
@@ -372,7 +372,7 @@ ATF_TC_BODY(ptrace__parent_sees_exit_after_unrelated_d
                CHILD_REQUIRE(WIFEXITED(status));
                CHILD_REQUIRE(WEXITSTATUS(status) == 1);
 
-               exit(0);
+               _exit(0);
        }
        close(dpipe[1]);
 
@@ -437,14 +437,14 @@ follow_fork_parent(bool use_vfork)
 
        if (fpid == 0)
                /* Child */
-               exit(2);
+               _exit(2);
 
        wpid = waitpid(fpid, &status, 0);
        CHILD_REQUIRE(wpid == fpid);
        CHILD_REQUIRE(WIFEXITED(status));
        CHILD_REQUIRE(WEXITSTATUS(status) == 2);
 
-       exit(1);
+       _exit(1);
 }
 
 /*
@@ -516,7 +516,7 @@ handle_fork_events(pid_t parent, struct ptrace_lwpinfo
 ATF_TC_WITHOUT_HEAD(ptrace__follow_fork_both_attached);
 ATF_TC_BODY(ptrace__follow_fork_both_attached, tc)
 {
-       pid_t children[0], fpid, wpid;
+       pid_t children[2], fpid, wpid;
        int status;
 
        ATF_REQUIRE((fpid = fork()) != -1);
@@ -572,7 +572,7 @@ ATF_TC_BODY(ptrace__follow_fork_both_attached, tc)
 ATF_TC_WITHOUT_HEAD(ptrace__follow_fork_child_detached);
 ATF_TC_BODY(ptrace__follow_fork_child_detached, tc)
 {
-       pid_t children[0], fpid, wpid;
+       pid_t children[2], fpid, wpid;
        int status;
 
        ATF_REQUIRE((fpid = fork()) != -1);
@@ -623,7 +623,7 @@ ATF_TC_BODY(ptrace__follow_fork_child_detached, tc)
 ATF_TC_WITHOUT_HEAD(ptrace__follow_fork_parent_detached);
 ATF_TC_BODY(ptrace__follow_fork_parent_detached, tc)
 {
-       pid_t children[0], fpid, wpid;
+       pid_t children[2], fpid, wpid;
        int status;
 
        ATF_REQUIRE((fpid = fork()) != -1);
@@ -685,7 +685,7 @@ attach_fork_parent(int cpipe[2])
        /* Double-fork to disassociate from the debugger. */
        CHILD_REQUIRE((fpid = fork()) != -1);
        if (fpid != 0)
-               exit(3);
+               _exit(3);
        
        /* Send the pid of the disassociated child to the debugger. */
        fpid = getpid();
@@ -704,7 +704,7 @@ attach_fork_parent(int cpipe[2])
 ATF_TC_WITHOUT_HEAD(ptrace__follow_fork_both_attached_unrelated_debugger);
 ATF_TC_BODY(ptrace__follow_fork_both_attached_unrelated_debugger, tc)
 {
-       pid_t children[0], fpid, wpid;
+       pid_t children[2], fpid, wpid;
        int cpipe[2], status;
 
        ATF_REQUIRE(pipe(cpipe) == 0);
@@ -772,7 +772,7 @@ ATF_TC_BODY(ptrace__follow_fork_both_attached_unrelate
 ATF_TC_WITHOUT_HEAD(ptrace__follow_fork_child_detached_unrelated_debugger);
 ATF_TC_BODY(ptrace__follow_fork_child_detached_unrelated_debugger, tc)
 {
-       pid_t children[0], fpid, wpid;
+       pid_t children[2], fpid, wpid;
        int cpipe[2], status;
 
        ATF_REQUIRE(pipe(cpipe) == 0);
@@ -835,7 +835,7 @@ ATF_TC_BODY(ptrace__follow_fork_child_detached_unrelat
 ATF_TC_WITHOUT_HEAD(ptrace__follow_fork_parent_detached_unrelated_debugger);
 ATF_TC_BODY(ptrace__follow_fork_parent_detached_unrelated_debugger, tc)
 {
-       pid_t children[0], fpid, wpid;
+       pid_t children[2], fpid, wpid;
        int cpipe[2], status;
 
        ATF_REQUIRE(pipe(cpipe) == 0);
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to