1 |
#!/usr/bin/perl |
2 |
use test::helper qw($_real $_point); |
3 |
use Test::More; |
4 |
plan tests => 24; |
5 |
use English; |
6 |
|
7 |
my (@stat); |
8 |
|
9 |
chdir($_point); |
10 |
ok(!(system("touch reg" )>>8),"create normal file"); |
11 |
ok(!(system("mknod fifo p" )>>8),"create fifo"); |
12 |
|
13 |
chdir($_real); |
14 |
ok(-e "reg" ,"normal file exists"); |
15 |
ok(-e "fifo","fifo exists"); |
16 |
ok(-f "reg" ,"normal file is normal file"); |
17 |
ok(-p "fifo","fifo is fifo"); |
18 |
|
19 |
SKIP: { |
20 |
skip('Need root to mknod devices', 8) unless ($UID == 0); |
21 |
|
22 |
chdir($_point); |
23 |
ok(!(system("mknod chr c 2 3")>>8),"create chrdev"); |
24 |
ok(!(system("mknod blk b 2 3")>>8),"create blkdev"); |
25 |
|
26 |
chdir($_real); |
27 |
ok(-e "chr" ,"chrdev exists"); |
28 |
ok(-e "blk" ,"blkdev exists"); |
29 |
|
30 |
skip('mknod() is just pretend under fakeroot(1)', 4) |
31 |
if exists $ENV{FAKEROOTKEY}; |
32 |
|
33 |
ok(-c "chr" ,"chrdev is chrdev"); |
34 |
ok(-b "blk" ,"blkdev is blkdev"); |
35 |
|
36 |
@stat = stat("chr"); |
37 |
is($stat[6],3+(2<<8),"chrdev has right major,minor"); |
38 |
@stat = stat("blk"); |
39 |
is($stat[6],3+(2<<8),"blkdev has right major,minor"); |
40 |
} |
41 |
|
42 |
chdir($_point); |
43 |
ok(-e "reg" ,"normal file exists"); |
44 |
ok(-e "fifo","fifo exists"); |
45 |
ok(-f "reg" ,"normal file is normal file"); |
46 |
ok(-p "fifo","fifo is fifo"); |
47 |
|
48 |
SKIP: { |
49 |
skip('Need root to mknod devices', 6) unless ($UID == 0); |
50 |
|
51 |
ok(-e "chr" ,"chrdev exists"); |
52 |
ok(-e "blk" ,"blkdev exists"); |
53 |
ok(-c "chr" ,"chrdev is chrdev"); |
54 |
ok(-b "blk" ,"blkdev is blkdev"); |
55 |
|
56 |
@stat = stat("chr"); |
57 |
is($stat[6],3+(2<<8),"chrdev has right major,minor"); |
58 |
@stat = stat("blk"); |
59 |
is($stat[6],3+(2<<8),"blkdev has right major,minor"); |
60 |
} |
61 |
|
62 |
map { unlink } qw(reg chr blk fifo); |