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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#!./perl -w
use Test::More;
use File::Temp;
use File::Spec;
use Fcntl qw(:mode);
my $tmpfile = File::Temp->new;
my @tests = (
['REG', 'tmpfile', (stat "$tmpfile")[2]],
['DIR', 'dir', (stat '.')[2]]
);
$devnull = File::Spec->devnull();
if (-c $devnull) {
push @tests, ['CHR', $devnull, (stat $devnull)[2]];
}
plan(tests => 9 * @tests);
foreach (@tests) {
my ($type, $name, $mode) = @$_;
if ($type eq 'REG') {
ok( S_ISREG($mode), " S_ISREG $name");
} else {
ok(!S_ISREG($mode), "!S_ISREG $name");
}
if ($type eq 'DIR') {
ok( S_ISDIR($mode), " S_ISDIR $name");
} else {
ok(!S_ISDIR($mode), "!S_ISDIR $name");
}
SKIP: {
skip 'No S_IFCHR', 1 unless defined eval {S_IFCHR};
if ($type eq 'CHR') {
ok( S_ISCHR($mode), " S_ISCHR $name");
} else {
ok(!S_ISCHR($mode), "!S_ISCHR $name");
}
}
SKIP: {
skip 'No S_IFLNK', 1 unless defined eval {S_IFLNK};
ok(!S_ISLNK($mode), "!S_ISLNK $name");
}
SKIP: {
skip 'No S_IFSOCK', 1 unless defined eval {S_IFSOCK};
ok(!S_ISSOCK($mode), "!S_ISSOCK $name");
}
SKIP: {
skip 'No S_IFBLK', 1 unless defined eval {S_IFBLK};
ok(!S_ISBLK($mode), "!S_ISBLK $name");
}
SKIP: {
skip 'No S_IFFIFO', 1 unless defined eval {S_IFFIFO};
ok(!S_ISFIFO($mode), "!S_ISFIFO $name");
}
SKIP: {
skip 'No S_IFWHT', 1 unless defined eval {S_IFWHT};
ok(!S_ISWHT($mode), "!S_ISWHT $name");
}
SKIP: {
skip 'No S_ENFMT', 1 unless defined eval {S_ENFMT};
ok(!S_ISENFMT($mode), "!S_ISENFMT $name");
}
}
|