Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Sep 2017 19:48:48 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r323620 - head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise
Message-ID:  <201709151948.v8FJmm27038466@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Fri Sep 15 19:48:48 2017
New Revision: 323620
URL: https://svnweb.freebsd.org/changeset/base/323620

Log:
  Fix the raise tests.
  
  - The exit probe was not appropriately filtered to only the known pid so it
    was firing on any random process that would exit rather the only the one
    we cared about.
  - The dtest script executes the tst.raise*.exe in the background from
    POSIX sh without jobs control.  POSIX mandates that SIGINT be set to
    SIG_IGN in this case.  The test executable never actually tested that
    SIGINT could be caught despite trying to block and delay the signal.
    So the SIGINT sent from raise() is never actually received since it
    is ignored.  This could be fixed by calling 'trap - INT' from dtest
    before running the executable but I've opted to just use SIGUSR1
    instead in these specific tests rather than adding more logic to
    test that SIGINT is not ignored at startup.
  
  These 2 issues meant that the tests would randomly work but only if a process
  coincidentally exited during the test.
  
  Reviewed by:	markj
  MFC after:	2 weeks
  Sponsored by:	Dell EMC Isilon

Modified:
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.c
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.d
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.c
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.d
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.c
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.d

Modified: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.c	Fri Sep 15 19:47:44 2017	(r323619)
+++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.c	Fri Sep 15 19:48:48 2017	(r323620)
@@ -35,13 +35,13 @@ main(int argc, char **argv)
 	sigset_t ss;
 
 	(void) sigemptyset(&ss);
-	(void) sigaddset(&ss, SIGINT);
+	(void) sigaddset(&ss, SIGUSR1);
 	(void) sigprocmask(SIG_BLOCK, &ss, NULL);
 
 	do {
 		(void) getpid();
 		(void) sigpending(&ss);
-	} while (!sigismember(&ss, SIGINT));
+	} while (!sigismember(&ss, SIGUSR1));
 
 	return (0);
 }

Modified: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.d
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.d	Fri Sep 15 19:47:44 2017	(r323619)
+++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise1.d	Fri Sep 15 19:48:48 2017	(r323620)
@@ -47,7 +47,7 @@ syscall::getpid:entry
 /pid == $1/
 {
 	trace("raised");
-	raise(SIGINT);
+	raise(SIGUSR1);
 	/*
 	 * Wait no more than half a second for the process to die.
 	 */
@@ -55,6 +55,7 @@ syscall::getpid:entry
 }
 
 syscall::exit:entry
+/pid == $1/
 {
 	exit(0);
 }

Modified: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.c	Fri Sep 15 19:47:44 2017	(r323619)
+++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.c	Fri Sep 15 19:48:48 2017	(r323620)
@@ -45,7 +45,7 @@ main(int argc, char **argv)
 	sigemptyset(&sa.sa_mask);
 	sa.sa_flags = 0;
 
-	(void) sigaction(SIGINT, &sa, NULL);
+	(void) sigaction(SIGUSR1, &sa, NULL);
 
 	for (;;) {
 		(void) getpid();

Modified: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.d
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.d	Fri Sep 15 19:47:44 2017	(r323619)
+++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise2.d	Fri Sep 15 19:48:48 2017	(r323620)
@@ -47,7 +47,7 @@ syscall::getpid:return
 /pid == $1/
 {
 	trace("raised");
-	raise(SIGINT);
+	raise(SIGUSR1);
 	/*
 	 * Wait no more than half a second for the process to die.
 	 */
@@ -55,6 +55,7 @@ syscall::getpid:return
 }
 
 syscall::exit:entry
+/pid == $1/
 {
 	exit(0);
 }

Modified: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.c	Fri Sep 15 19:47:44 2017	(r323619)
+++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.c	Fri Sep 15 19:48:48 2017	(r323620)
@@ -45,7 +45,7 @@ main(int argc, char **argv)
 	sigemptyset(&sa.sa_mask);
 	sa.sa_flags = 0;
 
-	(void) sigaction(SIGINT, &sa, NULL);
+	(void) sigaction(SIGUSR1, &sa, NULL);
 
 	for (;;) {
 		(void) getpid();

Modified: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.d
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.d	Fri Sep 15 19:47:44 2017	(r323619)
+++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/raise/tst.raise3.d	Fri Sep 15 19:48:48 2017	(r323620)
@@ -47,7 +47,7 @@ syscall::getpid:entry
 /pid == $1/
 {
 	trace("raised");
-	raise(SIGINT);
+	raise(SIGUSR1);
 	/*
 	 * Wait no more than half a second for the process to die.
 	 */
@@ -55,6 +55,7 @@ syscall::getpid:entry
 }
 
 syscall::exit:entry
+/pid == $1/
 {
 	exit(0);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201709151948.v8FJmm27038466>