avoid cpan indexing of test::helper
[perl-fuse.git] / test / s / mount.t
1 #!/usr/bin/perl -w
2 use test::helper qw($_point $_loop $_opts $_real $_pidfile);
3 use strict;
4 use Errno qw(:POSIX);
5 use Test::More tests => 3;
6
7 sub is_mounted {
8         my $diag = -e '/proc/mounts' ? `cat /proc/mounts` : ($^O eq 'linux' ? `/bin/mount` : `/sbin/mount`);
9         return $diag =~ m{ (?:/private)?$_point };
10 }
11
12 ok(!is_mounted(),"already mounted");
13 ok(-f $_loop,"loopback exists");
14
15 mkdir $_point;
16 mkdir $_real;
17 diag "mounting $_loop to $_point";
18 open REALSTDOUT, '>&STDOUT';
19 open REALSTDERR, '>&STDERR';
20 open STDOUT, '>', '/tmp/fusemnt.log';
21 open STDERR, '>&', \*STDOUT;
22 system("perl -Iblib/lib -Iblib/arch $_loop $_opts $_point");
23 open STDOUT, '>&', \*REALSTDOUT;
24 open STDERR, '>&', \*REALSTDERR;
25
26 my ($success, $count) = (0,0);
27 while ($count++ < 50 && !$success) {
28         select(undef, undef, undef, 0.1);
29         ($success) = is_mounted();
30 }
31 diag "Mounted in ", $count/10, " secs";
32
33 ok($success,"mount succeeded");
34 system("rm -rf $_real");
35 unless($success) {
36         kill('INT',`cat $_pidfile`);
37         unlink($_pidfile);
38 } else {
39         mkdir($_real);
40 }