procstat/tests: Fix flakiness by waiting for program to start
Some of the procstat tests start a program "while1" and examine the process using procstat, but did not wait properly for it to start (kill -0 will succeed immediately after the child process has been created). Instead, have "while1" write something when it starts, and use a fifo to wait for that. PR: 233587, 233588 Reviewed by: ngie MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D21519
This commit is contained in:
parent
50c365c49a
commit
ddc0daea20
@ -25,7 +25,6 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
#
|
#
|
||||||
|
|
||||||
MAX_TRIES=20
|
|
||||||
PROG_PID=
|
PROG_PID=
|
||||||
PROG_PATH=$(atf_get_srcdir)/while1
|
PROG_PATH=$(atf_get_srcdir)/while1
|
||||||
|
|
||||||
@ -37,16 +36,13 @@ start_program()
|
|||||||
PROG_COMM=while1
|
PROG_COMM=while1
|
||||||
PROG_PATH=$(atf_get_srcdir)/$PROG_COMM
|
PROG_PATH=$(atf_get_srcdir)/$PROG_COMM
|
||||||
|
|
||||||
$PROG_PATH $* &
|
mkfifo wait_for_start || atf_fail "mkfifo"
|
||||||
|
$PROG_PATH $* >wait_for_start &
|
||||||
PROG_PID=$!
|
PROG_PID=$!
|
||||||
try=0
|
if ! read dummy <wait_for_start; then
|
||||||
while [ $try -lt $MAX_TRIES ] && ! kill -0 $PROG_PID; do
|
atf_fail "Program did not start properly"
|
||||||
sleep 0.5
|
|
||||||
: $(( try += 1 ))
|
|
||||||
done
|
|
||||||
if [ $try -ge $MAX_TRIES ]; then
|
|
||||||
atf_fail "Polled for program start $MAX_TRIES tries and failed"
|
|
||||||
fi
|
fi
|
||||||
|
rm wait_for_start
|
||||||
}
|
}
|
||||||
|
|
||||||
atf_test_case binary_info
|
atf_test_case binary_info
|
||||||
@ -78,8 +74,6 @@ command_line_arguments_head()
|
|||||||
}
|
}
|
||||||
command_line_arguments_body()
|
command_line_arguments_body()
|
||||||
{
|
{
|
||||||
atf_skip "https://bugs.freebsd.org/233587"
|
|
||||||
|
|
||||||
arguments="my arguments"
|
arguments="my arguments"
|
||||||
|
|
||||||
start_program $arguments
|
start_program $arguments
|
||||||
@ -104,8 +98,6 @@ environment_head()
|
|||||||
}
|
}
|
||||||
environment_body()
|
environment_body()
|
||||||
{
|
{
|
||||||
atf_skip "https://bugs.freebsd.org/233588"
|
|
||||||
|
|
||||||
var="MY_VARIABLE=foo"
|
var="MY_VARIABLE=foo"
|
||||||
eval "export $var"
|
eval "export $var"
|
||||||
|
|
||||||
|
@ -33,7 +33,8 @@ int
|
|||||||
main(void)
|
main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (write(STDOUT_FILENO, "started\n", 8) != 8)
|
||||||
|
abort();
|
||||||
for (;;)
|
for (;;)
|
||||||
usleep(100);
|
pause();
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user