blob: aff2b99a0e2ff79eda7294605621b4fcb56d9c49 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!./perl
# tests for (possibly emulated) waitpid
BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
require './test.pl';
require Config;
skip_all('no Errno')
unless eval 'use Errno qw(EINVAL); 1';
skip_all('no POSIX')
unless eval 'use POSIX qw(WNOHANG); 1';
}
$|=1;
watchdog(10);
{
# [perl #85228] Broken waitpid
# $! = EINVAL; waitpid 0, 0; # would loop forever, even with WNOHANG
$! = EINVAL;
my $pid = waitpid(0, WNOHANG);
# depending on the platform, there's several possible values for
# $pid and $!, so I'm only testing that we don't loop forever.
#
# Some of the complications are:
#
# - watchdog() may be implemented with alarm() or fork, so there
# may or may not be children (this code doesn't use threads, so
# threads shouldn't be used)
#
# - the platform may or may not implement waitpid()/wait4()
pass("didn't block on waitpid(0, ...)");
}
done_testing();
|