# common testing functions use Path::Class; my %links = ( 'cannot_chdir' => file('test', 'link_to_cannot_chdir')->stringify, 'foo' => file('test', 'bar')->stringify, 'nosuchdir' => file('test', 'no_such_dir')->stringify ); my $dir = dir(qw( test cannot_chdir )); sub setup { mkdir("$dir", 0000); # catch fatal errs for systems that don't have symlinks my $no_links = 0; for my $real (keys %links) { unless (eval { symlink $real, $links{$real}; 1; }) { $no_links = 1; warn "symlink returned $@ ($!)"; } } return $no_links; } sub cleanup { for my $r (keys %links) { my $l = $links{$r}; unlink($l) or warn "can't unlink $l"; } chmod 0777, "$dir"; rmdir "$dir"; } 1;