use Test::More tests => 3; use Sys::Filesystem; use Cwd qw(abs_path); use Config; my $RealTest = abs_path(__FILE__); my $RealPerl = abs_path( $Config{perlpath} ); if ( $^O ne 'VMS' ) { $RealPerl .= $Config{_exe} unless $RealPerl =~ m/$Config{_exe}$/i; } $RealTest = ucfirst($RealTest) if ( $^O =~ m/Win32/ ); my $sfs; eval { $sfs = Sys::Filesystem->new(); }; plan( skip_all => "Cannot initialize Sys::Filesystem" ) if ($@); ok( ref($sfs) eq 'Sys::Filesystem', 'Create new Sys::Filesystem object' ); my ( $binmount, $mymount ); my @mounted_filesystems = sort { length($b) <=> length($a) } $sfs->filesystems( mounted => 1 ); SKIP: { unless (@mounted_filesystems) { if ( $sfs->supported() ) { diag("Unexpected empty list of mounted filesystems"); } skip( 'Badly poor supported OS or no file systems found.', 0 ); } foreach my $fs (@mounted_filesystems) { diag("Checking '$fs' being mountpoint for '$RealPerl' or '$RealTest' ...") if ( $^O eq 'MSWin32' or $^O eq 'cygwin' ); if ( !defined($binmount) && ( 0 == index( $RealPerl, $fs ) ) ) { $binmount = $fs; } if ( !defined($mymount) && ( 0 == index( $RealTest, $fs ) ) ) { $mymount = $fs; } } TODO: { local $TODO = "Known fail for MSWin32, cygwin & Co. - let's make it not so important ..."; ok( $mymount, sprintf( q{Found mountpoint for test file '%s' at '%s'}, $RealTest, $mymount || '' ) ); ok( $binmount, sprintf( q{Found mountpoint for perl executable '%s' at '%s'}, $RealPerl, $binmount || '' ) ); } }