Commit | Line | Data |
6e32c255 |
1 | #!perl -T |
2 | |
3 | BEGIN { |
4 | if ($ENV{PERL_CORE}) { |
5 | chdir 't'; |
6 | @INC = '../lib'; |
7 | } |
8 | |
9 | use Config; |
10 | use Test::More; |
11 | plan skip_all => "POSIX is unavailable" if $Config{'extensions'} !~ m!\bPOSIX\b!; |
12 | } |
13 | |
14 | use strict; |
15 | use File::Spec; |
16 | use POSIX; |
17 | use Scalar::Util qw(looks_like_number); |
18 | |
19 | my @path_consts = qw( |
20 | _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT |
21 | _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX _PC_PIPE_BUF _PC_VDISABLE |
22 | ); |
23 | |
24 | my @sys_consts = qw( |
25 | _SC_ARG_MAX _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL |
26 | _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS |
27 | _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION |
28 | ); |
29 | |
30 | plan tests => 2 * 3 * @path_consts + 3 * @sys_consts; |
31 | |
32 | my $r; |
33 | |
34 | # testing fpathconf() |
35 | SKIP: { |
36 | my $fd = POSIX::open(File::Spec->curdir, O_RDONLY) |
37 | or skip "can't open current directory", 3 * @path_consts; |
38 | |
39 | for my $constant (@path_consts) { |
40 | $r = eval { pathconf( File::Spec->curdir, eval "$constant()" ) }; |
41 | is( $@, '', "calling pathconf($constant)" ); |
42 | ok( defined $r, "\tchecking that the returned value is defined: $r" ); |
43 | ok( looks_like_number($r), "\tchecking that the returned value looks like a number" ); |
44 | } |
45 | } |
46 | |
47 | # testing pathconf() |
48 | for my $constant (@path_consts) { |
49 | $r = eval { pathconf( File::Spec->rootdir, eval "$constant()" ) }; |
50 | is( $@, '', "calling pathconf($constant)" ); |
51 | ok( defined $r, "\tchecking that the returned value is defined: $r" ); |
52 | ok( looks_like_number($r), "\tchecking that the returned value looks like a number" ); |
53 | } |
54 | |
55 | # testing sysconf() |
56 | for my $constant (@sys_consts) { |
57 | $r = eval { sysconf( eval "$constant()" ) }; |
58 | is( $@, '', "calling sysconf($constant)" ); |
59 | ok( defined $r, "\tchecking that the returned value is defined: $r" ); |
60 | ok( looks_like_number($r), "\tchecking that the returned value looks like a number" ); |
61 | } |
62 | |