Prima
view release on metacpan or search on metacpan
t/misc/fs.t view on Meta::CPAN
my @l = getdir('.');
my ($found_file, $found_dir) = (0,0);
for (my $i = 0; $i < @l; $i += 2 ) {
$found_file = $l[$i+1] if $l[$i] eq $fn;
$found_dir = $l[$i+1] if $l[$i] eq $dn;
}
ok( $found_file eq 'reg', "$id: getdir file");
ok( $found_dir eq 'dir', "$id: getdir dir");
my $d;
ok( opendir($d, '.'), "opendir");
my $start = telldir($d);
@l = readdir($d);
($found_file, $found_dir) = (0,0);
for (my $i = 0; $i < @l; $i++ ) {
$found_file = 1 if $l[$i] eq $fn;
$found_dir = 1 if $l[$i] eq $dn;
}
ok( $found_file, "$id: readdir file");
ok( $found_dir , "$id: readdir dir");
seekdir($d, $start);
@l = readdir($d);
($found_file, $found_dir) = (0,0);
for (my $i = 0; $i < @l; $i++ ) {
$found_file = 1 if $l[$i] eq $fn;
$found_dir = 1 if $l[$i] eq $dn;
}
ok( $found_file, "$id: rewind/readdir file");
ok( $found_dir , "$id: rewind/readdir dir");
seekdir($d, $start);
scalar readdir($d);
my $pos = telldir $d;
seekdir($d, $start);
seekdir $d, $pos;
is($pos, telldir $d, "telldir") if $^O !~ /freebsd/ || `uname -r` !~ /^([02-9]|10)/;
my @r = readdir $d;
ok( @r < @l, "seekdir/telldir");
ok( closedir($d), "closedir");
is( _f $fn, 1, "$id: _f file = 1");
is( _d $dn, 1, "$id: _d dir = 1");
is( _d $fn, 0, "$id: _d file = 0");
is( _f $dn, 0, "$id: _f dir = 0");
@l = stat($fn);
ok(scalar(@l), "$id: stat file");
diag($!) unless @l;
ok( $l[2] & S_IFREG, "$id: stat file is file");
@l = stat($dn);
ok(scalar(@l), "$id: stat dir");
diag($!) unless @l;
ok( $l[2] & S_IFDIR, "$id: stat dir is dir");
my $cwd = getcwd;
ok( $ok = chdir($dn), "$id: chdir");
diag($!) unless $ok;
my $ncwd = getcwd;
setenv( WHATEVER => $ncwd );
is( getenv( 'WHATEVER' ), $ncwd, "$id: getenv");
my $dn_local = Prima::Utils::sv2local($dn);
if ( defined $dn_local ) {
my $cwd = Cwd::getcwd();
CORE::chdir $dn_local;
like( Cwd::getcwd(), qr/\Q$dn_local\E/, "$id: chdir back-compat");
CORE::chdir $cwd;
chdir($ncwd);
my $test = "$dn\0$dn";
my $loc = Prima::Utils::sv2local($test);
is( length($loc), length($dn_local) * 2 + 1, "$id: sv2local");
is(Prima::Utils::local2sv($loc), $test, "$id: local2sv");
}
$ok = open(F, ">", 1);
diag($!) unless $ok;
close F;
ok( $ok, "$id: create file in subdir");
ok( $ok = rename('1', $fn), "$id: rename");
diag($!) unless $ok;
ok( $ok = chdir($cwd), "$id: chdir back");
diag($!) unless $ok;
ok($ok = unlink("$ncwd/$fn"), "$id: unlink in subdir");
diag(getcwd, $!) unless $ok;
ok($ok = unlink($fn), "$id: unlink file");
diag(getcwd, $!) unless $ok;
ok($ok = rmdir($dn), "$id: unlink dir");
diag(getcwd, $!) unless $ok;
ok( !scalar(stat($fn)), "$id: really unlink file");
ok( !scalar(stat($dn)), "$id: really unlink dir");
}
check("en", $fn, $dn);
check("ru", "Ñайл", "ÑолдеÑ");
check("zh", "æä»¶", "ç®å½");
done_testing;
( run in 3.066 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )