#!/usr/bin/perl
use test::helper qw($_real $_point);
use Test::More;
+use English;
plan tests => 4;
+
my (@stat);
chdir($_point);
system("echo frog >file");
-ok(chown(0,0,"file"),"set 0,0");
-@stat = stat("file");
-ok($stat[4] == 0 && $stat[5] == 0,"0,0");
-ok(chown(1,1,"file"),"set 1,1");
-@stat = stat("file");
-ok($stat[4] == 1 && $stat[5] == 1,"1,1");
+
+SKIP: {
+ skip('Need root to give away ownership', 4) unless ($UID == 0);
+
+ ok(chown(0,0,"file"),"set 0,0");
+ @stat = stat("file");
+ ok($stat[4] == 0 && $stat[5] == 0,"0,0");
+ ok(chown(1,1,"file"),"set 1,1");
+ @stat = stat("file");
+ ok($stat[4] == 1 && $stat[5] == 1,"1,1");
+}
+
unlink("file");
package test::helper;
use strict;
use Exporter;
+use POSIX qw(WEXITSTATUS);
our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
@ISA = "Exporter";
@EXPORT_OK = qw($_loop $_point $_pidfile $_real);
-our($_loop, $_point, $_pidfile, $_real) = ("examples/loopback.pl","/mnt","test/s/mounted.pid","/tmp/fusetest");
+our($_loop, $_point, $_pidfile, $_real) = ("examples/loopback.pl","/tmp/fusemnt-".$ENV{LOGNAME},"test/s/mounted.pid","/tmp/fusetest-".$ENV{LOGNAME});
if($0 !~ qr|s/u?mount\.t$|) {
my ($reject) = 1;
if(-f $_pidfile) {
- unless(system("ps `cat $_pidfile` | grep \"$_loop $_point\" >/dev/null")>>8) {
+ unless(POSIX::WEXITSTATUS(system("ps `cat $_pidfile` | grep \"$_loop $_point\" >/dev/null"))) {
if(`mount | grep "on $_point"`) {
$reject = 0;
} else {
}
}
}
- $reject = 1 if (system("ls $_point >&/dev/null") >> 8);
+ system("ls $_point >&/dev/null");
+ $reject = 1 if (POSIX::WEXITSTATUS($?));
die "not properly mounted\n" if $reject;
}
1;
use test::helper qw($_real $_point);
use Test::More;
plan tests => 24;
+use English;
+
my (@stat);
+
chdir($_point);
ok(!(system("touch reg" )>>8),"create normal file");
-ok(!(system("mknod chr c 2 3")>>8),"create chrdev");
-ok(!(system("mknod blk b 2 3")>>8),"create blkdev");
ok(!(system("mknod fifo p" )>>8),"create fifo");
+
chdir($_real);
ok(-e "reg" ,"normal file exists");
-ok(-e "chr" ,"chrdev exists");
-ok(-e "blk" ,"blkdev exists");
ok(-e "fifo","fifo exists");
ok(-f "reg" ,"normal file is normal file");
-ok(-c "chr" ,"chrdev is chrdev");
-ok(-b "blk" ,"blkdev is blkdev");
ok(-p "fifo","fifo is fifo");
-@stat = stat("chr");
-is($stat[6],3+(2<<8),"chrdev has right major,minor");
-@stat = stat("blk");
-is($stat[6],3+(2<<8),"blkdev has right major,minor");
+
+SKIP: {
+ skip('Need root to mknod devices', 8) unless ($UID == 0);
+
+ chdir($_point);
+ ok(!(system("mknod chr c 2 3")>>8),"create chrdev");
+ ok(!(system("mknod blk b 2 3")>>8),"create blkdev");
+
+ chdir($_real);
+ ok(-e "chr" ,"chrdev exists");
+ ok(-e "blk" ,"blkdev exists");
+ ok(-c "chr" ,"chrdev is chrdev");
+ ok(-b "blk" ,"blkdev is blkdev");
+
+ @stat = stat("chr");
+ is($stat[6],3+(2<<8),"chrdev has right major,minor");
+ @stat = stat("blk");
+ is($stat[6],3+(2<<8),"blkdev has right major,minor");
+}
+
chdir($_point);
ok(-e "reg" ,"normal file exists");
-ok(-e "chr" ,"chrdev exists");
-ok(-e "blk" ,"blkdev exists");
ok(-e "fifo","fifo exists");
ok(-f "reg" ,"normal file is normal file");
-ok(-c "chr" ,"chrdev is chrdev");
-ok(-b "blk" ,"blkdev is blkdev");
ok(-p "fifo","fifo is fifo");
-@stat = stat("chr");
-is($stat[6],3+(2<<8),"chrdev has right major,minor");
-@stat = stat("blk");
-is($stat[6],3+(2<<8),"blkdev has right major,minor");
+
+SKIP: {
+ skip('Need root to mknod devices', 6) unless ($UID == 0);
+
+ ok(-e "chr" ,"chrdev exists");
+ ok(-e "blk" ,"blkdev exists");
+ ok(-c "chr" ,"chrdev is chrdev");
+ ok(-b "blk" ,"blkdev is blkdev");
+
+ @stat = stat("chr");
+ is($stat[6],3+(2<<8),"chrdev has right major,minor");
+ @stat = stat("blk");
+ is($stat[6],3+(2<<8),"blkdev has right major,minor");
+}
+
map { unlink } qw(reg chr blk fifo);