# 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;
