xref: /openbsd-src/gnu/usr.bin/perl/t/io/semctl.t (revision 5486feefcc8cb79b19e014ab332cc5dfd05b3b33)
1b8851fccSafresh1BEGIN {
2b8851fccSafresh1  chdir 't' if -d 't';
3b8851fccSafresh1  @INC = '../lib' if -d '../lib' && -d '../ext';
4b8851fccSafresh1
5b8851fccSafresh1  require "./test.pl";
6*5486feefSafresh1  require Config; Config->import;
7b8851fccSafresh1}
8b8851fccSafresh1
9b8851fccSafresh1use strict;
10b8851fccSafresh1use warnings;
11b8851fccSafresh1
12b8851fccSafresh1skip_all('no SysV semaphores on this platform') if !$Config{d_sem};
13b8851fccSafresh1skip_all('SysV semaphore structures not detected')
14b8851fccSafresh1    if !$Config{d_semctl_semid_ds} && !$Config{d_semctl_semun};
15b8851fccSafresh1
16b8851fccSafresh1my @warnings;
17b8851fccSafresh1{
18b8851fccSafresh1    local $SIG{__WARN__} = sub { push @warnings, $_[0] };
19b8851fccSafresh1    local $SIG{SYS} = sub { skip_all("SIGSYS caught") } if exists $SIG{SYS};
20b8851fccSafresh1    my $test = (semctl(-1,0,0,0))[0];
21b8851fccSafresh1    ok(!defined $test, "erroneous semctl list slice yields undef");
22b8851fccSafresh1}
23b8851fccSafresh1
24b8851fccSafresh1is(scalar @warnings, 0, "no warnings from erroneous semctl list slice")
25b8851fccSafresh1    or diag("warnings found: @warnings");
26b8851fccSafresh1
27b8851fccSafresh1done_testing;
28