xref: /openbsd-src/gnu/usr.bin/perl/ext/POSIX/t/strerror_errno.t (revision b8851fcc53cbe24fd20b090f26dd149e353f6174)
1*b8851fccSafresh1use Config;
2*b8851fccSafresh1use Test::More;
3*b8851fccSafresh1
4*b8851fccSafresh1# This is placed in a separate file, as some 'requires' and 'uses' are known
5*b8851fccSafresh1# to cause it to not fail even with the bug it's testing still being
6*b8851fccSafresh1# broken.  [perl #123503].
7*b8851fccSafresh1
8*b8851fccSafresh1plan(skip_all => "POSIX is unavailable")
9*b8851fccSafresh1    unless $Config{extensions} =~ /\bPOSIX\b/;
10*b8851fccSafresh1
11*b8851fccSafresh1require POSIX;
12*b8851fccSafresh1
13*b8851fccSafresh1$! = 1;
14*b8851fccSafresh1POSIX::strerror(1);
15*b8851fccSafresh1is (0+$!, 1, 'strerror doesn\'t destroy $!');
16*b8851fccSafresh1
17*b8851fccSafresh1# [perl #126229] POSIX::strerror() clears $!
18*b8851fccSafresh1{
19*b8851fccSafresh1    local $! = 29;
20*b8851fccSafresh1    my $e = POSIX::strerror($!);
21*b8851fccSafresh1    is (0+$!, 29);
22*b8851fccSafresh1}
23*b8851fccSafresh1
24*b8851fccSafresh1done_testing();
25