Addition of file handles on open files
[perl-fuse.git] / test / mknod.t
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);