Add a little helper program for tst.exitcore.ksh.
sleep(1) is capsicumized, which means that we cannot rely on it to dump core as required by the test. MFC after: 1 week Sponsored by: Dell EMC Isilon
This commit is contained in:
parent
18982e8fb0
commit
b4a3f67bd6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=318680
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* CDDL HEADER START
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the terms of the
|
||||||
|
* Common Development and Distribution License (the "License").
|
||||||
|
* You may not use this file except in compliance with the License.
|
||||||
|
*
|
||||||
|
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
||||||
|
* or http://www.opensolaris.org/os/licensing.
|
||||||
|
* See the License for the specific language governing permissions
|
||||||
|
* and limitations under the License.
|
||||||
|
*
|
||||||
|
* When distributing Covered Code, include this CDDL HEADER in each
|
||||||
|
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
||||||
|
* If applicable, add the following below this CDDL HEADER, with the
|
||||||
|
* fields enclosed by brackets "[]" replaced with your own identifying
|
||||||
|
* information: Portions Copyright [yyyy] [name of copyright owner]
|
||||||
|
*
|
||||||
|
* CDDL HEADER END
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2017 Mark Johnston <markj@FreeBSD.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
sleep(1);
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
@ -52,7 +52,7 @@ script()
|
|||||||
/curpsinfo->pr_ppid == $child &&
|
/curpsinfo->pr_ppid == $child &&
|
||||||
execargs == "$longsleep" && args[0] != CLD_DUMPED/
|
execargs == "$longsleep" && args[0] != CLD_DUMPED/
|
||||||
{
|
{
|
||||||
printf("Child process could did dump core.");
|
printf("Child process could not dump core.");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
@ -62,10 +62,9 @@ sleeper()
|
|||||||
{
|
{
|
||||||
while true; do
|
while true; do
|
||||||
$longsleep &
|
$longsleep &
|
||||||
/bin/sleep 1
|
/bin/sleep 1
|
||||||
kill -SEGV $!
|
kill -SEGV $!
|
||||||
done
|
done
|
||||||
/bin/rm -f $corefile
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $# != 1 ]; then
|
if [ $# != 1 ]; then
|
||||||
@ -74,8 +73,7 @@ if [ $# != 1 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
dtrace=$1
|
dtrace=$1
|
||||||
longsleep="/bin/sleep 10000"
|
longsleep="./tst.exitcore.exe"
|
||||||
corefile=/tmp/sleep.core
|
|
||||||
|
|
||||||
sleeper &
|
sleeper &
|
||||||
child=$!
|
child=$!
|
||||||
@ -83,10 +81,6 @@ child=$!
|
|||||||
script
|
script
|
||||||
status=$?
|
status=$?
|
||||||
|
|
||||||
#pstop $child
|
|
||||||
#pkill -P $child
|
|
||||||
kill $child
|
kill $child
|
||||||
#prun $child
|
|
||||||
|
|
||||||
/bin/rm -f $corefile
|
|
||||||
exit $status
|
exit $status
|
||||||
|
@ -23,6 +23,7 @@ TESTEXES= \
|
|||||||
|
|
||||||
|
|
||||||
CFILES= \
|
CFILES= \
|
||||||
|
tst.exitcore.c \
|
||||||
tst.sigwait.c \
|
tst.sigwait.c \
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user